SQL(Structured Query Language)结构化查询语言
高度的非过程化语言,是专门为操作关系型数据库而开发的,是关系型数据库的标准语言。用户只需要提出 “做什么”,至于怎么做,由外部代理(数据库引擎)完成。SQL用关键字、表名、列名等组合而成的一条语句(SQL语句)来描述操作的内容。
分类:
根据对数据库管理系统发出的指令不同,SQL语句可以分为三类:
1、DDL(Data Definition Language)数据(元数据)定义语言
1.1)创建数据库和表等对象
CREATE TABLE 表名(列名1 数据类型 [约束条件],列名2 数据类型 [约束条件],…);
1.2)修改数据库和表等对象
1.2.1)给表增加列
ALTER TABLE 表名 add column 列名 数据类型 约束;
1.2.2)给表重命名
ALTER TABLE 表名 rename to 新表名;
1.3)删除数据库和表等对象
DROP TABLE 表名;
2、DML(Data Manipulate language) 数据(用户数据)操作语言
2.1)向表中插入数据
INSERT INTO 表名(列名1,…) values(值1,…);//给指定的列插入数据
INSERT INTO 表名 values(值1,…);//给所有的列插入数据
2.2)修改表中的数据
UPDATE 表名 SET 列名=新值,…; //修改整列值
UPDATE 表名 SET 列名=新值,… WHERE 条件;//条件用来定位要修改的某行
UPDATE 表名 SET 列名=新值,… WHERE 列名 运算符 值;//条件用来定位要修改的某行
2.3)删除表中的数据
用于删除表中的行
DELETE FROM 表名;//删除表中所有数据
DELETE FROM 表名 WHERE 列名 运算符 值;
2.4)查询表中的数据
用于从表中(可以是多个表)中选取数据,结果是存储在一个结果表中(结果集)
SELECT 列名1…FROM 表名;
2.5)高级查询
2.5.1)模糊查询
列名 like 通配符(_ %)
_ :匹配单个字符
% :匹配任意个字符
2.5.2)排序
按指定的列名来进行排序
order by 列名 asc/desc; //asc :升序 desc :降序
2.5.3)限制记录条数
limit 数字
2.5.4)排序+限制
2.5.5)聚合函数
count(列名) //统计记录数量 count(*)
sum(列名) //计算给定列的总和
avg(列名) //计算给定列的平均值
min(列名) //计算给定列的最小值
max(列名) //计算给定列的最大值
2.5.6)别名:
select id AS 编号,name AS 姓名 ,min(age) AS 年龄 from t_stu;
2.5.7)分组:
group by 列名;
having 条件;
2.5.8)范围查询
between … and …
2.5.9)去重
distinct
2.5.10)子查询
in
in (值,…)
in (select …)
2.5.11)多表连接
select 表名.列名,… from 表1,表2 … where 条件;
select 列名,… from 表1 join 表2 on 连接条件 …where 过滤条件
3、DCL(Data Control Language) 数据控制语言
确认对数据进行的变更
取消对数据进行的变更
用户授权等
.