MySQL

1、数据库

MySQL连接

通过命令行连接MySQL
在这里插入图片描述

exit命令退出mysql

创建数据库

在这里插入图片描述
该数据库不存在则创建并设定编码集为utf8,否则不创建

显示数据库

在这里插入图片描述

显然有我刚刚创建的新数据库zl

删除数据库

在这里插入图片描述

使用数据库

在这里插入图片描述

2、数据表

创建数据表

在这里插入图片描述

表的主键为int类型且是自增长的,其他字段均为非空
当然也可以使用UUID做主键,类型为varchar(36),不设置自动增长

显示数据表

在这里插入图片描述
当前数据库中的表,t_user创建成功

显示数据表结构

在这里插入图片描述

删除数据表

在这里插入图片描述

3、表中数据操作(增删改查)

插入数据

主键设置为UUID类型
在这里插入图片描述

查询数据

在这里插入图片描述

查询是数据库中极为复杂的操作了,下面是一些通用的select语法:

select column_name,column_name
from table_name
[where Clause]
[offset m][limit n]

查询语句中可以使用一个或多个表,表之间使用逗号分隔
column_name,column_name可以使用*来代替,select语句会返回表的所有字段数据
where语句添加查询条件
通过offset指定select语句开始查询的数据偏移量,默认为0
通过limit属性来设定返回的记录数

where子句

语法

select field1,field2,...fieldN from table1,table2...[where condition1 [and [or]] condition2]

使用and或or指定一个或多个条件,where子句也可以应用在SQL的delete或update命令,where子句类似于程序语言中的if条件
在这里插入图片描述

where子句的字符串比较是不区分大小写的,但可以使用binary关键字设定where子句区分大小写
在这里插入图片描述

更新数据

语法

update table_name set field1=new-value1, field2=new-value2 [where Clause]

修改密码

在这里插入图片描述

当需要将字段中特定字符串批量修改为其他字符串时,可以使用如下操作

update table_name set field=replace(field, 'old-string','new-string')[where Clause]

删除数据

语法

delete from table_name [where Clause]

当没有指定where子句时,当前表中所有记录将被删除

4、常用属性

like

使用like来获取,字段中含有查询条件的所有记录,like子句中使用%字符表示任意字符,类似正则表达式中的*,如果没有使用%,like子句与=的效果是一样的

在这里插入图片描述

union

union操作符用于连接两个以上的select语句的结果组合到一个结果集中,过个select语句会删除重复的数据

语法

select expression1, expression2, ... expression_n
from tables
[where conditions]
union [all | distinct]
select expression1, expression2, ... expression_n
from tables
[where conditions];

distinct:可选,删除结果集中的重复的数据,默认情况下union操作符已经删除了重复的数据,所以distinct修饰符对结果没影响
all:可选,返回所有结果集,包含重复数据

建两个新表

在这里插入图片描述
删除重复数据查

在这里插入图片描述
查询所有数据(包括重复)
在这里插入图片描述

添加条件查询

在这里插入图片描述

order by(排序)

order by 子句将查询数据排序后再返回数据
语法

select field1,field2,…

table_name1,table_name2...
order by
field1,[field2...][asc [desc]]

使用asc或desc关键字设置查询结果按升序或降序显示,默认是升序

在这里插入图片描述

降序

在这里插入图片描述

group by(分组)

group by 语句根据一个或多个列来对结果进行分组,分组的列上我们可以使用count,sum,avg等函数

语法

select column_name,
function(column_name)
from table_name
where column_name operator value
group by column_name;

普通的分组查询

在这里插入图片描述
使用with rollup
with rollup 可以实现在分组统计数据的基础上在进行相同的统计(sum,avg,count)
在这里插入图片描述
使用coalesce来设置一个可以取代null的名称

在这里插入图片描述

join(MySQL连接的使用)

inner join(内联):获取两个表中条件匹配的记录
left join(左联):获取左表中所有的记录和右表中条件匹配的记录
right join(右联):获取右表中所有的记录和左表中条件匹配的记录

新建两张表
在这里插入图片描述内联查询
在这里插入图片描述
右联查询
在这里插入图片描述
左联查询
在这里插入图片描述

null

MySQL提供三大运算符:
is null、is not null、<=>(当两个值都为null时返回true)
在MySQL中null值与任何其他值(包括null)比较都为false
在这里插入图片描述

regexp(正则表达式)

查找name字符串中包含a的记录
在这里插入图片描述

^ : 字符串以什么开始
$ : 字符串以什么结束

在这里插入图片描述
. : 匹配除”\n”以外任何单个字符
在这里插入图片描述

[…] : 匹配字符集合所包含的任意一个字符
[^…] : 匹配字符集中不包含的任意一个字符

在这里插入图片描述
p1|p2|p3 :匹配一个或一个以上

在这里插入图片描述
*:匹配前面的表达式零次及以上
+:匹配前面的表达式一次或多次

在这里插入图片描述

{n}:n为非负数,匹配n次
{n,m}:n,m为非负数,匹配最少n次,最多m次

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值