DDL:对数据库,表,列进行操作DDL:对数据库,表,列进行操作
关键字:create 创建表和数据库
alter 修改表的字段
alter语句的关键字有 add(增加),drop(删除),modify(修改字段类型),change(可修改字段名和字段类型),rename to(修改表名)
drop 删除表,数据库和一个字段
DML:对表中的数据进行增,删,改的操作
关键字: insert into 向表中插入一条数据
update 修改数据
delete 删除数据
DQL:对表中的数据进行查询
关键字: select 查询
查看建表语句: show create table 表名
基本语句:
alter语句:
向表中增加一个字段: alter table 表名 add column 字段名 字段类型;
删除表中一个字段: alter table 表名 drop column 字段名;
修改表中某一个字段类型: alter table 表名 modify column 字段名 新字段类型;
可修改的字段名和修改字段类型:
alter table 表名 change column 字段名 新字段名 字段类型(也可写新字段类型)
修改表名: alter table 表名 rename to 表名;
给字段添加主键:
alter table 表名 change column 字段名 字段名 字段类型 primary key auto_increment
auto_increment: 给主键自增 (一般用于编号)
drop语句
删除数据库: drop 数据库名;
删除表: drop 表名;
删除字段: alter table 表名 drop column 字段名
DML语句
插入一条所有字段的数据:insert into 表名 values(按字段顺序写值);
插入一条部分字段的数据:insert into 表名 (字段名)values(值);
修改数据: update 表名 set 属性名=值; 修改的是 属性名 那一列的数据全部为 值
按条件修改数据: update 表名 set 属性名=值 where 条件
删除表所有 数据 : delete from 表名 ;
按条件删除数据: delete from 表名 where 条件
DQL语句
查询所有数据: select * from 表名;
查询部分字段: select 字段名1,字段名2 from 表名;
查询去重数据: select distinct 字段名 from 表名;
条件查询:
1..逻辑:and和or
select * from 表名 where name='jack' and pwd ='123';
select * from 表名 where name=‘jack’or name='rose';
2..比较条件: > < >= <= = between and(在某个区间范围内,首位都包含在内)
select * from 表名 where 字段>1;
select * from 表名 where 字段名 between 数字 and 数字;
3..判空条件: ='' is null(判断空) <>''(是不等于) is not null(判断非空)
select * from 表名 where 字段名<>' ';
select * from 表名 where 字段名 is not null;
select * from 表名 where 字段名 is null;
4..模糊查询
like关键字 _(表示一个字符) %(表示多个字符 包括0个)
想查询名字包含jack的
select * from表名 where字段名 like '_jack';
匹配名字包含jack的或者包含rose的
select * from 表名 where 字段名 like '%jack%' or 字段名 like '%rose%';
5..聚合函数 max(列) min(列) avg(列) count(列)(不包含null) sum(列)总和
select max(java) from student ; 不包含null
select min(java) from student; 不包含null
select sum(java) from student; 不包含null
select avg(java) from student; 不包含null
select count(*) from student; 不包含null
6..分页查询
关键字: limit int , int
select * from 表名 limit 3,4;
3 表示从3的下一条语句开始查询 4表示查询出四条语句
7..分组查询
关键字: group by
select * from 表名 group by 分组的列名 ;
按条件分组
关键字 : having 分组的的条件 where 分组前的条件
select * from 表名 group by 分组的列名 having 条件;
select * from 表名 where 条件 group by 分组的列名 ;
8..排序查询
关键字:order by asc 升序 默认 可不许asc
order by desc 降序
如果和分组一起用 先分组后排序
select * from 表名 group by 分组的列名 order by 排序的列名
9..多表查询
1) 隐式内连接查询 (按照条件进行显示)
select * from 表名1,表名2 where 表名1.(点) 主键=表名2.(点) 和主键有关系的列名
2)显示内连接
select * from 表名1 inner join 表名2 on 条件 inner 可省略
3)外连接
左外连接: 左边的表为主表 右边的表为副表
右外连接: 右边的表为主表 左边的表为副表
(1)左外连接: select * from 表名1 left outer join 表名2 on 条件
(2)右外连接: select * from 表名1 rigth outer join 表名2 on 条件
outer可省略
4)自连接: (自己连接自己)
select * from 表 join 表 on 条件
10..子查询 当一个sql语句需要用到另一个sql语句的结果集
例: 1 查看用户为张三的订单详情
select * from orders where user_id in(select id from user where username='张三')