MySQL知识点1

本文基于尚硅谷MySQL以及个人部分总结

 

基本的SELECT语句

 

 

 

 

 

SELECT * FROM employees;

SELECT employee_id ,last_name ,salary FROM employees;

 

 

空值参与运算

#空值参与运算 结果一定为空

SELECT employee_id,salary "月工资" ,salary*(1+commission_pct)*12 "年工资" ,commission_pct FROM employees

 

 

 

着重号``

如果出现字段名和表名发生冲突的情况下需要使用

#着重号 ``

SELECT * FROM order

 

#查询常数

SELECT 'scl' ,123,employee_id,last_name FROM employees

 

 

 

#显示表结构

DESCRIBE employees

 

DESC employees

 

 

 

 

使用where过滤数据

where作为过滤条件(不过滤聚合函数)

#过滤数据 WHERE 声明在from 后面

#查询100号部门员工信息

SELECT * FROM employees WHERE employee_id=100 ;

#查询last——name 为king的员工信息

SELECT * FROM employees WHERE last_name='king';

 

 

 

 

Select语句练习1

#计算十二个月的基本工资 需要考虑插叙员工姓名 id 总工资 =工资*12

SELECT employee_id, last_name, salary * 12 "ANNUAL SALARY" FROM employees

#计算 全部工资 需要考虑空值 使用函数

SELECT employee_id, last_name, salary * 12 * (1+ IFNULL(commission_pct,0)) "ANNUAL SALARY" FROM employees;

ifnull(a,b)如果值不为null返回a 否则返回b

 

 

 

 

去重Distinct

#2.查询employees表中去除重复的job_id以后的数据

SELECT DISTINCT job_id from employees;

 

 

3.查询工资大于12000的员工姓名和工资

SELECT employee_id , last_name , salary FROM employees WHERE salary >12000;

 

4.查询员工号为176的员工的姓名和部门号

SELECT employee_id , last_name ,department_id FROM employees WHERE employee_id=176

 

 

5.显示表 departments 的结构,并查询其中的全部数据

DESCRIBE departments

 

 

 

 

运算符

 

 

sql中+ 号符 没有连接的作用 就表示加法运算 100+'1' 会将字符串转换为数值 (隐式转换)

101

 

 

 

 

 

取模

#筛选出employee_id是偶数的员工信息

SELECT employee_id FROM employees where employee_id MOD 2=0;

比较运算符

 

比较运算符用来对表达式左边的操作数和右边的操作数进行比较,比较的结果为真则返回1,比较的结果为假则返回0,其他情况则返回NULL。比较运算符经常被用来作为SELECT查询语句的条件来使用,返回符合条件的结果记录。

 

 

 

 

 

等于

 

安全等于

可以查询表中为null的 <=> 为null而生

 

 

不等于

 

 

 

between and

BETWEEN AND

#查询公仔6000-8000之间

SELECT employee_id,last_name,salary FROM employees WHERE salary BETWEEN 6000 AND 8000

#不在6000或80000

SELECT employee_id,last_name,salary FROM employees WHERE salary <6000 OR salary>8000

SELECT employee_id,last_name,salary FROM employees WHERE salary Not BETWEEN 6000 AND 8000

 

 

in not in

 

IN

#查询部门号为10 20 30 的员工信息

SELECT employee_id,last_name,salary ,department_id FROM employees WHERE department_id IN (10,20,30);

 

Not In 简单明了 加not

 

 

 

模糊查询Like

在筛选语句where后面对于对于字符串的匹配使用 like

查询字符%xx%

百分号(%):表示任意个或多个字符。可匹配任意类型和长度的字符。

#模糊查询like

#查询name中包含字符a的员工信息 %% 表示不确定个数的字符(0个或多个)

SELECT employee_id,last_name,salary ,department_id FROM employees WHERE last_name LIKE '%a%'

查询x%以x开头的字符

 

SELECT employee_id,last_name,salary ,department_id FROM employees WHERE last_name LIKE 'a%'

 

查询以x为结尾的同理

#查询包含 a 且包含e 的

SELECT employee_id,last_name,salary ,department_id FROM employees WHERE last_name LIKE '%a%' AND last_name LIKE '%e%'

 

 

查询第二个字符是xxx

下划线(_):表示任意单个字符。匹配单个任意字符,它常用来限制表达式的字符长度语句:(可以代表一个中文字符)

#_ :代表一个不确定的字符

 

SELECT employee_id,last_name,salary ,department_id FROM employees WHERE last_name LIKE '_a%'

 

 

#查询第二个字符是下划线第三个字符是a的员工信息

#需要转义字符

SELECT employee_id,last_name,salary ,department_id FROM employees WHERE last_name LIKE '_\_a%'

%是任意多个字符

_下划线是单个字符 但是如果存在以下划线为名字的则需要转义字符搭配

 

 

 

 

 

正则表达式

感觉用的不多,用到再来看

 

 

 

逻辑运算符

 

 

 

 

 

位运算符

 

 

 

 

 

 

posted @ 2022-05-13 23:06  你问人生何  阅读(183)  评论(0编辑  收藏  举报

载入天数...载入时分秒...