CREATE DATABASE 语句
CREATE DATABASE 语句用于创建数据库。
CREATE DATABASE dbname;
CREATE TABLE 语句
CREATE TABLE 语句用于创建数据库中的表。表由行和列组成,每个表都必须有个表名。
data_type 可以参考 SQL通用数据类型
CREATE TABLE table_name ( column_name1 data_type(size), column_name2 data_type(size), column_name3 data_type(size), .... );
约束(Constraints)
SQL 约束用于规定表中的数据规则。
如果存在违反约束的数据行为,行为会被约束终止。
约束可以在创建表时规定(通过 CREATE TABLE 语句),或者在表创建之后规定(通过 ALTER TABLE 语句)。
CREATE TABLE table_name ( column_name1 data_type(size) constraint_name, column_name2 data_type(size) constraint_name, column_name3 data_type(size) constraint_name, .... ); # NOT NULL UNIQUE 约束 CREATE TABLE Users ( id int(10), name varchar(100) NOT NULL, nick_name int NOT NULL , game_id int(10), city varchar(255) DEFAULT '', UNIQUE (name), PRIMARY KEY (id), FOREIGN KEY (game_id) REFERENCES Games(id) )
- NOT NULL – 指示某列不能存储 NULL 值。
- AUTO INCREMENT – 自动地创建主键字段的值。不算是约束,而是一种语法字段。
- UNIQUE – 保证某列的每行必须有唯一的值,每个表可以有多个 UNIQUE 约束。
- PRIMARY KEY – NOT NULL 和 UNIQUE 的结合。确保某列(或两个列多个列的结合)有唯一标识,有助于更容易更快速地找到表中的一个特定的记录。
- FOREIGN KEY – 保证一个表中的数据匹配另一个表中的值的参照完整性。
- CHECK – 保证列中的值符合指定的条件。
- DEFAULT – 规定没有给列赋值时的默认值。
DROP 语句
# DROP INDEX 语句用于删除表中的索引 ALTER TABLE table_name DROP INDEX index_name # DROP TABLE 语句用于删除表 DROP TABLE table_name # ROP DATABASE 语句用于删除数据库 DROP DATABASE database_name # TRUNCATE TABLE 语句删除表内的数据,但不删除表本身 TRUNCATE TABLE table_name
INSERT INTO 语句
INSERT INTO 语句用于向表中插入新记录。如果没有指定列明,则按表中第一列开始的顺序插入值。
INSERT INTO table_name VALUES (value1,value2,value3,...); INSERT INTO table_name (column1,column2,column3,...) VALUES (value1,value2,value3,...);
UPDATE 语句
UPDATE 语句用于更新表中已存在的记录。
UPDATE table_name SET column1=value1,column2=value2,... WHERE some_column=some_value;
DELETE 语句
DELETE 语句用于删除表中的记录。
DELETE FROM table_name WHERE some_column=some_value;
SELECT 语句
SELECT 语句用于从数据库中选取数据。结果被存储在一个结果表中,你可以继续根据结果表进行第二次查询操作,也就是说可以嵌套。
SELECT column_name,column_name FROM table_name; SELECT * FROM table_name;
SELECT DISTINCT 语句
在表中,一个列可能会包含多个重复值,有时望仅仅列出不同(distinct)的值。DISTINCT 关键词用于返回唯一不同的值。
SELECT DISTINCT column_name,column_name FROM table_name;
WHERE 子句
WHERE 子句用于提取那些满足指定标准的记录。
运算符 | 描述 |
---|---|
= | 等于 |
<> | 不等于。注释:在 SQL 的一些版本中,该操作符可被写成 != |
> | 大于 |
< | 小于 |
>= | 大于等于 |
<= | 小于等于 |
BETWEEN | 在某个范围内 |
LIKE | 搜索某种模式 |
IN | 指定针对某个列的多个可能值 |
SELECT column_name,column_name FROM table_name WHERE column_name operator value;
AND & OR 运算符
如果第一个条件和第二个条件都成立,则 AND 运算符显示一条记录。
如果第一个条件和第二个条件中只要有一个成立,则 OR 运算符显示一条记录。
LIKE 操作符
LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式。
SELECT column_name(s) FROM table_name WHERE column_name LIKE pattern;
通配符 | 描述 |
---|---|
% | 替代 0 个或多个字符 |
_ | 替代一个字符 |
[charlist] | 字符列中的任何单一字符 |
[^charlist] 或 [!charlist] |
不在字符列中的任何单一字符 |
IN 操作符
IN 操作符允许您在 WHERE 子句中规定多个值。
SELECT column_name(s) FROM table_name WHERE column_name IN (value1,value2,...);
BETWEEN 操作符
ETWEEN 操作符选取介于两个值之间的数据范围内的值。这些值可以是数值、文本或者日期。
SELECT column_name(s) FROM table_name WHERE column_name BETWEEN value1 AND value2;
别名 AS
通过使用 SQL,可以为表名称或列名称指定别名。
# 列的 SQL 别名语法 SELECT column_name AS alias_name FROM table_name; # 表的 SQL 别名语法 SELECT column_name(s) FROM table_name AS alias_name;
ORDER BY 关键字
ORDER BY 关键字用于对结果集按照一个列或者多个列进行排序。
ORDER BY 关键字默认按照升序 ASC 对记录进行排序。降序使用 DESC 关键字。
SELECT column_name,column_name FROM table_name ORDER BY column_name,column_name ASC|DESC;
SELECT TOP, LIMIT, ROWNUM 子句
SELECT TOP 子句用于规定要返回的记录的数目。
SELECT TOP 子句对于拥有数千条记录的大型表来说,是非常有用的。
# SQL Server / MS Access 语法 SELECT TOP number|percent column_name(s) FROM table_name; # MySQL 语法 SELECT column_name(s) FROM table_name LIMIT number; # Oracle 语法 SELECT column_name(s) FROM table_name WHERE ROWNUM <= number;
GROUP BY 语句
GROUP BY 语句用于结合聚合函数,根据一个或多个列对结果集进行分组。
SELECT column_name, aggregate_function(column_name) FROM table_name WHERE column_name operator value GROUP BY column_name;