MySQL详细教程

一、MySQL指令

1.1、查看当前所有数据库

show databases;

1.2、打开指定库名

use 库名

1.3、查看当前库的所以表

show tables;

1.4、查看其它库的所有表

show tables from 表名

1.5、创建表

create table 表名(
列名 列类型,
列名 列类型,
…………
);

1.6、查看表结构

desc 表名;

1.7、开启数据库

以管理员身份打开命令提示符,输入net start mysql

1.8、关闭数据库

以管理员身份打开命令提示符,输入net stop mysql

1.9、mysql不区分大小写,但建议关键字大写,表名、列明、行名小写

1.10、查看服务器版本号:

select  version();

1.11、查看表中的所有成员:

select  * from  表名;

1.12、注释:

	1) 、单行使用 ‘#’
	2、/*  注释 */ 

1.13 、计算字符长度

select length(‘hhh’);
结果是3.

二、DDL查询语句

2.1、查询语句

①、选中字段之后,按下F12之后,便会将该选中的字段进行格式化。
②、按下F9或者点击运行,便会执行选中的字段。
③、尽量在开始处,执行SQL语句:use 库名。
④、在字段上,着重号可以加也可以不加,着重号是为了区别输入的字段到底是关键字还是普通的字段名。
在这里插入图片描述

2.2、查询语句—修改字段

在这里插入图片描述

2.3、去重关键字和‘+’作用

在这里插入图片描述

2.4、拼接字符关键字–CONCAT

在这里插入图片描述

2.5、IFNULL语句

在这里插入图片描述

2.6、按照表达式查找

在这里插入图片描述

2.7、按照逻辑语句查找

在这里插入图片描述

2.8、模糊查找----like

带有ESCAPE关键字的转义字符可以可以是任意的
在这里插入图片描述

2.9、模糊查找—BETWEEN

关键字BETWEEN要点:
(1) 包含了边界值
(2) 边界值不能颠倒

在这里插入图片描述

2.10、模糊查找—IN

要点:
(1) 关键字IN列表的值类型必须统一或兼容(‘123’—>123)
(2) 使用关键字IN提高语句简洁
(3) 关键字IN列表中的值,不能带有通配符
在这里插入图片描述

2.11、模糊查找—IS NULL

IS NULL:表示不包括
IS NOT NULL :表示包括在内
<>、=不能用于判断NULL值,只能使用IS NULL 或IS NOT NULL

在这里插入图片描述

2.12、安全等于 <=>

安全等于 vs IS NULL / IS NOT NULL
<=>:既可以比较NULL值,也可以比价普通值,但是阅读性低
IS NULL / IS NOT NULL:只能比较NULL值,阅读性高

在这里插入图片描述

2.13、计算时间差天数 ---- DATEDIFF

在这里插入图片描述

三、数据库总结

3.1、数据库事务

在这里插入图片描述

是访问并可能操作各种数据项的一个数据库操作序列,这些操作要么全部执行,要么全部不执行,是一个不可分割的工作单位。事务由事务开始与事务结束之间执行的全部数据库操作组成。

四、排序语句

注意:ORDER BY语句位置放在最后面查询语句的后面,limit语句除外。
执行顺序:FROM -> WHERE -> SELECT -> ORDER BY

4.1 排序语句— ORDER BY

注意:排序语句:ORDER BY
默认情况下,按照从小到大顺序排序;或者可以输入ASC从小到大排序;输入DESC按照从大到小排序。
在这里插入图片描述

4.2 按照筛选条件排序

在这里插入图片描述

4.3 按照表达式排序

在这里插入图片描述

4.4 按照取别名排序

注意:取别名可以是 AS ‘别名’;也可以是 空格 + 别名。
在本地编译器编译之后,发现只能是空格的别名,可以用来排序。关键字AS的别名排序时,会报错。
在这里插入图片描述

4.5、按照函数排序

在这里插入图片描述

4.6、按照多个字段排序

注意:多个字段排序,优先给第一个字段排序,以第一个字段为标准排序

在这里插入图片描述

五、常见函数

5.1、函数概述

注意:
(1)函数概念:
函数:表示将一组逻辑语句封装在一个方法体内,对外暴露方法名
(2)调用
SELECT 函数名(实参列表) 【FROM 表】
(3)分类
①单行函数
例:CONCAT 、 LENGTH 、DISTINCT,传入一个值,返回一个值
②组合函数
功能:做统计使用,,传入一组函数,返回一个值。又称为聚合函数、组函数、统计函数。

5.2、单行函数

在这里插入图片描述

5.2.1 字符函数
5.2.1.1 查看字符字节数—LENGTH

SELECT LENGTH( 字符 );

5.2.1.2 查看当前字符所有类型—VARIABLES

SHOW VARIABLES LIKE ‘%char%’ ;

5.2.1.3 拼接字符—CONCAT

SELECT CONCAT ( 字符,字符 );

5.2.1.4字符改变字符大、小写— UPPER 、LOWER

SELECT UPPER( 字符 ); 将字符改为大写输出
SELECT LOWER( 字符 ); 将字符改为小写输出
在这里插入图片描述

5.2.1.5截取字符— SUBSTR / SUBSTRING

(1) 截取从指定字符后面的所有字符

在这里插入图片描述

(2) 截取从指定字符开始的n个字符

在这里插入图片描述

(3) 姓名首字母大写,其他字母小写,然后拼接
在这里插入图片描述

5.2.1.6返回子字符串第一次出现的索引— INSTR

(1) 获取子字符串第一次出现的索引,如果没有找到,则返回0
在这里插入图片描述
在这里插入图片描述

5.2.1.7去掉字符串前后空格— TRIM

(1) 如果需要去掉字符串前后的空格,则直接输入字符串即可
在这里插入图片描述

(2) 如果需要去掉字符串前后指定的字符
在这里插入图片描述

5.2.1.8左填充指定长度的字符— LPAD

(1) 填充的字符大于原字符,则显示原子符+填充字符

在这里插入图片描述

(2) 填充的字符小于原字符,则显示原子符-填充字符数
在这里插入图片描述

5.2.1.9右填充指定长度的字符— RPAD

(1) 填充的字符大于原字符,则显示原子符+填充字符
在这里插入图片描述

(2) 填充的字符小于原字符,则显示原子符-填充字符数

在这里插入图片描述

5.2.1.10替换字符— REPLACE

(1) 替换单个指定字符
在这里插入图片描述

(2) 替换多个指定字符
在这里插入图片描述

5.2.2 数学函数
5.2.2.1四舍五入— ROUND

(1) 四舍五入整数
在这里插入图片描述

(2) 四舍五入,保留1位小数
在这里插入图片描述

5.2.2.2向上取整— CEIL

注意:得到的结果就是大于等于改参数的整数
在这里插入图片描述

5.2.2.3向上取整— FLOOR

注意:得到的结果就是小于等于改参数的整数
在这里插入图片描述

5.2.2.4取余— MOD

注意:MOD函数与%是一样的。
取余计算公式:MOD(a,b) ===> a – a / b * b
在这里插入图片描述

5.2.2.5截断— TRUNCATE

注意:TRUNCATE函数截取数值的小数后面的位数
在这里插入图片描述

注意:如果小数后面的个数不够,则0补足
在这里插入图片描述

5.2.3日期函数
5.2.3.1获取当前日期,包含时间 — NOW

在这里插入图片描述

5.2.3.2获取当前日期,不包含时间 — CURDATE

在这里插入图片描述

5.2.3.3获取当前时间,不包含日期 — CURTIME

在这里插入图片描述

5.2.3.4获取日期的年、月、日、时、分、秒 — YEAR……

在这里插入图片描述
在这里插入图片描述

查询表中员工入职年份
在这里插入图片描述

使用英文显示月份—MONTHNAME
在这里插入图片描述

5.2.3.5将字符串日期格式转换成数值格式—STR_TO_DATE

在这里插入图片描述

5.2.3.6将日期转换成字符格式—DATE_FORMAT

在这里插入图片描述

5.2.3.7时间格式表

在这里插入图片描述

5.2.4 流程控制函数
5.2.4.1条件判断语句 — IF

在这里插入图片描述

查找有奖金和没有奖金的员工,分别给出批语(IS NULL判断奖金率为NULL)
在这里插入图片描述

5.2.5 CASE ----(类似switch)

CASE 要判断的字段和表达式
WHEN 常量1 THEN 要显示的值1或语句1
WHEN 常量2 THEN 要显示的值1或语句2
WHEN 常量3 THEN 要显示的值1或语句3、
……
ELSE 要显示的值n或语句n
END ;
在这里插入图片描述

5.2.6 CASE ----多重if

CASE
WHEN 常量1 THEN 要显示的值1或语句1
WHEN 常量2 THEN 要显示的值1或语句2
WHEN 常量3 THEN 要显示的值1或语句3、
……
ELSE 要显示的值n或语句n
END ;
在这里插入图片描述

5.3、分组函数

功能:用作统计使用,又被称为聚合函数,或统计函数或组函数
分类:sum求和; avg平均值; max最大值;min最小值;count计算个数
特点:
(1)、sum 、avg一般用于处理数值型
(2)、max、min、count用于处理任何类型
(3)、以上分组函数都可以忽略null值
(4)、可以和distinct函数搭配,实现去重
(5)、在MYISAM存储引擎下,COUNT()的效率最高;在INNODB的存储引擎下,COUNT()和COUNT(1)的效率差不多,比COUNT(字段)效率高
(6)、和分组函数一同查询的字段要求是GROUND BY后的字段

在这里插入图片描述

5.4、分组查询

使用GROUND BY字句将表中的数据分钟若干组
SELECT column,ground_function(column)
FROM table
[WHERE condition ]
[GROUND BY group_by_expression]
[ORDER BY column];
明确:WHERE一定要放在FROM后面
特点:
(1)、分组查询中的筛选条件:
数据源 位置 关键字
分组钱筛选: 原始表 group by字句前面 where
分组后筛选: 分组后的结构集 group by字句后面 having
(2)、分组函数做条件肯定是放在having字句中
(3)、能用分组前筛选的,优先使用分组前筛选
(4)、group by字句支持单个字段,多个字段分组(多个字段之间用逗号隔开,没有顺序要求)

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

5.4.1 HAVING ---- 在GROUP BY后的筛选条件

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述在这里插入图片描述

5.6、连接查询

1、按年代分类:
SQL192标准:仅仅支持内连接
SQL199标准【推荐】:支持内连接+外连接(左外和右外) +交叉连接
2、按功能分类:
内连接:
等值连接
非等值连接
自连接
外连接:
左外连接
右外连接
全外连接
交叉连接

5.6.1 等值连接

为表取别名,提高语句的简洁性。
注意:如果为表取别名,查询的字段就不能使用原来的表名去限定。
特点:
1、 多表等值连接的结果是几个表的交集
2、 N表连接,至少需要n-1个连接条件
3、 多表的顺序没有要求
4、 一般需要为表取别名
在这里插入图片描述

在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

weixin_44585751

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值