MySQL查询
2021/12/31 19:07:52
本文主要是介绍MySQL查询,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
#1查看当前所有库 SHOW DATABASES; #2打开指定库 USE myemployees; #3查看当前库中的表 SHOW TABLES; #4从当前库查看其他库的表 SHOW TABLES FROM mysql; #5查看表的结构 DESC jobs; #基础查询 #select 查询列表 from 表名 SELECT * FROM jobs; SELECT min_salary FROM jobs; SELECT job_title,min_salary FROM jobs; #查询常量值 SELECT 'bi'; #查询表达式 SELECT 100*98; #查询函数 SELECT VERSION(); #起别名 /* 1、便于理解 2、若查询字段有重名,则可以使用别名来区分 */ SELECT 100*200 AS 结果; SELECT last_name AS 姓,first_name AS 名 FROM employees; #as可省略 SELECT last_name 姓,first_name 名 FROM employees; #若别名有特殊符号,则将别名双引号 SELECT salary "out put" FROM employees; #去重 SELECT DISTINCT department_id AS 部门编号 FROM employees; #+的作用 /* select 100+10; 俩个数都是数值型则做加法运算 select '100'+10; 若有一个字符型,试图将字符转换为数值型 若转换成功,则继续做加法运算 select 'ji'+10; 若失败 将字符型转换为0; select null+ 10; 若一方为null则结果为null; */ #拼接字符串 concat( , , ,) SELECT CONCAT(last_name,first_name) 姓名 FROM employees; #判空函数 ifnull(判断的字段,若为空想要返回的值); SELECT IFNULL(`commission_pct`,0) AS 奖金率, `commission_pct` FROM employees; SELECT DISTINCT job_id FROM employees; #拼接employees中所有列 由于`commission_pct`中有null所以要有判空函否则输出为空 SELECT CONCAT(`first_name`,',',`last_name`,',',`email`,',',`phone_number`,',',`job_id`,',',`salary`, ',',IFNULL(`commission_pct`,0), ',',`manager_id`,',',`department_id`,',',`hiredate`) OUT_PUT FROM employees; #条件查询 /* select 查询列表 第三步 form 表名 第一步 where 筛选条件 第二步 根据筛选条件分类: 1、按照条件表达式筛选 条件运算符: < > + <>不等 = >= <= 2、按照逻辑表达式筛选 逻辑表达式: 连接条件表达式 && || ! 与或非 and or not 3、模糊查询 like 一般和通配符搭配使用 %表示任意多个字符 _任意单个字符 between and 包含临界值 等于>=and<= 两个临界值不能调换顺序 in 等于 = or = 判断某字段的值是否属于in列表中的某一项 列表中的值类型统一或兼容 不可以配合通配符一起使用 is null /is not null = <> 不能判断是否为NULL值 */ #一、按照条件表达式筛选 #案例一: 查询工资大于12000的员工信息 SELECT * FROM employees WHERE salary >12000; #案例二:查询部门编号不等于90号的员工名和部门编号 SELECT CONCAT(last_name,first_name) AS "name" , department_id FROM employees WHERE department_id <> 90; #二、按照逻辑表达式筛选 #案例三:查询工资在10000到20000之间的员工名、工资以及奖金 SELECT CONCAT(last_name,first_name) AS 'name', salary, IFNULL(commission_pct,0) FROM employees WHERE salary>10000 AND salary<20000; #案例四:查询部门编号不是在90到110之间或者工资高于15000的员工信息 SELECT * FROM employees WHERE department_id<90 OR department_id>110 OR salary>15000; #或者 NOT department_id >=90 AND department_id <=110 OR salary >15000; #模糊查询 #案例五:员工名中包含字符a的员工信息 SELECT * FROM employees WHERE last_name LIKE '%a%' OR first_name LIKE '%a%';#%通配符 #案例六:查询员工中的第三个字符为e第五个字符为a的员工名和工资 SELECT last_name, salary FROM employees WHERE last_name LIKE '_a_a%'; #案例七:查询员工名中第二个字符为_的员工 SELECT * FROM employees WHERE last_name LIKE '_\_%';#\转义字符 SELECT * FROM employees WHERE last_name LIKE '_$_%'ESCAPE '$';#定义转义字符escape #案例八:查询员工标号在100到120之间的员工信息 SELECT last_name, department_id FROM employees WHERE department_id BETWEEN 100 AND 120; #department_id >=100 and department_id<=120; #案例九:查询员工的工种编号的IT_PROG、AD_VP、AD_PRES中的一个员工名和员工编号 SELECT last_name, job_id FROM employees WHERE job_id IN ('IT_PROG','AD_VPm','AD_PRES');#等于job_id='IT_PROT' OR job_id='AD_VP' OR job_id ='AD_PRES'; #案例十:查询没有奖金的员工名和奖金率 SELECT last_name, commission_pct FROM employees WHERE commission_pct IS NULL;#不能写成commission_pct=NULL; SELECT last_name, commission_pct FROM employees WHERE commission_pct IS NOT NULL; #安全等于 <=> 可以判断null值 也可以判断普通值 可读性差 SELECT last_name, commission_pct FROM employees WHERE commission_pct <=> NULL; SELECT last_name, commission_pct FROM employees WHERE commission_pct <=> 0.3; #测试一:查询员工号为176的员工姓名和部门号和年薪 SELECT last_name, department_id, salary*(1+IFNULL(commission_pct,0))*12 AS 年薪 FROM employees WHERE employee_id=176;
这篇关于MySQL查询的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-25如何部署MySQL集群资料:新手入门教程
- 2024-12-24MySQL集群部署资料:新手入门教程
- 2024-12-24MySQL集群资料详解:新手入门教程
- 2024-12-24MySQL集群部署入门教程
- 2024-12-24部署MySQL集群学习:新手入门教程
- 2024-12-24部署MySQL集群入门:一步一步搭建指南
- 2024-12-07MySQL读写分离入门:轻松掌握数据库读写分离技术
- 2024-12-07MySQL读写分离入门教程
- 2024-12-07MySQL分库分表入门详解
- 2024-12-07MySQL分库分表入门指南