数据库:SQL常用操作

从功能上划分,SQL 语言可以分为DDL(Data Definition Language),DML(Data Manipulation Language)和DCL(Data Control Language)三大类。

1.DDL数据定义

用于定义和管理 SQL 数据库中的所有对象的语言 :
CREATE---创建表
ALTER---修改表,在已有的表中添加、修改或删除列。
DROP---删除表

#CREATE---创建表
CREATE TABLE Persons
(
  Name varchar(255),
  ID int,
  Grade varchar(255)
)
#ALTER---修改表
#增加表中列
ALTER TABLE table_name
ADD column_name datatype
#删除表中的列
ALTER TABLE table_name 
DROP COLUMN column_name
#改变表中列的数据类型
ALTER TABLE table_name
ALTER COLUMN column_name datatype
#DROP---删除表
DROP TABLE Customer;

2.DML 数据操作

SQL中处理数据等操作统称为数据操纵语言 :
INSERT---数据的插入
DELETE---数据的删除
UPDATE---数据的修改
SELECT---数据的查询

数据查询SELECT

#从数据库中提取数据
SELECT CustomerName,City FROM Customers;
SELECT * FROM Customers;
select distinct
 #在表中,一个列可能会包含多个重复值,有时您也许希望仅仅列出不同(distinct)的值。
SELECT DISTINCT column_name,column_name FROM table_name;
#where 条件子句
#用于提取那些满足指定标准的记录。
SELECT * FROM Customers WHERE Country='Mexico';

#limit规定要返回的记录的数目
SELECT column_name(s) 
FROM table_name
LIMIT number;

数据插入INSERT

INSERT INTO table_name VALUES (value1, value2,....)
#指定所要插入数据的列:
INSERT INTO table_name (column_name1, column_name2,...) VALUES (value1, value2,....)

数据更新UPDATE

UPDATE table_name SET column_name = newvalue WHERE column_name = value
#更新某一行中的一个列
UPDATE Person SET column =newvalue WHERE row = value

数据删除DELETE

#删除表中的行。
DELETE FROM table_name WHERE rowname = value
#删除所有行
DELETE FROM table_name
#或者:
DELETE * FROM table_name

复杂语句

AND/OR

SELECT column_name
FROM table_name
WHERE "简单条件" 
{[AND|OR] "简单条件"}+;
#{}+ 代表{}之内的情况会发生一或多次。在这里的意思就是 AND 加简单条件及 OR 加简单条件的情况可以发生一或多次。另外,我们可以用 ( ) 来代表条件的先后次序。

LIKE

# LIKE 操作符用于在where子句中搜索列中的指定模式。
#选取 City 以字母 "ber" 开始的所有客户:
SELECT * FROM Customers  
WHERE City LIKE 'ber%';
#选取 City 以一个任意字符开始,然后是 "erlin" 的所有客户:
SELECT * FROM Customers
WHERE City LIKE '_erlin';
#选取 City 以 "b"、"s" 或 "p" 开始的所有客户:
SELECT * FROM Customers
WHERE City LIKE '[bsp]%';
#选取 City 不以 "b"、"s" 或 "p" 开始的所有客户:
SELECT * FROM Customers
WHERE City LIKE '[!bsp]%';

IN

 #IN 操作符允许在 WHERE 子句中规定多个值。
SELECT column_name(s)
FROM table_name
WHERE column_name IN (value1,value2,...);

BETWEEN

# 在 WHERE 子句中,BETWEEN 操作符用于选取介于两个值之间的数据范围内的值,这些值可以是数值、文本或者日期。

#选取价格不再 10 和 20 之间的所有产品:
SELECT * FROM Products
WHERE Price NOT BETWEEN 10 AND 20;

ORDER BY

#这可能是由小往大 (ascending) 或是由大往小 (descending)。在这种情况下,我们就可以运用 ORDER BY这个指令来达到我们的目的。

#ORDER BY 的语法如下:

SELECT "栏位名" 
FROM "表格名" 
[WHERE "条件"]
ORDER BY "栏位名" [ASC, DESC];**

ORDER BY "栏位一" [ASC, DESC], "栏位二" [ASC, DESC]**

SELECT Store_Name, Sales, Txn_Date 
FROM Store_Information 
ORDER BY Sales DESC;

3.DCL数据控制

用来授予或回收访问数据库的某种特权,并控制 数据库操纵事务发生的时间及效果,对数据库实行监视等:
GRANT--- 授权
ROLLBACK---回滚
COMMIT--- 提交

提交数据有三种类型:显式提交、隐式提交及自动提交。
(1) 显式提交 用 COMMIT 命令直接完成的提交为显式提交。
(2) 隐式提交 用 SQL 命令间接完成的提交为隐式提交。这些命令是: ALTER , AUDIT , COMMENT , CONNECT , CREATE , DISCONNECT , DROP , EXIT , GRANT , NOAUDIT , QUIT , REVOKE , RENAME 。
(3) 自动提交 若把 AUTOCOMMIT 设置为 ON ,则在插入、修改、删除语句执行后,系统将自动进行提交,这就是自动提交。其格式为: SQL>SET AUTOCOMMIT ON ;

数据运算

既然数据库中有许多资料都是已数字的型态存在,一个很重要的用途就是要能够对这些数字做一些运算,例如将它们总合起来,或是找出它们的平均值。SQL 有提供一些这一类的函数。它们是:

AVG (平均)
COUNT (计数)
MAX (最大值)
MIN (最小值)
SUM (总合)
运用函数的语法是:

SELECT "函数名"("栏位名") 
FROM "表格名";

SELECT COUNT("栏位名") 
FROM "表格名";


#HAVING 的语法如下:
SELECT "栏位1", SUM("栏位2") 
FROM "表格名" 
GROUP BY "栏位1" 
HAVING (函数条件);

#UNION指令的目的是将两个 SQL 语句的结果合并起来。从这个角度来看, UNION跟 JOIN有些许类似,因为这两个指令都可以由多个表格中撷取资料。 UNION 的一个限制是两个 SQL 语句所产生的栏位需要是同样的资料种类。

UNION 的语法如下:
[SQL 语句 1]
UNION
[SQL 语句 2];

你可能感兴趣的:(数据库:SQL常用操作)