2.SQL常用命令一览表

1.数据库(DATABASE)

创建、更改、删除语法
创建新数据库CREATE DATABASE 数据库名
更改数据库ALTER DATABASE 数据库名
删除数据库DROP DATABASE 数据库名

2.表(TABLE)

创建、更改、删除语法
创建新表CREATE TABLE 表名
(
列名1 数据类型,
列名2 数据类型,
列名3 数据类型
)
更改表ALTER TABLE 表名
删除表DROP TABLE 表名
删除表(只删除表内的数据,但并不删除表本身)TRUNCATE TABLE 表名
表别名SELECT 列名 FROM 表名  AS 表别名
约束语法
NOT NULL(列不接受 NULL 值)CREATE TABLE 表名
(
列名1 数据类型 NOT NULL,
列名2 数据类型 NOT NULL,
列名3 数据类型
)
UNIQUE(列唯一性)MySQL
CREATE TABLE 表名
(
列名1 数据类型 NOT NULL,
列名2 数据类型 NOT NULL,
列名3 数据类型,
UNIQUE (列名1)
)
SQL Server
CREATE TABLE 表名
(
列名1 数据类型 NOT NULL UNIQUE,
列名2 数据类型 NOT NULL,
列名3 数据类型
)
UNIQUE(列唯一性,约束名和多个列)CREATE TABLE 表名
(
列名1 数据类型 NOT NULL,
列名2 数据类型 NOT NULL,
列名3 数据类型,
CONSTRAINT 约束名 UNIQUE (列名1, 列名2)
)
UNIQUE(列唯一性,更改已存在表)ALTER TABLE 表名
ADD UNIQUE (列名1)
UNIQUE(列唯一性,更改已存在表,约束名和多个列)ALTER TABLE 表名
ADD CONSTRAINT 约束名 UNIQUE (列名1, 列名2)
删除UNIQUE约束MySQL
ALTER TABLE 表名
DROP INDEX 约束名
SQL Server
ALTER TABLE 表名
DROP CONSTRAINT 约束名
PRIMARY KEY(列主键)MySQL
CREATE TABLE 表名
(
列名1 数据类型 NOT NULL,
列名2 数据类型 NOT NULL,
列名3 数据类型,
PRIMARY KEY (列名1)
)
SQL Server
CREATE TABLE 表名
(
列名1 数据类型 NOT NULL PRIMARY KEY,
列名2 数据类型 NOT NULL,
列名3 数据类型
)
PRIMARY KEY(列主键,约束名和多个列)CREATE TABLE 表名
(
列名1 数据类型 NOT NULL,
列名2 数据类型 NOT NULL,
列名3 数据类型,
CONSTRAINT 约束名 PRIMARY KEY (列名1, 列名2)
)
PRIMARY KEY(列主键,更改已存在表)ALTER TABLE 表名
ADD PRIMARY KEY (列名1)
PRIMARY KEY(列主键,更改已存在表,约束名和多个列)ALTER TABLE 表名
ADD CONSTRAINT 约束名 PRIMARY KEY (列名1, 列名2)
删除PRIMARY KEY约束MySQL
ALTER TABLE 表名
DROP PRIMARY KEY
SQL Server
ALTER TABLE 表名
DROP CONSTRAINT 约束名
FOREIGN KEY(列外键)MySQL
CREATE TABLE 表名2
(
列名1 数据类型 NOT NULL,
列名2 数据类型 NOT NULL,
列名3 数据类型,
PRIMARY KEY (列名1),
FOREIGN KEY (列名3) REFERENCES 表名1(列名1)
)
SQL Server
CREATE TABLE 表名2
(
列名1 数据类型 NOT NULL PRIMARY KEY,
列名2 数据类型 NOT NULL,
列名3 数据类型 FOREIGN KEY (列名3) REFERENCES 表名1(列名1)
)
FOREIGN KEY(列外键,约束名和多个列)CREATE TABLE 表名
(
列名1 数据类型 NOT NULL,
列名2 数据类型 NOT NULL,
列名3 数据类型,
CONSTRAINT 约束名 FOREIGN KEY (列名3) REFERENCES 表名1(列名1)
)
FOREIGN KEY(列主键,更改已存在表)ALTER TABLE 表名
ADD FOREIGN KEY (列名3) REFERENCES 表名1(列名1)
FOREIGN KEY(列主键,更改已存在表,约束名和多个列)ALTER TABLE 表名
ADD CONSTRAINT 约束名 FOREIGN KEY (列名3) REFERENCES 表名1(列名1)
删除FOREIGN KEY约束(注意:删除外键约束并没有删除外键这一列)MySQL
ALTER TABLE 表名
DROP FOREIGN KEY 约束名
SQL Server
ALTER TABLE 表名
DROP CONSTRAINT 约束名
CHECK(列范围)MySQL
CREATE TABLE 表名
(
列名1 数据类型 NOT NULL,
列名2 数据类型 NOT NULL,
列名3 数据类型,
CHECK (列名1>0)
)
SQL Server
CREATE TABLE 表名
(
列名1 数据类型 NOT NULL CHECK (列名1>0),
列名2 数据类型 NOT NULL,
列名3 数据类型
)
CHECK(列范围,约束名和多个列)CREATE TABLE 表名
(
列名1 数据类型 NOT NULL,
列名2 数据类型 NOT NULL,
列名3 数据类型,
CONSTRAINT 约束名 CHECK (列名1>0 AND 列名2 = ‘Sandnes’)
)
CHECK(列范围,更改已存在表)ALTER TABLE 表名
ADD CHECK (列名1>0)
CHECK(列范围,更改已存在表,约束名和多个列)ALTER TABLE 表名
ADD CONSTRAINT 约束名 CHECK (列名1>0 AND 列名2 = ‘Sandnes’)
删除CHECK约束MySQL
ALTER TABLE 表名
DROP CHECK 约束名
SQL Server
ALTER TABLE 表名
DROP CONSTRAINT 约束名
DEFAULT(默认值)CREATE TABLE 表名
(
列名1 数据类型 NOT NULL,
列名2 数据类型 NOT NULL,
列名3 数据类型 DEFAULT ‘Sandnes’
)
DEFAULT(默认值,更改已存在表)MySQL
ALTER TABLE 表名
ALTER City SET DEFAULT ‘SANDNES’
SQL Server
ALTER TABLE 表名
ALTER COLUMN City SET DEFAULT ‘SANDNES’
删除DEFAULT约束MySQL
ALTER TABLE 表名
ALTER City DROP DEFAULT
SQL Server
ALTER TABLE 表名
ALTER COLUMN City DROP DEFAULT
自动增加(AUTO INCREMENT,默认开始值是 1,每条新记录递增 1)
MySQL
CREATE TABLE 表名
(
列名1 数据类型 NOT NULL AUTO_INCREMENT,
列名2 数据类型 NOT NULL,
列名3 数据类型
)
SQL Server
CREATE TABLE 表名
(
列名1 数据类型 PRIMARY KEY IDENTITY,
列名2 数据类型 NOT NULL,
列名3 数据类型
)

3.列(COLUMN)

添加、更改、删除语法
添加列(已存在表)ALTER TABLE 表名
ADD 列名 数据类型
更改列(已存在表)ALTER TABLE 表名
ALTER COLUMN 列名 数据类型
删除列(已存在表)ALTER TABLE 表名
DROP COLUMN 列名
列别名SELECT 列名 AS 列别名 FROM 表名

4.记录(RECORD)

查询语法
查询(所有列)SELECT * FROM 表名
查询(特定列)SELECT 列名1,列名2 FROM 表名
查询(记录去重)SELECT DISTINCT 列名 FROM 表名
查询(限定记录的数目或百分比)MySQL:SELECT 列名 FROM 表名 LIMIT 数字
SQL Server:SELECT TOP 数字 [PERCENT] 列名 FROM 表名
查询(ASC升序,DESC降序)SELECT 列名 FROM 表名 ORDER BY 列名 [ASC|DESC]
查询(GROUP BY分组)SELECT 列名1,函数(列名2) FROM 表名 GROUP BY 列名1
查询(HAVING条件)SELECT 列名1,函数(列名2) FROM 表名 GROUP BY 列名1
HAVING 函数(列名2)<2000
条件查询语法
条件查询SELECT 列名 FROM 表名 WHERE 条件
条件查询(AND|OR)SELECT 列名 FROM 表名 WHERE 条件1 AND|OR 条件2
条件查询(LIKE)SELECT 列名 FROM 表名 WHERE 列名 LIKE pattern
条件查询(NOT LIKE)SELECT 列名 FROM 表名 WHERE 列名 NOT LIKE pattern
条件查询(IN)SELECT 列名 FROM 表名 WHERE 列名 IN (值1,值2,..)
条件查询(BETWEEN..AND)SELECT 列名 FROM 表名 WHERE 列名 BETWEEN 值1 AND 值2
条件查询(NOT BETWEEN..AND)SELECT 列名 FROM 表名 WHERE 列名 NOT BETWEEN 值1 AND 值2
条件查询(IS NULL)SELECT 列名 FROM 表名 WHERE 列名 IS NULL
条件查询(IS NOT NULL)SELECT 列名 FROM 表名 WHERE 列名 IS NOT NULL
联表查询语法
联接(JOIN)SELECT 表名1.列名1, 表名1.列名2, 表名2.列名1 FROM 表名1, 表名2 WHERE 表名1.主键 = 表名2.外键
内联接(INNER JOIN,同JOIN)SELECT 表名1.列名1, 表名1.列名2, 表名2.列名1 FROM 表名1 INNER JOIN 表名2 ON 表名1.主键= 表名2.外键
左联接(LEFT JOIN)SELECT 表名1.列名1, 表名1.列名2, 表名2.列名1 FROM 表名1 LEFT JOIN 表名2 ON 表名1.主键= 表名2.外键
右联接(RIGHT JOIN)SELECT 表名1.列名1, 表名1.列名2, 表名2.列名1 FROM 表名1 RIGHT JOIN 表名2 ON 表名1.主键= 表名2.外键
全联接(FULL JOIN)SELECT 表名1.列名1, 表名1.列名2, 表名2.列名1 FROM 表名1 FULL JOIN 表名2 ON 表名1.主键= 表名2.外键
合并查询语法
UNIONSELECT 列名 FROM 表名1 UNION SELECT 列名 FROM 表名2
UNION ALLSELECT 列名 FROM 表名1 UNION ALL SELECT 列名 FROM 表名2
备份语法
备份所有列SELECT * INTO 新表名 FROM 源表名
备份特定列SELECT 列名 INTO 新表名 FROM 源表名
增加、更改、删除语法
增加记录(按列顺序)INSERT INTO 表名 VALUES (值1, 值2,….)
增加记录(特定列)INSERT INTO 表名 (列名1, 列名2,…) VALUES (值1, 值2,….)
更改记录UPDATE 表名 SET 列名 = 新值 WHERE 条件
删除记录(所有列)DELETE FROM 表名
删除记录(特定列)DELETE FROM 表名 WHERE 条件

5.索引(INDEX)

名称语法
创建索引CREATE INDEX 索引名 ON 表名 (列名)
创建唯一索引CREATE UNIQUE INDEX 索引名 ON 表名 (列名)
删除索引MySQL:ALTER TABLE 表名 DROP INDEX 索引名
SQL Server:DROP INDEX 表名.索引名

6.备注

SQL语句对大小写不敏感,SELECT等效于select

某些数据库会要求末尾加上;分号,正常不需要加,如果加的话,可以一行运行多条命令。

原创文章,作者:huoxiaoqiang,如若转载,请注明出处:https://www.huoxiaoqiang.com/basic/sql/1899.html

(0)
上一篇 2020年8月17日 01:52
下一篇 2020年8月30日 17:48

相关推荐

发表评论

登录后才能评论