mysql数据库学习笔记-2

mysql数据库学习笔记,来源:bilibili,尚硅谷mysql入门到精通。

MySQL的语法规范

1.不区分大小写,但建议关键字大写,表名、列名小写;

2.每条命令最好用分号结尾;

3.每条命令根据需要,可以进行缩进或换行;

4.注释


单行注释:#注释文字
单行注释:-- 注释文字
多行注释:/* 注释文字  */

SQL的语言分类

1.DQL(Data Query Language):数据查询语言

2.DML(Data Manipulate Language):数据操作语言

3.DDL(Data Define Languge):数据定义语言

4.TCL(Transaction Control Language):事务控制语言

DQL语言的学习

基础查询

语法:

SELECT 要查询的东西 FROM 表名;

特点:

1.通过select查询完的结果 ,是一个虚拟的表格,不是真实存在;
2.要查询的东西:常量值、表达式、字段、函数等。

查询单个字段:

SELECT 要查询的东西 FROM 表名;

查询多个字段:

SELECT 第一个,第二个 FROM 表名;

查询表中所有字段:

SELECT 要查询的东西 FROM 表名;
查询的东西可以直接点击名称就出来啦!
F12可以进行格式化
SELECT * FROM 表名;

查询常量值:

SELECT 常量、“字符串”;

查询表达式:

SELECT 表达式;
SELECT 100*100;

查询函数:

SELECT 函数名;
SELECT VERSION();

起别名:

SELECT xxx (AS) 名字1,xxx (AS) 名字2 FROM 库;
建议名字加上双引号或者单引号。

好处:

1、便于理解;

2、查询的字段如果有重名,可以起别名区分

去重:

SELECT DISTINCT xxx FROM 库;

+号的作用:

mysql中的+只有运算符;

SELECT 100+90;     #两个操作数都是数值型,则做加法运算
SELECT '123'+90;   #字符串转化成数值运算
SELECT 'yep'+90;   #字符串转化失败,将字符型数值变为0
SELECT NULL+90;    #其中一方为NULL,结果也是NULL

mysql中字符连接:

SELECT 
		CONCAT(XXX,XXX,XXX) AS 别名
FROM
		库;

条件查询

SELECT 
		查询列表
FROM
		表名
where
		筛选条件;

1、按条件表达式筛选

​ 条件运算符:> < = != <> >= <=

2、按逻辑表达式筛选

​ 用于连接表达式

and(&&):两个条件如果同时成立,结果为true,否则为false
or(||):两个条件只要有一个成立,结果为true,否则为false
not(!):如果条件成立,则not后为false,否则为true

3、模糊查询

like、between and、in、is null

like:一般与通配度符使用

SELECT 
		查询列表
FROM
		表名
where
		xxx LIKE '%a%';
#查询表中含有a的信息
SELECT 
		查询列表
FROM
		表名
where
		xxx LIKE '%__a_b%';
#查询第一个字符为a,第五个字符为b的信息

between and:

①提高语句的简洁度;

②包含临界值;

③两个临界值不要调节顺序。

SELECT 
		查询列表
FROM
		表名
where
		xxx >=100 AND xxx<=500;
SELECT 
		查询列表
FROM
		表名
where
		xxx BETWEEN 100 AND 500;

in:

①提高语句的简洁度;

②in列表的值类型必须一致或者兼容;

③不支持部分查询。

SELECT 
		查询列表
FROM
		表名
where
		xxx = 'xxx'OR 'XXX';
SELECT 
		查询列表
FROM
		表名
where
		xxx IN('XXX','XXX');
#表示查询含有这个名称的信息

is null:

SELECT 
		查询列表
FROM
		表名
where
		xxx IS (NOT) NULL;

安全等于<=>

SELECT 
		查询列表
FROM
		表名
where
		xxx <=> 100;
#查询数值为100的信息,也可以用于判断是否空值

排序查询

SELECT 
		查询列表
FROM
		表名
#where
order by 排序列表 DESC;

普通排序:

DESC降序,ASC降序,不写默认升序。

多重排序:

SELECT 
		查询列表
FROM
		表名
#where
order by 排序列表1 DESC/ASC,排序列表2 DESC/ASC;

常见函数

好处:

1、隐藏了实现细节;

2、提高了代码的重用性。

特点:

1、叫什么(函数名);

2、干什么(函数功能)。

分类:

1、单行函数

2、分组函数(统计函数、聚合函数),用于统计

单行函数

字符函数

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

2、contact:拼接字符串

3、upper、lower:变换大小写

4、substr:截取从指令索引处指定长度的字符

SELECT SUBSTR('字符串。。。。',1,3)
#从第一个字符开始显示,一共显示三个字符。

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

SELECT INSTR('字符串。。。。','字符串')

6、trim:

SELECT TRIM('X' FROM 'XXXXXXXAAAAAXXXXX');
#去除串前后的指定的字符
SELECT TRIM('     AAAAA    ');
#去除串前后的空格

7、LPAD:用指定的字符实现左填充指定长度

8、RPAD:用指定的字符实现右填充指定长度

SELECT LPAD('子串',长度,'填充内容');

9、replace:替换

SELECT REPLACE('子串','需要替换的内容','替换后的内容');

数学函数

1、round:四舍五入

SELECT ROUND(1.266,2);
#四舍五入,保留两位数

2、ceil:向上取整,返回>=该参数的最小整数

3、floor:向下取整,返回<=该参数的最大整数

4、truncate:截断

5、mod:取余,a-a/b*b

日期函数

1、now:返回当前系统时间+日期

2、curdate:返回系统日期

3、curtime:返回系统时间

4、year:返回年

​ month:返回年

​ day\hour等

5、str_to_date,date_format

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YpdNdu50-1596466318573)(C:\Users\pp\AppData\Roaming\Typora\typora-user-images\image-20200802221224624.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8iDZaziR-1596466318575)(C:\Users\pp\AppData\Roaming\Typora\typora-user-images\image-20200802221251971.png)]

其他函数

1、version:查看当前的版本

2、database:当前数据库

3、user:当前用户

流程控制函数

1、if函数

SELECT IF(10>5,'大','小');
SELECT IF(条件,'条件满足','条件不满足');

2、case函数

SELECT 查询列表 FROM 表名
CASE 要判断的字段或者边大师
	when 常量1 then 要显示的值;
	when 常量2 then 要显示的值;
。。。。。
	else 要显示的值n或者语句n;
end;
SELECT 查询列表 FROM 表名
CASE 
	when 条件1 then 要显示的值;
	when 条件2 then 要显示的值;
	。。。。。
	else 要显示的值n或者语句n;
end;

分组函数

常见分类:

sum:求和函数,avg:平均值,max:最大值,min:最小值,count:统计个数

简单用法:

SELECT SUM(查询列表) FROM 表名;
SELECT SUM(查询列表),MAX(查询列表) FROM 表名;

特点:

1、sum,avg一般可以用于处理数值型

​ max,min一般可以处理任何类型

2、是否忽略null:

​ 都忽略null值

3、可以和distinct搭配:

SELECT SUM(DISTINCT 查询列表) FROM 表名;
#求和不重复的值

4、count():

SELECT COUNT(查询列表) FROM 表名;
SELECT COUNT(*) FROM 表名;
SELECT COUNT(1) FROM 表名;
#统计行数

效率:

MYISAM存储引擎下,COUNT(*)效率最高;

INNODB存储引擎下,COUNT(*)、COUNT(1)差不多,都比 COUNT(查询列表)高点。

6、和分组函数一起查询的字段有限制:一般要求group by后面的字段。

奇奇怪怪的格式,还没弄懂typora怎么写博客~~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值