1.mySQL查询语言

1.SQL查询语言

1.1 基础查询语法

#进阶1:基础查询
#语法: select 查询列表 from 表名
/*
1.查询列表可以是表中的字段,常量值,表达值和函数;
2.查询结果是一个虚拟的表格;
3.查询之前,先使用use命令打开一个指定的数据库;
4.使用``区别是查询字段还是关键字;
5.执行命令需要选中该条命令,或者鼠标放在其上;
*/
#占到整个sql语言比重的80%以上

#1.查询表中的单个字段
SELECT last_name FROM employees;
#2.查询表中的多个字段
SELECT last_name, first_name FROM employees;
#3.查询表中的所有字段
SELECT * FROM employees;
SELECT `employee_id`,`last_name`,`phone_number`,`salary` FROM employees;
#4.查询常量
SELECT 100;
#sql语言字符常量使用'',不区分字符和字符串
SELECT 'Daniel';
#5.查询表达式
SELECT 100*98;
#6.查询函数
SELECT VERSION();
#7.起别名,使用AS关键字或者是使用 空格 
SELECT first_name AS, last_name ASFROM employees;
SELECT first_name 名,last_name 姓 FROM employees;
#如果含有特殊字符,需要将别名的内容使用单引号或者双引号标注
SELECT first_name "first name", last_name "last name" FROM employees
#8.去重,使用distinct关键字
SELECT DISTINCT department_id FROM employees;
#9. +号的作用
/*
1.如果是数字,直接相加,如果不是数字,尝试转化为数字相加,如果没有办法转换,转换之后的值为0;
2.任何内容和NULL相加,其结果均为NULL;
注意:在sql语句中,+并没有字符串拼接的作用
*/
#字符串和数字相加,将字符串‘123’转化为数字123
SELECT DISTINCT '123'+89 FROM employees;
#和NULL相加,结果为NULL
SELECT NULL+89 FROM employees;
#10.字符串拼接,使用concat()函数
#结果会将first_name 和 last_name拼接在一起
SELECT CONCAT(`first_name`,' ',`last_name`) FROM employees;
#11.显示一个表的结构   使用DESC 表名
DESC department_id;
#12.判断是否为NULL,并且设置NULL替代的函数   IFNULL(expr1,expr2)
SELECT IFNULL(commission_pct,0) AS 奖金率,commission_pct FROM employees;

1.2 筛选查询

筛选条件分类:

1.按照表达式筛选

简单条件运算符:> < = != <> >= <=

2.按照逻辑表达式筛选

逻辑运算符:

&& || !

and or not

3.模糊查询

like between and in is null

1.2.1 按照条件表达式筛选

按照表达式筛选

SELECT * FROM employees WHERE salary>12000;
SELECT first_name, department_id FROM employees WHERE department_id <>90;

1.2.2 按照逻辑表达式筛选

用于连接条件表达式

&& and

|| or

! not

SELECT first_name, salary, IFNULL(commission_pct,0) AS commission_pct FROM employees WHERE salary>10000 AND salary<20000;

SELECT first_name, department_id, salary FROM employees WHERE (NOT (department_id>=90 AND department_id<=110)) OR salary>15000;

1.2.3 模糊查询

/* like 
特点:1.和通配符搭配使用;
通配符:%代表任意多个字符,包含0个字符;
​				_	代表任意单个字符;
*/
#案例1:查询员工名中包含字符a的员工信息
SELECT * FROM employees WHERE last_name LIKE '%a%';
#案例2:第三个字符为e,第五个字符为a
SELECT * FROM employees WHERE first_name LIKE '__e_a';
#案例3:转义字符,找出last_name中第二个字符是下划线的名字
#/这个转义字符是默认的
SELECT * FROM employees WHERE last_name LIKE '_\_%';
#自定义 & 作为转义字符,推荐使用ESCAPE转义的方式
SELECT * FROM employees WHERE last_name LIKE '_&_%' ESCAPE '$';
between and 	
#案例1:显示部门id在100和120之间的所有信息,前后都是带  = 号的
SELECT * FROM employees WHERE department_id BETWEEN 100 AND 120;
/*注意事项:
1.between and包含临界值;
2.between and前后两个值不能颠倒顺序,小值在前,大值在后; 
*/
in	
#用于判断某个字段值,是否属于列表中的某一项,只要满足一项即可
/*
1.使用in能提高语句间接度;
2.要求in 列表的值类型必须统一或者兼容;
3.in的查询列表不支持通配符;
*/
#案例:查询员工的工种编号是IT_PROG、AD_VP、AD_PRES是这三个中一个的
SELECT last_name, job_id FROM employees WHERE job_id IN ('IT_PROG','AD_VP','AD_PRES');

is null|is not null
/*
	1.判断一个值是否等于NULL,是无法用= 或者 <>判断的;
	2.is 不能用于其它数值的判断;
*/
SELECT last_name, commission_pct FROM employees WHERE commission_pct IS NULL;
SELECT last_name, commission_pct FROM employees WHERE commission_pct IS NOT NULL;

1.2.4 安全等于

安全等于: <=>

可用于判断 某一行是否等于NULL值;

也可以用于判断普通值;

SELECT last_name, commission_pct FROM employees WHERE commission_pct <=> NULL;
SELECT last_name, commission_pct,salary FROM employees WHERE salary <=> 12000;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值