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语句大全
最新推荐文章于 2024-08-15 16:05:29 发布