java学习之路——第四十二天

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

猜你喜欢

转载自blog.csdn.net/mataodehtml/article/details/85228559