一、DDL:数据定义语言,主要是针对库、表、列等操作
1、创建数据库
create database 库名;
2、选中库
use 库名;
3、查看当前数据库信息
show create database 库名;
4、查看所有数据库
show databases;
注意:database后面要加“s”!!!,因为我自己经常忘记
5、修改数据库编码
alter database 库名 character set 新编码
6、删除库
drop database 库名;
7、查看当前选中的那个库
select database();
8、创建表
create table 表名
(
id int,
name char(10),
...
)
9、查看所有表
show tables;
10、查看表结构
DESC 表名;
11、查看表结构(通过建表语句形式查看结构)
show create table 表名;
12、修改表结构
添加字段:alter table 表名 add 字段名 类型;
修改字段类型:alter table 表名 modify 字段名 类型;
修改字段名:alter table 表名 change 原字段名 新字段名 类型;
删除字段:alter table 表名 drop column 字段名;
13、修改表字符
alter table 表名 character set 编码;
14、修改表名
alter table 表名 rename to 新表名
或
rename table 表名 to 新表名
15、删除表(结构+数据)
drop table 表名;
二、DQL:数据查询语言,用来查询记录(数据)
1、全表数据查询
select * from 表名;
2、limit关键字:分页
select * from 表名 limit 起始行号,每页行数;
注:起始行号从0开始计数;
项目中分页的实现:
select * from 表名 limit (当前页-1)*所要展示的行数,每页行数
3、查询个别字段
select 字段名1,字段2。。。 from 表名;
4、聚合函数:聚合为一个结果
sum:求和
avg:平均值
max:最大值
min:最小值
count:个数
5、分组查询
where 子句 group by...having;
where按条件查询 group by再按另一个条件分组 having最后做筛选;
例:每个院系有多少人?
首先知道有多个院系--分组
注:按分组的字段进行查询;
在分组的同时可以与聚合函数搭配;
6、两表联合查询
笛卡尔积:select 字段 from 表名1,表名2;
两表等值连接查询:select 字段 from 表名1,表名2 where 等值字段;
7、字段别名/表别名: 字段名/表名 [as] 别名
表名别:select * from score s1,student s2 where s1.sid=s2.id;
字段名别:select c_name,max(grade) m from score group by c_name;
8、排序查询
order by 字段 asc(升序)/desc(降序)
多个字段排序:order by 字段1 asc/desc,字段2 asc/desc,字段3 asc/desc....
9、模糊查询: like
通配符:
% 通配任意个任意字符
_ 通过一个任意字符
例:姓王的学生
select * from 表 where 姓名字段 like '王%'
10、去重: distinct
去除重复记录:下面的sql中sid和c_name字段不能同时相同;
select distinct sid,c_name from score
三、DML:数据操作语言,用来定义数据库记录(数据)
1、增:insert
给每个字段赋值:insert into 表名 values(值,值....);
注:要求values后面的值必须与表定义字段的顺序、类型、个数一致;
给个别字段赋值:insert into 表名(字段名) values(值)
给个别字段不按定义顺序赋值:insert into 表名(字段名) values(值)
注:要求values后面的值必须与表名后面字段的顺序、类型、个数一致
2、删:delete
删除所有数据:delete from 表名
按条件删除,需要添加where子句:
删除一行:delete from 表 where 条件;
当前页面数据全部删除:delete from 表 where 条件
in: ...where 字段 in (范围);
delete from student where id in (1,3,5);
delete from student where id=1 or id=3 or id=5;
3、改:update
全表修改:update 表名 set 字段=值 ;
where子句:update 表名 set 字段=值 where 条件
一次修改多个字段:where子句: update 表名 set 字段=值 ,字段=值...where 条件
持续更新中...