Mysql语法及部分实例 2020-6-28
Posted 1877chl
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mysql语法及部分实例 2020-6-28相关的知识,希望对你有一定的参考价值。
sql通用语法:1.语句以单行或多行书写,以分号结束
2.mysql数据库不区分大小写,但是关键字建议大写
查询数据库的字符集:show create database 数据库名;
创建数据库指定字符集:show database if not exists t_studeng chararcter set gbk;
改变数据库的字符集:alter database 数据库名 chararcter set gbk;
查询所有数据库:show databases; 查询指定数据库中的所有表:show tables from 数据库名; 展示表结构:desc 表名;复制一份表到另外一张表:create table 表名 like 表名;修改表名:alter table 表名 rename to 新表名;查看表的字符集:show table 表名 ;修改表的字符集:alter table 表名 character set gbk;
修改列:alter table 表名 change 列名 新列名 参数类型;或者 alter table 表名 modify 列名 参数类型;查看表中信息:select 字段 from 表名;*表示所有字段;
删除员工表中的no字段:alter table 表名 drop no;
找出工资是2000和3000的员工:select * from 表名 where esal in(2000,3000)
select * from 表名 where esal=2000 or esal=3000;
找出工资是2500并且工号是1的员工:select * from 表名 where esal=2500 and empno=1;
删除工号为3的员工:delete from 表名 where deptno=3;
找出名字中含有李的员工:select ename from 表名 where ename like ‘%李%‘;(模糊查找)
将查询到的结果根据某个字段进行降序排列:select * from 表名 order by esal desc;
将表中的第几个字段进行排序;select * from 表名 order by 序号;
将查询到的名字转小写并且重命名:select lower(ename)as ename from 表名 where esal=2000;
将查询到的名字从第二个字符开始截取3个长度:select substr(ename,2,3)from 表名 where esal=3400;
查询出1980-08-09号入职的员工:select * from 表名 where etime=str_to_date(‘08-09-1980‘,‘%m-%d-%Y);
往学生表中插入数据:insert into t_student(ename,eage,ebirth)values(‘Jack‘,12,str_to_date(‘08-09-2000‘,‘%m-%d-%Y‘);(前提是表中ebirth字段是date类型)
查询员工的入职日期,以‘08-09-2000’的格式打印:select date_formate(etime,‘%m-%d-%Y) from 表名
求薪水字段的平均值:select avg(esal) from 表名;(多行处理函数还有:max,min,count,sum...)
将查询的结果去重:select distinct(ejob) from 表名
求每个工作岗位的最高薪水:select max(esal) from 表名 group by ejob;
在员工表和部门表中取出员工姓名和对应的部门名:select e.ename,d.dname from emp e,dept d where e.deptno=d.deptno;(92语法:内连接中的等值连接)
select e.ename,d.dname from emp e join dept d on e.deptno=d.deptno;(99语法结构更加清晰)
查找员工的工资等级,打印员工姓名和对应的工资等级:select e.ename,s.grade from emp e join salgrade s on e.sal between s.losal and s.hisal; (99语法,内连接中的非等值连接)
查找员工的工资等级,打印员工姓名和对应的工资等级,并且打印出所有的工资等级:
select e.ename,s.grade from emp e right join salgrade s on e.sal between s.losal and s.hisal;(99语法,外连接中的右连接)
select e.ename,s.grade from emp e left join salgrade s on e.sal between s.losal and s.hisal;(99语法,外连接中的左连接)
找出薪水比平均薪水高的员工:select ename from emp where sal>(select avg(sal) from emp);(子查询:select嵌套select)
找出前五名员工:select ename from emp limit 0,5;
select ename,grade from emp,salgrade where sal between losal and hisal union select ename,grade from emp,salgrade where sal between losal and hisal;(union合并子查询)
eid int(22) primary key auto_increament;(主键自增)
constraint t_student_class foreign key(classno) references t_class(cno)
员工姓名和对应的工资等级:select e.ename,s.grade from emp e join salgrade s on e.sal between s.losal and s.hisal;
开启事务:start transaction;
结束事务:成功->commit; 失败:rollback;(回滚,将DML语句全部清空)
设置自动提交关闭:set autocommit=off;
以上是关于Mysql语法及部分实例 2020-6-28的主要内容,如果未能解决你的问题,请参考以下文章