mysql学习笔记(1)——基础查询

数据库的相关概念:

image.png

一、基础查询语句

查看所有数据库
SHOW DATABASES
查看所有表
SHOW tables;
打开数据库
USE tour_db;
注意:字符型、日期型的常量值需要用单引号引用起来,数值型不需要
查询单个字段
SELECT  id FROM  mylist;
查询多个字段
SELECT id,sex,nick_name FROM mylist;
查询所有数据
SELECT * FROM mylist;
查询常量值
SELECT 10
查询表达式
SELECT 10%2
查询函数
SELECT 函数名(实参列表) 
1.起别名:使用as 或者空格
SELECT 10%5 AS 结果
SELECT nick_name AS '姓名',school AS '学校' FROM mylist
SELECT sex '性别',id '编号' FROM mylist 

查询id,输出结果为output
SELECT id AS OUTPUT FROM mylist
2.去重

SELECT DISTINCT 字段名 FROM 表名 ;

查询表中所有sex,并去重
SELECT DISTINCT sex FROM  mylist ;
3.+的作用

a.只能作为运算符,两个操作数为数值型,作为加法运算
b.若其中一方为字符型,试图将字符型转为数值型,会将字符型转换为0。
c.只要一方结果为null , 那结果为null

案例:查询ID与姓名链接成一个字段,并且显示为姓名
SELECT id + sex AS 姓名 FROM mylist

题目1:查询员工名和工作名,学校名,连成一个字段 AS 结果
SELECT CONCAT(id,job,school) AS 拼接结果 FROM mylist m ;

题目2:显示mylist 表结构,查询所有数据
DESC mylist
SELECT *FROM mylist 

题目3:显示所有的sex为性别,不可重复
SELECT DISTINCT sex AS 性别 FROM mylist 

题目4:显示id,email,用逗号链接,列头显示output,并判断email是否为空
SELECT CONCAT(id,',',ifnull(email,0) ) AS OUTPUT FROM mylist 
判断email是否为空:
SELECT IFNULL(email,0) AS output FROM mylist ;

4.concat函数
功能:拼接字符

SELECT CONCAT(字符1,字符2,字符3...) 

5.ifnull函数
功能:判断某字符串或表达式是否为null,如果为null,返回指定值(括号中的第二个参数),否则返回原本的值

SELECT IFNULL(email,0) FROM mylist ;

二、条件查询

1.简单条件运算符查询:>< .= .!= .<> .<=> . >= .<=
2.逻辑表达式筛选:&& || !
&&与and :两个条件为true ,结果为true ,反正为false
!!和or:一个条件为true,结果为true,反正为false
!或not :链接条件为false,结果为true,反正为false
3.模糊查询:LIKE,BETWEEN AND , IN ,IS NULL

SELECT* FROM  mylist 
1.查询员工工资大于12000的姓名
SELECT  nick_name FROM  mylist 
WHERE salary>12000

2.查询id不等于2的员工信息
SELECT * FROM mylist 
WHERE id!=2

SELECT * FROM mylist 
WHERE NOT(id=2 ) 

3.查看工资在5000-13000的姓名、性别,工作,工资
SELECT nick_name,sex,job,salary FROM mylist 
WHERE salary>=5000
AND  salary<=13000

4.查看id不是在1-3之间,或者工资高于10000的员工信息
SELECT * FROM mylist
WHERE NOT(id<=3 AND id>=1) 
OR  salary >10000

三、模糊查询

1、LIKE:一般与通配符一起使用,可以判断字符型或者数值型
通配符:%表示任意多个字符,_表示任意单个字符

2.查询员工名中包含字符m的员工信息
SELECT * FROM mylist 
WHERE nick_name LIKE '%m%'
3.查询员工名中第1个字符为m的,第3个字符为y的
SELECT *FROM mylist
WHERE nick_name LIKE 'm_y'
4.查询员工名中第二个字符为j的
SELECT * FROM mylist
WHERE nick_name LIKE '_j_'

2、BETWEEN AND
使用between and 可以提高代码简洁度
包含两个临界值
两个临界值不能换顺序

1,查询员工id 在1-6之间的员工信息
SELECT * FROM mylist 
WHERE id <=6 AND  id>=1;

SELECT * FROM mylist 
WHERE id BETWEEN 1 AND 6

3.IN关键字
含义:判断某字段的值是否属于in列表中的一项
1.使用in 提高语句简洁度
2.in列表的值类型必须统一或者兼容
3.不支持通配符

题目1:查询员工工种编号是 IT_oj、FI_ho、PU_ck中的员工名和工种编号
SELECT nick_name,job_id FROM mylist
WHERE job_id = "IT_oj"
OR job_id="FI_ho"
OR job_id="PU_ck"

SELECT nick_name,job_id FROM mylist
WHERE job_id IN('IT_oj','FI_ho','PU_ck')

4.IS NULL/IS NOT NULL:用于判断NULL值
功能:判断某字段或表达式是否为null,如果为null,返回指定值,否则返回原本值。=或<> 不能判断null值,IS NULL ,IS NOT NULL 可判断NULL 值

题目1:查询没有email(email为NULL)的员工名
SELECT  nick_name, email FROM mylist 
WHERE email is null 
题目2:查询有email的员工名
SELECT  nick_name, email FROM mylist 
WHERE email is NOT null 

5、安全等于<=>

1:查询salary为13000的员工信息
SELECT * FROM mylist 
WHERE salary<=>13000
image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容