type
status
date
slug
summary
tags
category
password
icon
😀
收集了 Mysql 日常会用到的相关知识点

SQL 语句合集

DQL

数据查询语言

DML

数据操纵语言

删除表

删除单表的记录
级联删除

修改

修改单表的记录
修改多表的记录

插入

方式一
方式二

DDL

数据定义语言

创建表

 

修改表

添加列
修改列的类型或约束
修改列名
删除列
修改表名
删除表
复制表的结构
复制表的结构+数据
 

库管理

创建库
修改库
删除库

常见约束

NOT NULL:非空,该字段的值必填
UNIQUE:唯一,该字段的值不可重复
DEFAULT:默认,该字段的值不用手动插入有默认值
CHECK:检查,mysql不支持
PRIMARY KEY:主键,该字段的值不可重复并且非空 unique+not null
FOREIGN KEY:外键,该字段的值引用了另外的表的字段
 
主键和唯一的相同和区别
  • 区别:
      1. 一个表至多有一个主键,但可以有多个唯一
      1. 主键不允许为空,唯一可以为空
  • 相同点:
      1. 都具有唯一性
      1. 都支持组合键,但不推荐
 
外键
  1. 用于限制两个表的关系,从表的字段值引用了主表的某字段值
  1. 外键列和主表的被引用列要求类型一致,意义一样,名称无要求
  1. 主表的被引用列要求是一个key(一般就是主键)
  1. 插入数据,先插入主表
 
😖
注意:删除数据,先删除从表 可以通过以下两种方式来删除主表的记录: 方式一:级联删除 ALTER TABLE stuinfo ADD CONSTRAINT fk_stu_major FOREIGN KEY(majorid) REFERENCES major(id) ON DELETE CASCADE; 方式二:级联置空 ALTER TABLE stuinfo ADD CONSTRAINT fk_stu_major FOREIGN KEY(majorid) REFERENCES major(id) ON DELETE SET NULL;
 

创建表时添加约束

😖
注意:
支持类型 可以起约束名
列级约束 除了外键 不可以
表级约束 除了非空和默认 可以,但对主键无效
列级约束可以在一个字段上追加多个,中间用空格隔开,没有顺序要求
 

修改表时添加或删除约束

  1. 非空
    1. 添加非空
      1. 删除非空
      1. 默认
        1. 添加默认
          1. 删除默认
          1. 主键
            1. 添加主键
              1. 删除主键
              1. 唯一
                1. 添加唯一
                  1. 删除唯一
                  1. 外键
                    1. 添加外键
                      1. 删除唯一
                       

                      自增长列

                      特点:
                      1. 不用手动插入值,可以自动提供序列值,默认从1开始,步长为1
                        1. auto_increment_increment
                          如果要更改起始值:手动插入值
                          如果要更改步长:更改系统变量
                      1. 一个表至多有一个自增长列
                      1. 自增长列只能支持数值型
                      1. 自增长列必须为一个key
                      一、创建表时设置自增长列
                      二、修改表时设置自增长列
                      三、删除自增长列
                       

                      数据类型

                      一、数值型

                      1、整型

                      类型
                      tinyint
                      smallint
                      mediumint
                      int/integer
                      bigint
                      所占字节
                      1
                      2
                      3
                      4
                      8
                      特点:
                      1. 都可以设置无符号和有符号,默认有符号,通过unsigned设置无符号
                      1. 如果超出了范围,会报out or range异常,插入临界值
                      1. 长度可以不指定,默认会有一个长度
                      长度代表显示的最大宽度,如果不够则左边用0填充,但需要搭配zerofill,并且默认变为无符号整型

                      2、浮点型

                      定点数:decimal(M,D)
                      浮点数:
                      float(M,D) 4
                      double(M,D) 8
                      特点:
                      1. M代表整数部位+小数部位的个数,D 代表小数部位
                      1. 如果超出范围,则报 out or range 异常,并且插入临界值
                      1. M 和 D 都可以省略,但对于定点数,M默认为 10,D 默认为 0
                      1. 如果精度要求较高,则优先考虑使用定点数
                       

                      二、字符型

                      charvarcharbinaryvarbinaryenumsettextblob

                      char:固定长度的字符,写法为 char(M),最大长度不能超过M,其中M可以省略,默认为1
                      varchar:可变长度的字符,写法为 varchar(M),最大长度不能超过M,其中M不可以省略

                      枚举(Enum)

                      • 不区分大小写
                      • 枚举只能取其中一个值

                      集合(set)

                      • 不区分大小写
                      • 能取多个值用逗号分开

                        三、日期型

                        • year年
                        • date日期
                        • time时间
                        • datetime 日期+时间 8
                        • timestamp 日期+时间 4 比较容易受时区、语法模式、版本的影响,更能反映当前时区的真实时间
                         
                         
                         
                         
                         
                         
                         
                        狗屁嗯-教程Mac-常用功能
                        Loading...
                        shuouyang
                        shuouyang
                        android开发 ReactNative开发 小程序开发
                        最新发布
                        AOSP 环境搭建
                        2025-3-29
                        View 绘制流程-源码解析
                        2025-3-12
                        HTTP
                        2025-3-4
                        JVM 虚拟机
                        2025-2-28
                        蓝牙-BLE-基础
                        2025-2-28
                        从 OkHttp 的原理来看 HTTP
                        2025-2-19
                        公告
                        🎉热点信息🎉
                        --- 1 ---
                        Jet Brains 推出新的跨平台支持 Kotlin MultiPlatform
                        --- 2 ---
                        新的小巧便捷的依赖注入框架 Koin
                        --- 3 ---
                        新一代 API 查询语言 GraphQL