ddl操作
* 查看所有数据库 : show databases;
* 切换数据库 : use 数据库名;
* 创建数据库 : create database [if not exists] mydb1 [charset=utf8];
* 删除数据库 : drop database [if exists] mydb1;
* 修改数据库编码 : alter database mydb1 character set utf8;
操作表
create table [if not exists] 表名(
列名 列类型,
列名 列类型
)
查看表 : show tables;
查看表结构 : desc tb_stu;
删除表 : drop table tb_stu;
修改表 : alter table 表名
添加 alter table 表名
add(
列名 列类型,
列名 列类型
)
alter table 表名
modify 列名 列的新类型
alter table 表名
drop 列名
alter table 表名
rename to 新表名
dml操作
insert into 表名(
列名,列名,列名
)
values(
'值','值','值'
);
update 表名 set 列名=列值 where 列名=列值 or 列名2=列值2;
(设置值) (条件
)
age >= 20 and age <=40;
age between 20 and 40; (同上)
sname='zhangSan' or sname='liSi';
sname in('zhangSan','liSi');(同上)
not 非的作用
is null
delete form 表名 where 条件
dql操作
查询 select * from 表
select 列1,[列2] from 表
去除重复行 : select destinct * from 表
列运算
select *,sal+ifnull(comm,0) from emp;
处理空值,如果comm为空用0替换 , sal+comm
select concat(ename,job) from emp;
select concat('我叫',ename,',我的工作是',job) as 描述 from emp;
concat 字符串连接 , as 起别名 (as 可以省略)
模糊查询
select * from emp where ename like '张_'
_匹配一个字符
%刚 以刚结尾 匹配0到多个字符
排序
order by 列名 desc降序/asc升序(默认)
多列排序条件
order by sal asc, comm desc
第一列相等时,按第二列排序
聚合
统计条数select count(*) from emp;
select count(列) from emp; 有null值的不计数
求和 select sum(sal) from emp;
最大 max(sal)
最小 min(sal)
平均 avg(sal)
分组查询
select job,count(*) from emp group by job;
select deptno,count(*) from emp where sal > 15000 group by deptno having count(*) >=2
薪水大于15000 按部门分组统计人数,显示人数>=2人的
select
from
where
group by
having
order by
使用顺序
limit(0,5)从第1行开始,查5行