创建数据库
CREATE DATABASE database_name
CREATE TABLE 表名称
(
列名称1 数据类型 NOT NULL ,
列名称2 数据类型,
列名称3 数据类型,
PRIMARY KEY (列名称1),
UNIQUE (列名称1),
CHECK (列名称1>0),
CONSTRAINT chk_Person CHECK (Id_P>0 AND City='Sandnes')
)
创建表约束:
- NOT NULL 字段能否为空 设置为空,添加数据时传入空值将不能添加
- UNIQUE 字段是否唯一
- PRIMARY KEY 主键 值唯一 不能为空 每个表必须有一个
- FOREIGN KEY 外键 连接另外一个表的主键
- CHECK 用于限制列中的值的范围
- DEFAULT 默认值 没有插入值将用默认值
每个表可以有多个 UNIQUE 约束,但是每个表只能有一个 PRIMARY KEY 约束

SELECT
搜索指定列
SELECT 列名称1,列名称2 FROM 表名称
搜索表格所有
SELECT * FROM 表名称
搜索指定列,去除列中相同部分
SELECT DISTINCT 列名称 FROM 表名称
搜索时添加where语句指定条件
SQL 使用单引号来环绕*文本值*(大部分数据库系统也接受双引号)。如果是*数值*
SELECT 列名称1,列名称2 FROM 表名称 WHERE 列 运算符 值
AND 和 OR
AND 和 OR 可在 WHERE 子语句中把两个或多个条件结合起来,AND两个条件都成立,OR表示其中一个条件成立就行
SELECT 列名称1,列名称2 FROM 表名称 WHERE 列 运算符 值 AND 列 运算符 值
ORDER BY 搜索完排序
默认按照升序对记录进行排序ASC, 添加DESC 关键字表示降序
SELECT 列名称1,列名称2 FROM 表名称 ORDER BY 列名称1 升序
SELECT 列名称1,列名称2 FROM 表名称 ORDER BY 列名称1 DESC 降序

INSERT
全部插入
INSERT INTO 表名称 VALUES (值1, 值2,....)
指定列插入
INSERT INTO 表名称 (列1,列2,...) VALUES (值1, 值2,....)
UPDATE
UPDATE 表名称 SET 列名称1 = 新值M,列名称2 = 新值 WHERE 列名称 = 某值
DELETE
删除指定行
DELETE FROM 表名称 WHERE 列名称 = 值
删除所有
DELETE * FROM 表名称
TOP 和 LIMIT
TOP,LIMIT 子句用于规定要返回的记录的数目
SELECT TOP number|percent column_name(s) FROM table_name
SELECT column_name(s) FROM table_name LIMIT number
LIKE
用于模糊搜索
以东结尾
select * from student where address like '%东'
以东开头
select * from student where address like '东%'
中间含有东
select * from student where address like '%东%'
SELECT column_name(s) FROM table_name WHERE column_name LIKE pattern
SELECT column_name(s) FROM table_name WHERE column_name NOT LIKE pattern

IN 操作符
IN 操作符允许我们在 WHERE 子句中规定多个值
SELECT column_name(s) FROM table_name WHERE column_name IN (value1,value2,...)
BETWEEN 操作符
操作符 BETWEEN ... AND 会选取介于两个值之间的数据范围。这些值可以是数值、文本或者日期。
SELECT column_name(s) FROM table_name WHERE column_name BETWEEN value1 AND value2
操作符 NOT BETWEEN ... AND 会选取不介于两个值之间的数据范围
SELECT column_name(s) FROM table_name WHERE column_name NOT BETWEEN value1 AND value2
AS 操作符
AS可以为列名称和表名称指定别名
表指定别名
SELECT column_name(s) FROM table_name AS alias_name
列指定别名
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
LEFT JOIN 关键字
从左表 (table_name1) 那里返回所有的行,即使在右表 (table_name2) 中没有匹配的行。
SELECT column_name(s) FROM table_name1 LEFT JOIN table_name2
ON table_name1.column_name=table_name2.column_name
RIGHT JOIN 关键字
从右表 (table_name2) 那里返回所有的行,即使在左表 (table_name1) 中没有匹配的行
SELECT column_name(s) FROM table_name1 RIGHT JOIN table_name2 ON table_name1.column_name=table_name2.column_name
FULL JOIN 关键字
只要其中某个表存在匹配,FULL JOIN 关键字就会返回行。
UNION 操作符
合并两个或多个 SELECT 语句的结果集。
UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。
UNION
查询的列不允许重复
SELECT column_name(s) FROM table_name1
UNION
SELECT column_name(s) FROM table_name2
UNION ALL
查询的列可以重读
SELECT column_name(s) FROM table_name1
UNION ALL
SELECT column_name(s) FROM table_name2