当前位置 博文首页 > mataodehtml的博客:java学习之路——第四十二天

    mataodehtml的博客:java学习之路——第四十二天

    作者:[db:作者] 时间:2021-08-11 09:46

    12.20

    MySQL day04

    ## 模糊查询,在不知道具体内容的情况下使用关键字like

    ## like:有两个字符,注意:_一个下划线表示一个字符,%表示多个字符

    -- 查询姓名由5个字母构成的学生记录

    SELECT * FROM emp WHERE ename LIKE'_____';

    ?

    -- 查询姓名由5个字母组成并且第5个自读为‘i’的学生记录

    SELECT * FROM emp WHERE ename LIKE'____s';

    ?

    -- 查询姓名以‘z’开头的学生

    SELECT * FROM emp WHERE ename LIKE's%';

    ?

    -- 查询姓名中第二个字母为‘i’的学生记录

    SELECT * FROM emp WHERE ename LIKE'_i%';

    ?

    -- 查询姓名中含有‘a’的学生

    SELECT * FROM emp WHERE ename LIKE'%a%';

    ?

    ## 字段控制查询

    -- 去除重复记录:distinct

    -- 查询emp中薪水等级的内容

    SELECT DISTINCT sal FROM emp;

    ?

    -- 查看雇员的月薪和佣金之和

    SELECT ename,sal,comm,sal+comm FROM emp;

    ?

    -- 字段控制另一个关键字 IFNULL(参数1,参数2);

    -- 参数1 :为null的字段名

    -- 参数2 :将null赋值一个默认值

    SELECT ename,sal,comm,sal+IFNULL(comm,0) 钱 FROM emp GROUP BY 钱 ASC ;

    ?

    ##排序查询

    -- 升序asc和降序desc 默认的是升序

    ?

    -- 查询emp表中月薪大于2500的人数

    SELECT COUNT(*) FROM emp WHERE sal>2500;

    ?

    -- 查询有佣金的人数,以及有领导的人数

    SELECT COUNT(comm),COUNT(mgr) FROM emp;

    ?

    -- 查询最高工资和最低工资

    -- 查看所有员工月薪和

    -- 查询所有员工月薪和,以及所有员工佣金和

    -- 查询所有雇员月薪+佣金

    -- 统计所有员工平均工资

    ?

    ?

    ##分组查询

    -- 关键字:group by 对查询结果再次进行操作

    -- 查询每个部门的部门编号和每个部门的工资和

    SELECT deptno,SUM(sal) FROM emp GROUP BY deptno;

    ?

    -- 查询每个部门的部门编号以及每个部门的人数

    SELECT deptno,COUNT(ename)FROM emp GROUP BY deptno;

    ?

    -- 查询每个部门编号以及每个部门工资大于1500的人数

    SELECT deptno,COUNT(ename)FROM emp WHERE sal>1500 GROUP BY deptno;

    ?

    -- 查询工资总和大于9000的部门编号以及工资和

    SELECT deptno,SUM(sal) FROM emp GROUP BY deptno HAVING SUM(sal)>9000;

    ?

    ## where关键字和having关键字的区别:

    ???????? where后面的条件必须是表自身拥有的字段

    ???????? having后面跟的条件为查询结果后的内容

    ?

    ##分页查询

    -- 关键字是limit mysql特有的一个功能,其他数据库没有。

    -- LIMIT用来限定查询结果的起始行以及总行数

    -- LIMIT语法:limit 参数1,参数2

    -- 参数1:从哪条记录数开始??? 0代表第一条记录

    -- 参数2:查询多少条记录

    -- 例:limit 3,5;查询的是第4条记录到第8条

    ?

    -- 查询10行记录,起始行从3开始

    SELECT * FROM emp LIMIT 3,10;

    ?

    ?

    ## MySQL中的相关约束

    -- 作用:都是为了保证数据的准确性

    -- 主键约束: primary key

    -- 特点:将字段设置为主键后,该字段的值不能为空,且不能重复

    -- 备注:一张表中只能? 声明一个主键

    ?

    ##主键自增长:auto_increment

    -- 主键声明的方法:3种

    -- 1.创建表的时候,在字段的后面直接添加primary key

    -- 2.创建表的时候,在声明玩所有字段之后,再声明主键primary key(主键字段)

    -- 3.创建表之后,通过修改表结构来添加主键:aler table 表名 add primary key()

    ?

    -- 主键自增长

    -- 1.创建表的时候直接在字段后面声明

    -- 2.修改表的时候设置主键自增长:alter table 表名 change 字段 字段 字段数据类型 自增长

    ?

    CREATE TABLE student(

    ?? id INT PRIMARY KEY AUTO_INCREMENT,

    ?? sname VARCHAR(10),

    ?? sage INT(10)

    );

    INSERT INTO student(sname,sage) VALUES('zhansan',12);

    cs