SQL的使用
1. DDL数据定义语言
2. DML数据操作语言
3. DQL数据查询语言
注意:
1. SQL语句在执行时不区分大小写,为了书写规范一律大写
2. 表格名,字段名不能和关键词同名
3. 每一个SQL语句都以;结尾
DDL语句
创建表格 CREATE TABLE
CREATE TABLE 表格名 (字段1 字段1的类型, 字段2 字段2的类型, 字段3 字段3的类型, ...);
CREATE TABLE student (name text, age integer, height float);
删除表格 DROP TABLE
DROP TABLE 表格名
DROP TABLE student
DML语句
插入 INSERT INTO
INSERT INTO 表格名(字段1, 字段2, 字段3, ...) VALUES(数值1, 数值2, 数值3, ...);
INSERT INTO Student(name, age, height) VALUES('ljp', 25, 167);
删除 DELETE
DELETE FROM 表格名
DELETE FROM STUDENT
带筛选条件的删除用where, and或者or连接多个筛选条件
DELETE FROM 表格名 WHERE 筛选条件 AND 筛选条件;
DELETE FROM Student age>=20 AND height<160;
修改 UPDATE SET
不加筛选条件的修改默认修改所有数据的值
UPDATE 表格名 SET 字段名=修改后的值;
修改多个字段,用逗号隔开
UPDATE 表格名 SET 字段名=值,字段名=值;
带筛选条件,只筛选符合条件的数据的值
UPDATE 表格名 SET 字段名=修改后的值 WHERE 筛选条件;
DQL语句
查询 SELECT
查询某个表格中的数据,可用筛选条件,若要查询所有字段,可以用通配符*代替
SELECT 字段1,字段2,字段3 FROM 表格名 WHERE 查询条件;
排序查询结果,关键字ORDER BY,ASC升序 DESC降序
SELECT * FROM 表格名 ORDER BY DESC;
模糊查询关键词LIKE,用于text类型的数据
SELECT * FROM 表格名 WHERE 字段 LIKE '模糊查询条件,%代表任意字符'
设置查询显示的数量
从第x条数据开始显示y条数据
SELECT * FROM 表格名 LIMIT x,y;
约束
在创建表格设定字段时给字段添加的约束条件
简单约束
不为空 NOT NULL
该字段对应的值不能为空
CREATE TALALE 表格名 (字段1 字段类型 NOT NULL,...);
唯一性 UNIQUE
该字段对应的值不能重复,具有唯一性
CREATE TALALE 表格名 (字段1 字段类型 UNIQUE,...);
默认值
在字段没有设置值的时候自动生成的值
CREATE TALALE 表格名 (age integer DEFAULT 18, name text DEFAULT '小明'...);
主键约束 PRIMARY KEY
主键约束用于区分表中不同数据的一个编码,具有唯一性,遵循以下设计原则:
1. 主键应对用户无意义
2. 主键的值一旦设定无法更改
3. 主键的值应由系统自动生成
4. 一个数据表中最多只能有一个主键
eg:
CREATE TALALE 表格名 (字段1 字段类型 PRIMARY KEY,...);
自动增长 AUTOINCREMENT
CREATE TALALE 表格名 (字段1 字段类型 PRIMARY KEY AUTOINCREMENT,...);
外键约束 REFERENCES
使用REFERENCE能够绑定外键关联,一般绑定另一个表格中的主键.并且插入外键约束的值时必须再关联表格中存在唯一的对应值
CREATE TALALE director (id integer PRIMARY KEY,...);
CREATE TALALE movie (id integer PRIMARY KEY,direcor_id integer REFERENCES director(id));
多表联查 JOIN
在有外键关联的情况下需要同时获取两个表格中的数据,使用多表联查
SELECT * FROM 表格1 JOIN 表格2 ON 表格1中的字段=相对应的表格2中的字段
eg:
SELECT * FROM movie JOIN director ON movie.director_id=director.id;
可以再表格名后边用简化名对表格名进行替代 movie M
SELECT * FROM movie M JOIN director D ON M.director_id=D.id;