• 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;

    补充:select * from question order by rand() limit 0,4;  它的意思是从question表中随机抽出四个记录,在MySQL中,这里rand()获得的值自动转为整数,而在order by 后面写整数表示某个字段,例如:order by 1 就表示表中第一个字段,利用这个属性,我们可以用于项目中在试题库随机抽取试题;

  • 相关阅读:
    爱情的诗·1~5节
    人生的诗·381~385节
    人生的诗·375~380节
    python数据类型初始1
    python编码知识初始_ASCII码,Unicode,Utf-8,GBK
    Python运算符,逻辑运算
    python格式化输出%,while else
    pycharm使用教程链接+部分练习题01
    python流程控制-条件语句If,while循环
    python基础数据类型初始,用户交互
  • 原文地址:https://www.cnblogs.com/1877chl/p/13204231.html
Copyright © 2020-2023  润新知