mysql语法实例_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;

原文:https://www.cnblogs.com/1877chl/p/13204231.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值