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 条件=(...));