1.SQL语言的分类
- DDL:数据定义语言,定义数据库和表,create,drop,alter
- DML:数据的操作语言,对表中的数据进行操作,insert,delete,update
- DCL:数据的操作语言,
- DQL:数据的查询语言,最为常用,select
2.DDL的使用
2.1 create 创建数据库和表
数据库创建的格式:
create database 数据库名;
表的创建格式:
create table 表名(
字段1 字段类型,
字段2 字段类型,
字段3 字段类型,
......
);
2.2 alter 修改
1.表的修改
-
添加字段
alter table 表名 add 字段 字段类型;
-
改字段类型
alter table 表名 modify 字段 修改的字段类型; -
改字段名
alter table 表名 change 旧字段 新字段 字段类型; -
删除字段
alter table 表名 drop 字段 ; -
表名重命名
rename table 旧表名 to 新表名;
2.数据库的修改alter database 数据库名 character set 字符集;
3.DML的使用
- 添加元素,采用默认的方式进行赋值,需要对每个字段进行赋值,否则报错
insert into 表名(id,name,sex,age) values( 1 ,‘tom’,male ,23 )
可以选定指定字段进行赋值操作
insert into 表名(id,name) values(2,‘jerry’); - 删除某一行的数据,可以根据条件进行删除,否则全部删除
DELETE FROM 表名 where 限制条件 - 更改表中的数据值
UPDATE FROM 表名 SET 字段=值 where 条件筛选
4.DQL的使用
-
查询语句是使用最为频繁的语句
主要包含12种,别名查询未放入其中,只要会 AS 关键字即可-- 1.查询所有 SELECT *FROM student; -- 2.查询指定列 SELECT id,NAME,chinese,english,math FROM student; -- 3.查询时添加常量列 SELECT id,NAME,18 AS'age'FROM student; -- 4.查询时合并 SELECT id,NAME,(chinese+math+english)AS'总分'FROM student; -- 5.去除重复记录 SELECT DISTINCT servlet FROM student; -- 6.条件查询 -- 6.1 逻辑条件 and or SELECT *FROM student WHERE chinese>80 AND math>70; -- 6.2 比较条件 > < >= <= = <>(不等于) between and(>=且<=) SELECT *FROM student WHERE english BETWEEN 50 AND 80; SELECT *FROM student WHERE chinese >=80; -- 6.3 判空条件 is null/is not null =''/<>''(为空或非空字符串) SELECT *FROM student WHERE servlet IS NULL; ALTER TABLE student ADD COLUMN address VARCHAR(20); ALTER TABLE student DROP address; UPDATE student SET address='安徽黄山'WHERE id=2 OR id=3; -- 6.4 模糊条件 like %表示任意个字符 _代表一个字符 SELECT *FROM student WHERE NAME LIKE '李_'; -- 7.聚合查询 常用聚合函数 # sum() avg() max() min() count() SELECT SUM(english) AS '英语总分' FROM student; SELECT AVG(math) AS '数学avg' FROM student; SELECT MAX(chinese) AS '语文最高' FROM student; SELECT MIN(chinese)AS '语文最低' FROM student; SELECT COUNT(*) AS '个数' FROM student; -- count()统计不包含null值,使用不包含null值的字段 -- 8.分页查询 limit 起始行,查询几行 -- 起始行 = (页数-1)*查询行数 SELECT *FROM student LIMIT 0,2; SELECT *FROM student LIMIT 2,2; SELECT *FROM student LIMIT 4,2; SELECT *FROM student LIMIT 6,2; -- 9.查询排序 order by 字段 asc/desc(倒序) SELECT *FROM student ORDER BY chinese DESC; SELECT *FROM student ORDER BY english,math; -- 10.分组查询 group by 字段名 SELECT sex,COUNT(*)FROM student GROUP BY sex; SELECT *FROM student; -- 11.分组后筛选 -- 分组前的条件用WHERE , 分组后筛选用COUNT !! SELECT sex,COUNT(*)FROM student WHERE GROUP BY sex HAVING COUNT(*)>3;
5.delete和truncate
5.1delete-
语法
delete from 表 [where条件]; 注意: 删除数据用delete,不用truncate -
类型
删除表中名称为’Mac’的记录
删除价格小于5001的商品记录
删除表中的所有记录
5.2truncate
truncate table 表; -
delete删除: 将表中的数据, 一条一条的删除, 速度慢, 通过日志文件找回删除的内容
-
truncate删除: 将表直接删除, 然后创建一张结构相同的空表.速度快, 无法找回.
-