MySQL数据库语句
-----------DDL数据定义语句------------------
1.查询数据库所有库名
show databases;
2.创建自定义数据库
create database 自定义库名;
3.指向数据库
use 库名;
4.查询数据库中所有表的信息
show tables;
5.创建数据库表结构(只能创建不能修改)
create table 自定义表名(字段名 字段类型(类型长度),字段名02 字段类型02(类型长度)...);
6.查询表结构
desc 表名;
7.添加表结构
alter table 表名 add 字段名 字段类型(字段长度);
8.修改表结构
alter table 表名 change 旧字段名 新字段名 新字段类型字段长度;
9.更改表名
alter table 旧表名 rename 新表名;
10.删除表名
drop table 表名
11.删除字段名
alter table 表名 drop 字段名;
创建数据库可以允许的数据类型基本有(int integer char varchar date double(M,D)M为正数长度,D为浮点长度);
设定主键 primary key;主键不能重复 不能为空
设定不能为空 not null;
-------------DQL与DML-----------------
1.查询
查询所有
select * from 表名;
查询部分字段
select 字段名1,字段名2... from 表名;
查出的字段名更改成别名
select 字段名1 as 别名1,字段名2 as 别名2... from 表名;
2.添加
向表中添加部分字段数据
insert into 表名(字段名1,字段名2...) values(添加值1,添加值2...);
向数据库添全部信息 插入字段值的顺序与数据库字段顺序相同
insert into 表名 values(全部字段1值,全部字段2值...);
3.修改
update 表名 set 修改字段1=修改后的值1, 修改字段2=修改后的值2.... where 条件;
4.删除
delete from 表名 where 条件;
where 条件可以写在select,delete,update;
where 条件如果要添加两个或多个对象时使用 and 与 or 或;
5.筛选
从几到几命令语句
select * from 表名 where 条件字段名(不用等于什么值了)between 起始值 and 结束值;
in(显示);
select * from 表名 where 被筛选的字段名 in(筛选1,筛选2...);
not in(不显示)
select * from 表名 where 被筛选的字段名 not in(筛选1,筛选2...);
6.模糊
like
如果查询是varchar类型则需要''括上 下划线为死值只占有一个位数 %为0到无穷大占位
select * from 表名 where 模糊字段名 like '_查找值%';
7.限制显示
limit
从数据下标第几个开始显示几个结束
select * from 表名 limit 下标数字,显示个数;
没有下标参与只是显示几个
select * from 表名 limit 显示个数;
8.去重
distinct
select distinct 被去重字段名1,被去重字段名2....from 表名;
如果where条件判定是空
select * from 表名 where id is null;
=============================================================
数学运算符
+ ,- ,* , / , < , > , = , !=
1.求和
sum
select sum(被求和字段名只能是数字类型) from 表名;
2.寻找最大值
max
select max(查询最大数值字段类型随意) from 表名;
3.寻找最小值
min
select min(查询最小数据字段类型随意) from 表名;
4.统计字段有值的个数
count
select count(字段名) from 表名;
5.四舍五入
round
select round(字段名) from 表名;
6.求平均数
avg
select avg(字段名) from表名;
=============================================================
自连接
显示所有员工以及员工经理名称
SELECT a.ename AS '经理名',b.ename AS '员工名' FROM emp a,emp b WHERE a.empno=b.mgr;
外连接
列出部门名称和这些部门的雇员,同时列出那些没有雇员的部门
内外链接
A inner join B on
内外链接可以去除掉不符合on条件,但会显示null数据字段的,A显示表的内容
左外连接
A left join B on
显示A的内容 符合B的条件 on 为对比条件
SELECT d.dname,e.ename FROM dept d LEFT JOIN emp e ON d.deptno=e.DEPTNO;
右外连接
B right outer join A on
符合B条件 显示A的内容 on 为对比条件
SELECT d.dname,e.ename FROM emp e RIGHT OUTER JOIN dept d ON d.deptno=e.deptno;
分组(凡是分组字段不一样值的时候则分开为另一个)
group by
分组不能使用where当条件 能用having子句控制条件语句
列出各种工作类别的最低薪金,显示最低薪金大于1500的记录
SELECT MIN(sal),job FROM emp GROUP BY JOB HAVING MIN(sal)>1500;
排序
order by
select * from 表名 order by 被排序的字段名 排序方法;
排序方法分为 desc asc;
嵌套查询
select * from 表名 where 条件=(select 唯一值的显示字段 from 表名 where 条件=(...));
-----------DDL数据定义语句------------------
1.查询数据库所有库名
show databases;
2.创建自定义数据库
create database 自定义库名;
3.指向数据库
use 库名;
4.查询数据库中所有表的信息
show tables;
5.创建数据库表结构(只能创建不能修改)
create table 自定义表名(字段名 字段类型(类型长度),字段名02 字段类型02(类型长度)...);
6.查询表结构
desc 表名;
7.添加表结构
alter table 表名 add 字段名 字段类型(字段长度);
8.修改表结构
alter table 表名 change 旧字段名 新字段名 新字段类型字段长度;
9.更改表名
alter table 旧表名 rename 新表名;
10.删除表名
drop table 表名
11.删除字段名
alter table 表名 drop 字段名;
创建数据库可以允许的数据类型基本有(int integer char varchar date double(M,D)M为正数长度,D为浮点长度);
设定主键 primary key;主键不能重复 不能为空
设定不能为空 not null;
-------------DQL与DML-----------------
1.查询
查询所有
select * from 表名;
查询部分字段
select 字段名1,字段名2... from 表名;
查出的字段名更改成别名
select 字段名1 as 别名1,字段名2 as 别名2... from 表名;
2.添加
向表中添加部分字段数据
insert into 表名(字段名1,字段名2...) values(添加值1,添加值2...);
向数据库添全部信息 插入字段值的顺序与数据库字段顺序相同
insert into 表名 values(全部字段1值,全部字段2值...);
3.修改
update 表名 set 修改字段1=修改后的值1, 修改字段2=修改后的值2.... where 条件;
4.删除
delete from 表名 where 条件;
where 条件可以写在select,delete,update;
where 条件如果要添加两个或多个对象时使用 and 与 or 或;
5.筛选
从几到几命令语句
select * from 表名 where 条件字段名(不用等于什么值了)between 起始值 and 结束值;
in(显示);
select * from 表名 where 被筛选的字段名 in(筛选1,筛选2...);
not in(不显示)
select * from 表名 where 被筛选的字段名 not in(筛选1,筛选2...);
6.模糊
like
如果查询是varchar类型则需要''括上 下划线为死值只占有一个位数 %为0到无穷大占位
select * from 表名 where 模糊字段名 like '_查找值%';
7.限制显示
limit
从数据下标第几个开始显示几个结束
select * from 表名 limit 下标数字,显示个数;
没有下标参与只是显示几个
select * from 表名 limit 显示个数;
8.去重
distinct
select distinct 被去重字段名1,被去重字段名2....from 表名;
如果where条件判定是空
select * from 表名 where id is null;
=============================================================
数学运算符
+ ,- ,* , / , < , > , = , !=
1.求和
sum
select sum(被求和字段名只能是数字类型) from 表名;
2.寻找最大值
max
select max(查询最大数值字段类型随意) from 表名;
3.寻找最小值
min
select min(查询最小数据字段类型随意) from 表名;
4.统计字段有值的个数
count
select count(字段名) from 表名;
5.四舍五入
round
select round(字段名) from 表名;
6.求平均数
avg
select avg(字段名) from表名;
=============================================================
自连接
显示所有员工以及员工经理名称
SELECT a.ename AS '经理名',b.ename AS '员工名' FROM emp a,emp b WHERE a.empno=b.mgr;
外连接
列出部门名称和这些部门的雇员,同时列出那些没有雇员的部门
内外链接
A inner join B on
内外链接可以去除掉不符合on条件,但会显示null数据字段的,A显示表的内容
左外连接
A left join B on
显示A的内容 符合B的条件 on 为对比条件
SELECT d.dname,e.ename FROM dept d LEFT JOIN emp e ON d.deptno=e.DEPTNO;
右外连接
B right outer join A on
符合B条件 显示A的内容 on 为对比条件
SELECT d.dname,e.ename FROM emp e RIGHT OUTER JOIN dept d ON d.deptno=e.deptno;
分组(凡是分组字段不一样值的时候则分开为另一个)
group by
分组不能使用where当条件 能用having子句控制条件语句
列出各种工作类别的最低薪金,显示最低薪金大于1500的记录
SELECT MIN(sal),job FROM emp GROUP BY JOB HAVING MIN(sal)>1500;
排序
order by
select * from 表名 order by 被排序的字段名 排序方法;
排序方法分为 desc asc;
嵌套查询
select * from 表名 where 条件=(select 唯一值的显示字段 from 表名 where 条件=(...));