sql学习笔记

1、去重    

使用distinct

  •   DISTINCT department_id是去除department_id字段的重复值,返回department_id字段列
SELECT DISTINCT department_id FROM employees;
  • ​​​​​DISTINCT department_id,salary是去除department_idsalary共同重复的值并且返回
SELECT DISTINCT department_id,salary FROM employees;

2、拼接

SELECT CONCAT('a','b');

 3、条件查询

1)按条件表达式筛选(>, < ,= , != , <> , >= ,<=)

SELECT 
	* 
FROM
	employees
WHERE
	salary>12000;

2)按逻辑表达式筛选

逻辑运算符:  and or not   (&&  ||  !)

SELECT 
	* 
FROM
	employees
WHERE
	salary<=10000 AND salary<=20000;

3) 模糊查询

1、like(一般和通配符搭配使用:% 任意多个字符;_  任意单个字符)                   

                                                                                            
SELECT 
	* 
FROM
	employees
WHERE
	last_name LIKE '%a%';

如果要查询含有_字符 可以使用转义符  ,或者使用ESCAPE 转义

SELECT 
	* 
FROM
	employees
WHERE
	last_name LIKE '_$_%' ESCAPE '$';

   2、between and (包含临界值)

SELECT 
	* 
FROM
	employees
WHERE
	employee_id BETWEEN 100 AND 120;

3、in  

SELECT 
	last_name,
	job_id
FROM
	employees
WHERE
	job_id IN('IT_PROT','AD_VP');

4、is null 或 is not null                                       

SELECT 
	last_name,
	commission_pct
FROM
	employees
WHERE
	commission_pct IS NULL;

4、排序查询

语法:

select 查询列表

from 表

【where 筛选条件】

order by 排序列表 【asc(升序,默认)|desc(降序)】

SELECT * FROM employees ORDER BY salary;
  • 按表达式排序 
SELECT *,salary*12*(1+IFNULL(commission_pct,0)) 年薪
FROM employees 
ORDER BY salary*12*(1+IFNULL(commission_pct,0)) DESC;
  • 按别名排序
SELECT *,salary*12*(1+IFNULL(commission_pct,0)) 年薪
FROM employees 
ORDER BY 年薪 DESC;
  • 按函数排序
SELECT LENGTH(last_name) 字节长度,last_name,salary
FROM employees 
ORDER BY LENGTH(last_name) DESC;
  • 按多个字段排序

5、字符函数

1、length 获取参数值的字节个数

2、concat 拼接字符    

3、upper (大写),lower(小写)

4、substr,substring

  • 截取从指定索引处后面所有字符
SELECT SUBSTR('测试字符啊哈嗝',4) out_put;
  • 截取从指定索引处指定字符长度的字符           
SELECT SUBSTR('测试字符啊哈嗝',1,3) out_put;

5、instr 返回子串第一次出现的索引,如果找不到返回0

6、trim 用来移除掉一个字串中的字头或字尾

7、lpad 用指定的字符串实现左填充指定长度

8、rpad 用指定的字符串实现右填充指定长度

9、replace 用指定的字符替换

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值