DAY20200706

SQL语言
结构化查询语言。用于存取数据、更新、查询、管理关系数据库系统统计语言。

创建自定义数据库:
CREATE DATABASE mydb1;
CREATE DATABASE mydb2 CHARACTER SET GBK;
CREATE DATABASE IF NOT EXISTS mydb3;
注释:#

所有开发默认编码是utf8
查看数据库创建信息:
SHOW CREATE DATABASEmydb1;

修改数据库:
ALTER DATABASE mydb2 CHARACTER SET utf8;

删除数据库:
DROP DATABASE mydb1;

查看当前使用的数据库
SELECT DATABASE();

切换使用数据库
USE mydb3;
DISTINCT 去除重复结果,后边加一个字段
ASC :升序
DESC:降序
ORDER BY 列名 DESC
<>不等于
对空值判断
IS NULL / IS NOT NULL
WHERE DEPARTMENT_ID = 70 OR DEPARTMENT_ID = 80;
WHERE DEPARTMENT_ID IN (70,80);
两种表示方法一样,IN表示等于多个值,NOT IN不等于
模糊查询 LIKE
%代表任意长度字符,_一个长度,前后都可以加
时间查询
select 时间函数([参数列表])
SYSDATE() 当前系统时间
CURDATE() 获取当前日期
CURTIME() 获取当前时间
WEEK(DATE) 获取指定日期
YEAR(TIME) 获取指定日期的年
HOUR(TIME) 获取指定时间的小时
MINUTE(TIME) 获取时间的分钟
DATEDIFF(DATE1,DATE2) 获取date1和date2相隔的天数
ADDDATE(DATE,N) 计算date加上n天
字符串函数
CONCAT(str1,str2,...) 字符串拼接
INSERT(str,pos,len,nweStr) 替换为newStr
LOWER(str)
UPPER(str)
SUBSTRING(str,num,len) 截取
当每一行的字段值,可以直接和条件比较,用where
当条件的值不是具体的值,需要对表中数据进行聚合计算时,用having
聚合时有having,有having不一定有聚合
SQL语句编写顺序:	SQL语句执行顺序:
SELECT				FROM
FROM				WHERE
WHERE				GROUP BY
GROUP BY			HAVING
HAVING				SELECT
ORDER BY			ORDER BY
LIMIT				LIMIT
作业
#1.查询每个部门在1994年入职多少人
SELECT COUNT(*)
FROM t_employees
WHERE YEAR(HIRE_DATE)='1994'

#2.查询叫King的人有多少个
SELECT COUNT(*)
FROM t_employees
WHERE LAST_NAME = 'King';

#3.查询人数最多的5个部门
SELECT DEPARTMENT_ID AS '部门',COUNT(DEPARTMENT_ID) '人数'
FROM t_employees
GROUP BY DEPARTMENT_ID
ORDER BY COUNT(DEPARTMENT_ID) DESC
LIMIT 0,5;

#4.查询60号和50号部门]各有多少人薪资超过5000
SELECT DEPARTMENT_ID '部门',COUNT(DEPARTMENT_ID) '人数'
FROM t_employees
WHERE DEPARTMENT_ID IN (50,60)  AND SALARY > 5000
GROUP BY DEPARTMENT_ID;

#5.查询1997年入职的人,平均薪资是多少
SELECT AVG(SALARY) '平均薪资',YEAR(HIRE_DATE) '年份'
FROM t_employees
WHERE YEAR(HIRE_DATE)='1997'
GROUP BY YEAR(HIRE_DATE)

#6.查询SA_REP的平均薪资
SELECT AVG(SALARY) '平均薪资',JOB_ID '工作'
FROM t_employees
WHERE JOB_ID='SA_REP'
GROUP BY JOB_ID

#7.查询80号部门工资最高的3个人
SELECT FIRST_NAME,LAST_NAME,SALARY
FROM t_employees
WHERE DEPARTMENT_ID=80
ORDER BY SALARY DESC
LIMIT 0,3;

#8.查询平均薪资最低的5个部门
SELECT DEPARTMENT_ID,AVG(SALARY)
FROM t_employees
GROUP BY DEPARTMENT_ID
ORDER BY AVG(SALARY) ASC
LIMIT 0,5;

本文地址:https://blog.csdn.net/qq_41841482/article/details/107167028

THE END
喜欢就支持一下吧
点赞15 分享