SQL语句表 | | |||
语句 | 语法 | 作用 | 备注 | |
SELECT | SELECT 列名称 FROM 表名称 | 从表中选取数据 | 选取/过滤 | |
SELECT * FROM 表名称 | 表中选取所有的列 | | ||
SELECT DISTINCT 列名称 FROM 表名称 | 返回唯一不同的值 | | ||
WHERE子句 | SELECT 列名称 FROM 表名称 WHERE 列 运算符 值 | 有条件地从表中选取数据 | | |
AND和OR 运算符 | SELECT 列名称 FROM 表名称 WHERE condition AND/OR condition | 一个以上的条件对记录进行过滤 | | |
ORDER BY 子句 | SELECT column_name(s) FROM table_name ORDER BY column_name [ASC|DESC] | 对结果集进行排序 | | |
INSERT INTO | INSERT INTO 表名称 VALUES (值1, 值2,...) | 向表格中插入新的行 | 添加 | |
INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,..) | 指定所要插入数据的列 | | ||
Update | UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值 | 修改表中的数据 | 修改 | |
DELETE | DELETE FROM 表名称 WHERE 列名称 = 值 | 删除表中的行 | 删除 | |
DELETE * FROM table_name 或 DELETE FROM table_name | 删所有行,但表的结构、属性和索引都是完整的 | | ||
TOP子句 | SELECT TOP number/percent column_name(s) FROM table_name | 规定要返回的记录的数目 | 选取/过滤 | |
LIKE 操作符 | SELECT column_name(s) FROM table_name WHERE column_name LIKE pattern | WHERE 子句中搜索列中的指定模式 | | |
通配符 | % _ [charlist] [!charlist] | 通配符必须与 LIKE 运算符一起使用 | | |
IN 操作符 | SELECT column_name(s) FROM table_name WHERE column_name IN (value1,value2,...) | 允许在 WHERE 子句中规定多个值 | | |
BETWEEN 操作符 | SELECT column_name(s) FROM table_name WHERE column_name BETWEEN value1 AND value2 | BETWEEN...AND 会选取介于两个值之间的数据范围 | | |
Alias (别名) | SELECT column_name(s) FROM table_name AS alias_name | 表名称指定别名(Alias)。 | | |
SELECT column_name AS alias_name FROM table_name | 列名别名 | | ||
INNER JOIN 关键字 | SELECT column_name(s) FROM table_name1 INNER JOIN table_name2 ON table_name1.column_name=table_name2.column_name | 在表中存在至少一个匹配时, INNER JOIN 关键字返回行。 **INNER JOIN 与 JOIN 是相同的 | | |
LEFT JOIN 关键字 | SELECT column_name(s) FROM table_name1 LEFT JOIN table_name2 ON table_name1.column_name=table_name2.column_name | LEFT JOIN 关键字会从左表 (table_name1) 那里返回所有的行,即使在右表 (table_name2) 中没有匹配的行。 | | |
RIGHT JOIN 关键字 | SELECT column_name(s) FROM table_name1 RIGHT JOIN table_name2 ON table_name1.column_name=table_name2.column_name | RIGHT JOIN 关键字会右表 (table_name2) 那里返回所有的行,即使在左表 (table_name1) 中没有匹配的行。 | | |
FULL JOIN 关键字 | SELECT column_name(s) FROM table_name1 FULL JOIN table_name2 ON table_name1.column_name=table_name2.column_name | 只要其中某个表存在匹配, FULL JOIN 关键字就会返回行 | | |
UNION操作符 | SELECT column_name(s) FROM table_name1 UNION SELECT column_name(s) FROM table_name2 | 合并两个或多个SELECT语句的结果集 | 见3 | |
SELECT column_name(s) FROM table_name1 UNION ALL SELECT column_name(s) FROM table_name2 | 允许重复的值,请使用 UNION ALL | | | |
SELECT INTO | SELECT * INTO new_table_name [IN externaldatabase] FROM old_tablename | 创建表的备份复件 把所有的列插入新表 | | |
SELECT column_name(s) INTO new_table_name [IN externaldatabase] FROM old_tablename | 只把希望的列插入新表 | | | |
CREATE DATABASE | CREATE DATABASE database_name | 创建数据库 | | |
CREATE TABLE | CREATE TABLE 表名称 ( 列名称1 数据类型, 列名称2 数据类型, .... ) | 创建数据库中的表 | | |
NOT NULL 约束 | CREATE TABLE Persons ( Id_P int NOT NULL, LastName varchar(255) NOT NULL, FirstName varchar(255), Address varchar(255), City varchar(255) ) | NOT NULL 约束强制列不接受 NULL 值。 NOT NULL 约束强制字段始终包含值。这意味着,如果不向字段添加值,就无法插入新纪录或者更新记录 | | |
UNIQUE约束 | CREATE TABLE Persons ( Id_P int NOT NULL UNIQUE, LastName varchar(255) NOT NULL, FirstName varchar(255), Address varchar(255), City varchar(255) ) | 唯一标识数据库表中的每条记录 | | |
ALTER TABLE Persons DROP CONSTRAINT uc_PersonID | 撤销 UNIQUE 约束 | | | |
PRIMARY KEY 约束 | CREATE TABLE Persons ( Id_P int NOT NULL PRIMARY KEY, LastName varchar(255) NOT NULL, FirstName varchar(255), Address varchar(255), City varchar(255) ) | PRIMARY KEY 约束唯一标识数据库表中的每条记录.主键必须包含唯一的值.主键列不能包含 NULL 值。每个表应该都一个主键,并且每个表只能有一个主键。 | | |
ALTER TABLE Persons DROP CONSTRAINT pk_PersonID | 撤销 PRIMARY KEY 约束 | | | |
FOREIGN KEY 约束 | CREATE TABLE Orders ( O_Id int NOT NULL PRIMARY KEY, OrderNo int NOT NULL, Id_P int FOREIGN KEY REFERENCES Persons(Id_P) ) | 一个表中的 FOREIGN KEY 指向另一个表中的 PRIMARY KEY | | |
CREATE TABLE Orders ( O_Id int NOT NULL, OrderNo int NOT NULL, Id_P int, PRIMARY KEY (O_Id), CONSTRAINT fk_PerOrders FOREIGN KEY (Id_P) REFERENCES Persons(Id_P) ) | 命名 FOREIGN KEY 约束,以及为多个列定义 FOREIGN KEY 约束 | | | |
ALTER TABLE Orders DROP CONSTRAINT fk_PerOrders | 撤销 FOREIGN KEY 约束 | | | |
CHECK 约束 | CREATE TABLE Persons ( Id_P int NOT NULL CHECK (Id_P>0), LastName varchar(255) NOT NULL, FirstName varchar(255), Address varchar(255), City varchar(255) ) | 限制列中的值的范围 | | |
CREATE TABLE Persons ( Id_P int NOT NULL, LastName varchar(255) NOT NULL, FirstName varchar(255), Address varchar(255), City varchar(255), CONSTRAINT chk_Person CHECK (Id_P>0 AND City='Sandnes') ) | 命名 CHECK 约束,以及为多个列定义 CHECK 约束 | | | |
ALTER TABLE Persons DROP CONSTRAINT chk_Person | 撤销 CHECK 约束 | | | |
DEFAULT 约束 | CREATE TABLE Persons ( Id_P int NOT NULL, LastName varchar(255) NOT NULL, FirstName varchar(255), Address varchar(255), City varchar(255) DEFAULT 'Sandnes' ) | 向列中插入默认值 | | |
ALTER TABLE Persons ALTER COLUMN City DROP DEFAULT | 撤销 DEFAULT 约束 | | | |
CREATE INDEX | CREATE INDEX index_name ON table_name (column_name) | 创建索引 | | |
CREATE UNIQUE INDEX index_name ON table_name (column_name) | 在表上创建一个唯一的索引 | | | |
DROP | DROP INDEX table_name.index_name | 删除表格中的索引 | 删除 | |
DROP TABLE 表名称 | 删除表(表的结构、属性以及索引也会被删除): | | ||
DROP DATABASE 数据库名称 | 删除数据库 | | ||
TRUNCATE TABLE 表名称 | 除去表内的数据,但并不删除表本身 | | ||
ALTER TABLE | 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 | 改变表中列的数据类型 | | | |
AUTO INCREMENT 字段 | CREATE TABLE Persons ( P_Id int PRIMARY KEY IDENTITY, LastName varchar(255) NOT NULL, FirstName varchar(255), Address varchar(255), City varchar(255) ) | 在每次插入新纪录时,自动地创建主键字段的值。 | | |
CREATE VIEW | CREATE VIEW view_name AS SELECT column_name(s) FROM table_name WHERE condition | 创建视图 | | |
SQL CREATE OR REPLACE VIEW Syntax CREATE OR REPLACE VIEW view_name AS SELECT column_name(s) FROM table_name WHERE condition | 更新视图 | | | |
SQL DROP VIEW Syntax DROP VIEW view_name | 撤销视图 | | | |
Date 函数 | | | | |
NULL 值 | | NULL 值是遗漏的未知数据 | | |
NULL 函数 | | | | |
函数的语法 | SELECT function(列) FROM 表 | | | |
AVG 函数 | SELECT AVG(column_name) FROM table_name | AVG 函数返回数值列的平均值。NULL 值不包括在计算中。 | | |
COUNT() 函数 | SELECT COUNT(column_name) FROM table_name | 返回匹配指定条件的行数 | | |
SELECT COUNT(*) FROM table_name | COUNT(*) 函数返回表中的记录数 | | | |
SELECT COUNT(DISTINCT column_name) FROM table_name | 函数返回指定列的不同值的数目 | | | |
FIRST() 函数 | SELECT FIRST(column_name) FROM table_name | 返回指定的字段中第一个记录的值 | | |
LAST() 函数 | SELECT LAST(column_name) FROM table_name | 返回指定的字段中最后一个记录的值 | | |
MAX() 函数 | SELECT MAX(column_name) FROM table_name | 返回一列中的最大值。NULL 值不包括在计算中 | | |
MIN() 函数 | SELECT MIN(column_name) FROM table_name | | | |
SUM() 函数 | SELECT SUM(column_name) FROM table_name | 返回数值列的总数(总额) | | |
GROUP BY 语句 | SELECT column_name, aggregate_function(column_name) FROM table_name WHERE column_name operator value GROUP BY column_name | 结合合计函数,根据一个或多个列对结果集进行分组 | | |
HAVING 子句 | SELECT column_name, aggregate_function(column_name) FROM table_name WHERE column_name operator value GROUP BY column_name HAVING aggregate_function(column_name) operator value | 在 SQL 中增加 HAVING 子句原因是,WHERE 关键字无法与合计函数一起使用 | | |
UCASE() 函数 | SELECT UCASE(column_name) FROM table_name | 把字段的值转换为大写 | | |
LCASE() 函数 | SELECT LCASE(column_name) FROM table_name | 把字段的值转换为小写 | | |
MID() 函数 | SELECT MID(column_name,start[,length]) FROM table_name | 从文本字段中提取字符 | | |
LEN() 函数 | SELECT LEN(column_name) FROM table_name | 返回文本字段中值的长度 | | |
ROUND() 函数 | SELECT ROUND(column_name,decimals) FROM table_name | 把数值字段舍入为指定的小数位数 | | |
NOW() 函数 | SELECT NOW() FROM table_name | 返回当前的日期和时间 | | |
FORMAT() 函数 | SELECT FORMAT(column_name,format) FROM table_name | 对字段的显示进行格式化 | | |
注释:1.SQL 语句对大小写不敏感。SELECT 等效于 select。 2.WHERE子句条件值周围使用的是单引号。SQL 使用单引号来环绕文本值(大部分数据库系统也接受双引号)。如果是数值,请不要使用引号。 3.请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。 4.MIN 和 MAX 也可用于文本列,以获得按字母顺序排列的最高或最低值。 | |
SQL语句大全
最新推荐文章于 2021-07-19 21:02:44 发布