MySQL数据库基础篇

MySQL基础篇

函数

1.字符函数

在这里插入图片描述

SELECT 函数(参数)

2.数值函数

在这里插入图片描述

  • 示例:在这里插入图片描述在这里插入图片描述

3.日期函数

在这里插入图片描述

4.流程函数

在这里插入图片描述

  • 示例

    1.在这里插入图片描述

    1. 在这里插入图片描述
    2. 在这里插入图片描述

约束

基本知识

在这里插入图片描述

  • MySQL中主键约束 自增:AUTO_INCREMENT

示例:

在这里插入图片描述

外键约束
  1. 概念:外键用来让两张表数据之间建立联系。从而保证数据的一致性和完整性

  2. 基本语法

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

多表查询

多表关系
  1. 一对多(多对一):如部门与员工关系

    实现:在多的一方建立外键,指向一的一方的主键

  2. 多对多:如学生与课程关系(如下图)

    实现:建立第三张中间表,中间表至少包含两个外键,分别关联两方主键

    在这里插入图片描述

  3. 一对一:用户与用户信息的关系(图示)

    关系:一对一关系,多用于单表拆分,将一张表的基础字段放在一张表中,其它详情字段放在另一张表中

    实现:在任意一方加入外键,关联另一方的主键,并且设置外键为唯一的(unique)

    在这里插入图片描述

连接查询——内,外,自连接

  1. 内连接:相当于查A,B两表交集部分

    语法:

    隐式内连接

    SELECT 字段列表 FROM 表1,表2 WHERE 条件...
    

    显式内连接

    SELECT 字段列表 FEOM 表1 [INNER] JOIN 表2 ON 连接条件
    
  2. 外连接:

    左外连接:查询左表(表1)所有数据,以及两张表交集部分数据

    语法:

    SELECT 字段列表 FROM 表1 LEFT [OUTER] JOIN 表2 ON 条件···
    

    右外连接:查询右表所有数据,以及两张表交集部分数据

    语法:

    SELECT 字段列表 FROM 表1 RIGHT[OUTER] JOIN 表2 ON 条件···
    

    表1,表2交换位置查询结果即与左外连接相同

  3. 自连接:当前表与自身的连接查询,自连接必须使用表别名

    语法:

    SELECT 字段列表 FROM 表A 别名A JOIN 表A 别名B ON 条件···;
    

    自连接查询,可以是内连接查询,也可以是外连接查询

    示例:
    在这里插入图片描述

子查询(标量、列、行、表子查询)

  1. 子查询

    (1)概念:SQL语句中嵌套SELECT语句,称为嵌套查询,又称子查询

    SELECT * FROM t1 WHERE column1=(SELECT column1 FROM t2)
    
  2. 标量子查询(子查询结果为单个值(数字,字符串,日期等))

    常用操作符:= <> > < >= <=

  3. 列子查询(子查询结果为一列或多列)
    在这里插入图片描述

  4. 行子查询(子查询结果为一行)

    常用操作符:= <> IN NOT IN

    示例在这里插入图片描述

  5. 表子查询(子查询结果为多行多列)

    常用操作符:IN

    在这里插入图片描述

事务

1.概念:事务是一组操作的集合,它是一个不可分割的工作单位,事务会把所有的操作作为一个整体一起向系统提交或撤销操作请求,即这些操作要么同时成功,要么同时失败。

默认MySQL的事务是自动提交的,也就是说,当值行一条DML语句,MySQL会立即隐式的提交事务。

事务操作

  • 方式一:

    1.查看/设置事务提交方式、

    SELECT @@autocommit;   // 查看
    SET @@autocommit=0;   //设置为不自动提交
    

    2.提交事务(若无异常,手动执行)

    COMMIT 
    

    3.回滚事务(若有异常,手动执行,是数据维持原状)

    ROLLBACK;
    
  • 方式二:

    1. 开启事务

      START TRANSACTION或BEGIN;
      
    2. 提交事务

      COMMIT
      
    3. 回滚事务

      ROLLBACK;
      

事务四大特性(ACID)

  • 原子性(Atomicity):事务是不可分割的最小操作单元,要么全部成功,要么全部失败
  • 一致性(Consistency):事务完成时,必须使所有的数据都保持一致。
  • 隔离性(Isolation):数据库系统提供的隔离机制,保证事务在不受外部并发操作影响的独立影响下独立运行(即指若干个并发事务,同时对同一个数据库进行操作,各事务间互不影响)
  • 持久性(Durability):事务一旦提交或回滚,它对数据库中的数据的改变就是永久的。

并发事务问题

  1. 脏读:一个事务读到另外一个事务还没有提交的数据
  2. 不可重复读:一个事务先后读取同一条记录,但两次读取的数据不同。
  3. 幻读:一个事务按照条件查询数据时,没有对应的数据行,但是在插入数据时,又发现这行数据已经存在,好像出现了‘幻影’。

事务隔离级别

在这里插入图片描述

上述默认为MySQL默认事务隔离级别

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值