MySQL总结

简介
  • MySQL是一个关系型数据库管理系统
  • RDBMS: 当前主要使用两种数据库,一种是关系数据库,一种是非关系型数据库,而关系型数据库简称为RDBMS
  • SQL语句: SQL是结构化查询语言,用来操作关系型数据库的语句,目前几乎所有的关系型数据库都支持SQL语句进行操作
    • SQL语句分为:
      • DQL:数据查询语言,用于对数据进行操作
      • DML:数据操作语言, 对数据进行增删改查
      • TPL:事务处理语言,对事务进行操作
      • DCL: 数据控制语言,进行授权与权限回收
      • DDL: 数据定义的语言,进行数据库、表的管理
      • CCL:指针控制语言,通过指针完成数据表的操作
数据库基本操作
# 查看所有的数据库
show databases;

# 使用数据库
use 数据库名;

# 查看当前使用的数据库
select database();

# 创建数据库
create database 数据库命 charset=utf8;

# 删除数据库(谨慎使用!!!)
drop database 数据名;
数据表基本操作
# 查看当前数据库中的所有表
show tables;

# 查看表结构
desc 表名;

# 创建表
create table 表名(字段名 类型 约束);

# 修改表-添加字段
alter table 表名 add 字段名 类型;

# 修改表-修改字段-重命名
alter table 表名 change 原表名 新表名 类型以及约束;

# 修改表-修改字段-不重命名
alter table 表名 modify 字段名 类型以及约束;

# 修改表-删除字段
alter table 表名 drop 字段名;

# 删除表(谨慎使用!!!)
drop table 表名;

# 查看表的创建语句
show create table 表名;
数据的基本操作
# 基本查询-查询所有
select * from 表名;

# 指定列查询
select 字段1名, 字段2名 from 表名;

# 添加数据
insert into 表名 values(添加的数据);

# 修改数据
update 表名 set 字段=值 where 条件;

# 删除(谨慎使用!!!)
delete from 表名 where 条件;
数据查询进阶
# 别名查询
select 字段名 as 别名 from 表名;

# 消除重复行
select distinct 字段名 from 表名;

# 比较运算符查询
select * from 表名 where 查询条件 例如: height > 175;

# 逻辑运算符查询
select * from 表名 where id>3 and gender=1;
select * from 表名 where id>3 or gender=1;

# 模糊查询
# 例如 查询姓曾的
select * from 表名 where name like "曾%";

# 非连续范围查询
# 例如:查询年龄位18到30岁的
select * from 表名 where age in (18, 30);

# 连续范围查询
# 例如:查询年龄到30之间的
select * from 表名 where age between 18 and 34;

# 排序
select * from 表名 order by 字段名 desc(降序) 或者 asc(升序)

# 聚合函数
# 求总数  select count(*) from 表名
# 求和   select sum(字段名) from 表名;
# 最大值 ...同上...max(字段名) ...同上...
# 最小值 ...  ...min(字段名) ...  ...
# 平均值 ...  ...avg(字段名) ...  ...

# 分组查询
select * from 表名 group by 字段名;
# 分页查询
select * from 表名 limit 当前第几页,每页显示多少数据;

# 连接查询
# 内连接
select * from 表名1 inner join 表名2 on 表名1.字段名 = 表名2.字段名
# 左连接
select * from 表名1 left join 表名2 on 表名1.字段名 = 表名2.字段名
# 右连接
select * from 表名1 right join 表名2 on 表名1.字段名 = 表名2.字段名
补充
事务的四大特性
  • 原子性:原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,因此事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据库有任何影响。
  • 一致性:一致性是指事务必须使数据库从一个一致性状态变换到另一个一致性状态,简单来说就是一个事务执行之前和执行之后都必须处于一致性状态。
  • 隔离性:隔离性是当多个用户并发访问数据库时,比如操作同一张表时,数据库为每一个用户开启的事务,不能被其他事务的操作所干扰,多个并发事务之间要相互隔离。
  • 持久性:持久性是指一个事务一旦被提交了,那么对数据库中的数据的改变就是永久性的,即便是在数据库系统遇到故障的情况下也不会丢失提交事务的操作。
事务的四个隔离级别
  • 未提交读(Read Uncommitted):一个事务能够读取到 别的事务中没有提交的更新数据。事务可以读取到未提交的数据,这也被称为脏读(dirty read)。
  • 提交读(Read Committed):一个事务只能读取到别的事务提交的更新数据,但是未提交的写事务将会禁止其他事务访问该行
  • 可重复读(Repeated Read):保证同一事务中先后执行的多次查询将返回同意结果,不受其他事务的影响。这种隔离级别可能出现幻读。(mysql默认的)
  • 序列化(Serializable):不允许事务并发执行,强制事务串行执行,就是在读取的每一行数据上都加上了锁,读写相互都会阻塞。这种隔离级别最高,是最安全的,性能最低,不会出现脏读,不可重复读,幻读,丢失更新。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

北风^

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

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

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

打赏作者

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

抵扣说明:

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

余额充值