Mysql 基础学习

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:

Mysql 基础学习

-- 1 查询表中单个字段
SELECT last_name FROM employees;
-- 2 查询表中多个字段
SELECT last_name,email,department_id FROM employees;

 3.查询表中所有字段

SELECT * FROM employees;

 4. 查询表中的常量值

SELECT 100;

 5. 查询表达式

SELECT 100%98;

 6.查询函数

SELECT VERSION();

 7.起别名

SELECT 100%98 AS 结果;
SELECT last_name AS 姓 FROM employees;

 8. 去重复--查询员工表中涉及到的部门编号

SELECT DISTINCT department_id FROM employees;

 9.+号的作用--查询员工名和姓连接成一个字段,并显示为 姓名

SELECT CONCAT(last_name,first_name) AS 姓名 FROM employees;

  (二)条件查询

/*
语法  selcet  查询列表
    from  表名 
    where 筛选条件
分类
    一、按条件表达式筛选
    条件运算符:<;>;!=;<=;>=;
    二、按逻辑运算符,与或非 and or not  用于连接条件表达式
    三、模糊查询
        like
        between and
        in
        is null

*/

按条件表达式筛选员工信息

 1。查询工作大于12000的员信息

SELECT * FROMemployees WHEREsalary>12000;

 2.查询部门编号不等于90号员工名和部门编号

SELECT CONCAT(last_name,first_name) AS 姓名,department_id FROM employees WHERE department_id!=90;

 3.查询工资在10000到12000之间的员工名,工资和奖金

SELECT first_name,salary,commission_pct
FROMemployees
WHERE salary >10000 ANDsalary<12000;

 4.查询部门编号不是在90到100之间,或者工资高于15000的员工信息

SELECT *
FROMemployees
WHEREdepartment_id<90 OR manager_id>100 OR salary>15000;

模糊查询

-- like
-- 和通配符搭配使用:% 表示任意多个字符
--          _下划线表示任意单个字符
-- 查询员工名中第三个字符为n,第5个字符为l的员工名和工资
SELECT last_name,salary FROM employeesWHERE last_nameLIKE '__n_l%';
-- 查询员工名中包含字符a的员工信息
SELECT * FROM employeesWHERE last_nameLIKE '%a%';-- % 表示任意字符的通配符

-- 查询员工名中第二个字符为_下划线的员工名
SELECT last_name FROM employeesWHERE last_nameLIKE'__%';-- :表示转义字符
-- ESCAPE:表示指定任意符号为转义字符
SELECT last_name FROM employeesWHERE last_nameLIKE'_$_%' ESCAPE '$';

-- between and-- 闭区间
-- 查询员工编号在90到100之间的员工信息
SELECT * FROM employeesWHERE  department_id BETWEEN 90 AND 100;

-- in 判断某字段的值是否属于in列表中某一个,值类型必须统一或兼容,列表值不支持通配符
-- 查询员工工种编号是 AD_PRES,AD_VP 中的一个员工名和工种编号
SELECT last_name,job_id FROMemployeesWHERE job_id IN ('AD_PRES','AD_VP');

-- is null
-- 查询摩尔没有奖金的员工名和奖金率
SELECT last_name,commission_pct FROMemployeesWHERE commission_pctIS NULL;

-- 查询摩尔有奖金的员工名和奖金率
SELECT last_name,commission_pct FROMemployeesWHERE commission_pctIS NOT NULL;

安全等于<=>,是判断等于,用的较少

-- 查询摩尔没有奖金的员工名和奖金率
SELECT last_name,commission_pct FROMemployeesWHERE commission_pct<=> NULL;

-- 查询员工号为176的员工的姓名和部门编号,年薪

SELECT last_name,department_id,salary12(1+IFNULL(commission_pct,0))
AS 年薪 FROM employees;

排序查询

/*

语法

select 
from
[where]
order by [asc, desc]

order by 中可以支持单个字段,多个字段,表达式,函数,别名
order by 一般是放在查询语句的最后面,limit字句除外

*/

-- 查询员工信息,要求工资从高到低
SELECT* FROMemployees ORDER BYsalary DESC;

-- 查询部门编号大于90的员工信息,要求按照入职先后排序
SELECT * FROM employeesWHEREdepartment_id>90 ORDER BY hiredate ASC;

-- [按表达式排序] 按年薪的高低显示员工的信息和年薪

SELECT,salary12*(1+IFNULL(commission_pct,0)) AS 年薪 FROMemployees ORDER BY 年薪 DESC;

-- 按照姓名的长度显示员工的姓名和工资 [按函数排序]
SELECT LENGTH(last_name)  AS 姓名长度,last_name,salary FROM employees ORDER BY 姓名长度 DESC;

-- 查询员工信息,要求先按照工资排序,在按照员工部门编号排序[按多个字段排序]

SELECT *FROM employeesORDER BY salary ASC,department_id DESC;

常见函数

/*
分类
单行函数-- concat length 等
分组函数-- 做统计用,

*/
-- 字符函数
-- length
SELECT LENGTH('john')

-- 查看数据库的字符集
SHOW VARIABLES LIKE'%char%';

-- concat -- 拼接字符串
SELECT CONCAT(last_name,first_name) FROM employees;
-- upper,lower
SELECT UPPER('john');
SELECT LOWER('JOHN');

-- substr,substring-- 索引从1开始,到结束

SELECT SUBSTR('小龙女金庸',4);-- 金庸

SELECT SUBSTR('小龙女金庸',1,3);-- 小龙女

-- instr --子串在大串中的起索引[第一次]
SELECT INSTR('小龙女金庸','金庸');-- 4
-- trim -- 去空格[前后]

SELECT TRIM('   小龙女金庸   ');

SELECT TRIM('a'FROM'aaaa 小龙aaaaaaa女金庸   ');
-- lpad-- 左边填充指定长度的符号
SELECT LPAD('张三丰',10,'*');
-- rpad-- 右边填充指定长度的符号
SELECT RPAD('张三丰',12,'*');

-- replace-- 替换

SELECT REPLACE('张无忌爱上了周芷若','周芷若','赵敏');

数学函数

-- round:四舍五入

SELECT ROUND(1.65);-- 2

ceil :向上取整

SELECT CEIL(1.2);

floor :向下取整

truncate-- 截断

SELECT TRUNCATE(1.69,1);

mod 取余数

日期函数

-- now 返回当前的日期
SELECT NOW();

-- curdate 返回当前系统日期,不包含时间

SELECT CURDATE();

SELECT CURTIME();-- 返回当前的时间,不包含日期

可以获取指定的部分,年,月,日,时,分,秒;

SELECT YEAR(NOW());
SELECT MONTH(NOW());
SELECT MONTHNAME(NOW());

str_to_date 将日期字符转换成指定日期格式

SELECT STR_TO_DATE('1988-12-13','%Y-%c-%d');
-- date_format 将日期转换成字符

SELECT DATE_FORMAT(NOW(),'%y年%m月%d 日');

其他函数

SELECT VERSION();
SELECT DATABASE();
SELECT USER();

流程控制函数

-- if函数:if else 的效果;

SELECT last_name,commission_pct,IF(commission_pct IS NULL,'hehe ','haha ')
FROMemployees;

-- case 函数
-- 使用1

/*
案例1.
查询员工工资,要求
部门号=30,显示的工资为1.1倍;
部门号=40,显示的工资为1.2倍;
部门号=50,显示的工资为1.3倍;
其他部门,显示的工资为原工资。

*/

SELECT salary原始工资,department_id,
CASE department_id
WHEN department_id=30 THEN salary*1.1
WHEN department_id=40 THEN salary*1.2
WHEN department_id=50 THEN salary*1.3
ELSE salary
END  AS 新工资
FROM employees;

-- case 类似于多重if

/*
查询员工的工资请
如果工资大于2000,显示A级别
如果工资大于》15000,显示B级别
如果工资大于10000,显示C级别
否则,显示D级别
*/
SELECT salary,
CASE
WHEN salary>20000 THEN 'A'
WHEN salary>15000 THEN 'B'
WHEN salary>10000 THEN 'C'
ELSE 'D'
END AS 工资级别 FROM employees;

分组函数

-- sum
SELECT SUM(salary)FROM employees;
-- avg
SELECT AVG(salary)FROM employees;
-- max
SELECT MAX(salary)FROM employees;
-- min
SELECT MIN(salary)FROM employees;
-- count
SELECT COUNT(salary)FROM employees;
原文地址https://www.cnblogs.com/johnhudianyi/p/12632899.html

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
存储 关系型数据库 MySQL
|
1月前
|
SQL 存储 关系型数据库
【MySQL 数据库】11、学习 MySQL 中的【锁】
【MySQL 数据库】11、学习 MySQL 中的【锁】
76 0
|
存储 关系型数据库 MySQL
|
1月前
|
SQL 关系型数据库 MySQL
【MySQL 数据库】4、MySQL 事务学习
【MySQL 数据库】4、MySQL 事务学习
44 0
|
11天前
|
SQL 存储 关系型数据库
6本值得推荐的MySQL学习书籍
本文是关于MySQL学习书籍的推荐,作者在DotNetGuide技术社区和微信公众号收到读者请求后,精选了6本值得阅读的MySQL书籍,包括《SQL学习指南(第3版)》、《MySQL是怎样使用的:快速入门MySQL》、《MySQL是怎样运行的:从根儿上理解MySQL》、《深入浅出MySQL:数据库开发、优化与管理维护(第3版)》以及《高性能MySQL(第4版)》和《MySQL技术内幕InnoDB存储引擎(第2版)》。此外,还有12本免费书籍的赠送活动,涵盖《SQL学习指南》、《MySQL是怎样使用的》等,赠书活动有效期至2024年4月9日。
|
16天前
|
SQL 关系型数据库 MySQL
轻松入门MySQL:深入学习数据库表管理,创建、修改、约束、建议与性能优化(3)
轻松入门MySQL:深入学习数据库表管理,创建、修改、约束、建议与性能优化(3)
|
存储 SQL 关系型数据库
|
1月前
|
存储 SQL 关系型数据库
【MySQL 数据库】6、一篇文章学习【索引知识】,提高大数据量的查询效率【文末送书】
【MySQL 数据库】6、一篇文章学习【索引知识】,提高大数据量的查询效率【文末送书】
56 0
|
2月前
|
SQL 关系型数据库 MySQL
MySQL数据库学习(小白一文掌握Mysql)
MySQL数据库学习(小白一文掌握Mysql)
42 0
|
2月前
|
SQL 存储 关系型数据库
学习mysql
学习mysql
39 5