MySQL知识复习

一、MySQL简介:

  • 点击查看MySQL官方文档
  • MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,后来被Sun公司收购,Sun公司后来又被Oracle公司收购,目前属于Oracle旗下产品

二、命令行连接数据库

  • 打开终端输入下面命令连接数据库:
 mysql  -u用户名   -p数据库的密码
  • 退出登录
 exit 或 quit 或 ctrl+d

三、MySQL查询命令:

1、MySQL查询

  • 查看版本
   select version();
  • 查看所有数据库
	show databases;
  • 使用数据库
	use 要使用数据库的名字
  • 查看当前使用数据库
	select database();
  • 创建数据库
	crate database 数据库名字 charset=utf8;
  • 删除数据库
	drop database 数据库名字;
  • 消除重复行
	select distinct1,... from 表名;
  • 模糊查询
    • like
    • %表示任意多个任意字符
    • _表示一个任意字符
	#  % 查询姓王的学生
	select * from students where name like '王%';
	#  查询姓王并且“名”是一个字的学生
	select * from students where name like '王_';
  • 排序
	select * from 表名 order by 列1 asc|desc [,2 asc|desc,...]
  • 聚合函数
    • 总数:count(*)表示计算总行数,括号中写星与列名,结果是相同的
    • 最大值:max(列)表示求此列的最大值
    • 最小值:min(列)表示求此列的最小值
    • 求和:sum(列)表示求此列的和
	# 求学生总数
	select count(*) from students;
	# 查询女生的编号最大值
	select max(id) from students where gender=2;
	# 查询女生的编号最小值
	select min(id) from students where gender=2;
	# 查询男生的总年龄
	select sum(age) from students where gender=1;

2、连接查询

当查询结果的列来源于多张表时,需要将多张表连接成一个大的数据集,再选择合适的列返回

MySQL支持三种类型的连接查询,分别为:

  • 内连接查询:查询的结果为两个表匹配到的数据
    MySQL知识复习_第1张图片
  • 右连接查询:查询的结果为两个表匹配到的数据,右表特有的数据,对于左表中不存在的数据使用null填充
    MySQL知识复习_第2张图片
  • 左连接查询:查询结果为两个表匹配到的数据,左表特有的数据,对于右表中不存在的数据使用null填充
    MySQL知识复习_第3张图片
	# 语法
	select * from1 inner或left或right join 表2 on 表1.=2.

四、事务

1、事务使用场景

  • 事务广泛的运用于订单系统、银行系统等多种场景

2、四大特性:

  • 原子性(atomicity)

一个事务必须被视为一个不可分割的最小工作单元,整个事务中的所有操作要么全部提交成功,要么全部失败回滚,对于一个事务来说,不可能只执行其中的一部分操作,这就是事务的原子性

  • 一致性(consistency)

数据库总是从一个一致性的状态转换到另一个一致性的状态。

  • 持久性(durability)

一旦事务提交,则其所做的修改会永久保存到数据库。(此时即使系统崩溃,修改的数据也不会丢失。

  • 隔离性(isolation)

通常来说,一个事务所做的修改在最终提交以前,对其他事务是不可见的。

3、事务命令

  • 开启事务(开启事务后执行修改命令,变更会维护到本地缓存中,而不维护到物理表中)
	begin;
	# 或者
	start transaction;
  • 提交事务(将缓存中的数据变更维护到物理表中)
	# 提交事务
	commit;
  • 事务回滚(放弃缓存中变更的数据)
	rollback;

你可能感兴趣的:(python)