• mysql11,9学习笔记


    mysql学习笔记

    约束

    #是一种限制,是通过对表的行或列的数据作出限制
    #来确保表的数据的完整性和唯一性
    #用于非空约束
    #用于确保当前列的数据不可为空值null
    #非空的约束只能作用于表对象的列上,null适用于所有数据类型
    #唯一性约束(unique)
    #是指定的表的列或者列的组合不能重复,确保数据的唯一性
    #唯一性约束中允许出现null,且可以出现多个null=null FALSE
    #同一个表中可以有多个唯一约束,多个列组和的约束
    #唯一约束的名称如果不确定,则和列名相同
    #唯一约束可以在表中创建,也可以多个表创建组合的唯一约束

    主键约束(primary key)

    #主键约束相当于是唯一的约束,非空约束的组合,主键约束列不允许重复
    #也不允许出现空值,每张表中只能有一个主键,建立主键约束可以在
    #列级别,也可以在表级别创建,当穿件主键约束的时候,系统默认
    #在所在的列和列的组合上创建唯一索引

    外键约束(foreign key)

    #是用于加强两张表(主表和从表)的一列或者多列之间的数控链接
    #用于保证一个或者两个表之间的参照完整性,外键是构建于一个表的
    #两个字段或是两个表的两个字段之间的参照关系
    #创建外键的顺序是先定义表的主键,然后定义表的外键
    #只有主表才能被从表用来作为外键使用,被约束的从表中的列可以
    #不是主键,主表限制了从表的更新和插入操作
    #默认值约束
    #如果用户在插入数据的时候,没有给该列制定数据,这系统将会
    #把默认值赋值给该列,如果没有默认值,则赋值null
    #检查约束(自学)
    #例子

    主键 primary KEY

    #添加单列主键
    #语法(定义字段的同时指定主键):

    #create table 表名(字段名 数据类型 primary key)
    create table table_xy_01(id int PRIMARY key,name varchar(20));
    
    • 1
    • 2

    #语法

    #create table 表名(字段名 数据类型, ...,
    #constract 主键名 PRIMARY key (主键列))
    create table table_xy_02(
    id int ,
    name varchar(20),
    constraint pk1 PRIMARY key(id)
    )
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    添加多列主键(联合组·主键)

    #语法:

    #create table 表名(字段1 类型, 字段2 类型 ...,
    #primary key(字段1,自断2..))
    CREATE table table_xy_03(
    id int ,
    name VARCHAR(20),
    age int ,
    PRIMARY key(id,name)
    )
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    删除主键

    #语法

    #alert table 表名 drop PRIMARY
    alter table table_xy_02 drop  PRIMARY key
    ALTER table table_xy_03 drop PRIMARY key 
    #表创建完成后在添加主键
    #语法 :alert table 表名  add PRIMARY key (字段列表)
    ALTER table table_xy_02 add PRIMARY key(id)
    ALTER table table_xy_03 add PRIMARY key(id,name)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    自增约束,一般添加给主键

    #语法

     CREATE TABLE 表名(字段名 类型 auto_increment)
    create table table_xy_04(
    id int PRIMARY key auto_increment,
    name varchar(20)
    );
    
    • 1
    • 2
    • 3
    • 4
    • 5

    指定起始值

    #语法

    #create table 表名(字段 类型 auto_increment)
    #auto_increment =起始值
    create table table_xy_06(
    	id int primary key auto_increment,
       name varchar(20)
       )auto_increment=50
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    非空约束 not null

    #语法(创建的时候添加非空约束)

    #create  table 表名(字段 类型 not null,...)
    create table table_xy_07(
    id int PRIMARY key auto_increment,
    name VARCHAR(20) not null)
    #语法  (创建表完成后添加)
    #ALTER table 表名 modify 字段名 类型 not null;
    CREATE table table_xy_08(
    id int PRIMARY key auto_increment,
    name varchar(20)
    )
    alter table table_xy_08 modify name VARCHAR(20) not null;
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    删除非空约束

    #语法

    ALTER table table_xy_08 modify name VARCHAR(20)
    
    • 1

    唯一约束

    #语法(创建表的时候指定)
    #CREATE table 表名 (字段名 类型 unique)
    CREATE table table_xy_09(
    id int primary key auto_increment,
    name varchar(20) unique not NULL)
    #语法(创建表的完成时候指定)
    #CREATE table 表名 add constraint 约束名称 unique(字段)
    CREATE TABLE table_xy_10(
    id int PRIMARY key auto_increment,
    name varchar(20)
    )
    alter table table_xy_10 
    add constraint my_unique unique(name)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    删除唯一键约束

    #语法 alter table 表名 drop index 约束名
    alter table table_xy_10 drop index my_unique
    
    • 1
    • 2

    #alter table 表名 modify 列名 类型 default 默认值
    CREATE table table_xy_12(
    id int primary key auto_increment,
    name varchar(20)
    )
    alter table table_xy_12
    modify name varchar(20) default ‘李四’

    删除默认约束

    #语法
    #alter table 表名 modify 列名
    #varchar(20) default NULL
    alter table table_xy_12
    modify name varchar(20) default NULL

    外键约束 foreign key

    #语法(创建表的同时指定)
    ···
    #create table 表名(字段名 类型,字段2 类型,…)
    #constraint 外键名 foreigin key(字段名)
    #references 主表名(主键)
    #)
    CREATE table table_xy_13(
    id int PRIMARY key auto_increment,
    name varchar(20)
    )
    #从表
    CREATE table table_xy_14(
    id int primary key atuo_increment,
    score int,
    oid int
    constraint fk_14_13_oid foreign key(oid)
    references table_xy_13(id)
    )
    #语法
    #alter table 表名 add foreigin key(字段名)
    #references 主表(字段) [on delete restricit]
    #[on update cascade]

  • 相关阅读:
    如何制定有效的项目进度计划——甘特图
    浅谈一下:Java当作数组的几个应用场景
    云安全—NIST SP 500-292
    Matlab图像处理-读入图像
    网络编程TCP/UDP
    Apollo在NetCore实践
    RAPTOR 一种基于树的RAG方法,RAG的准确率提高 20%
    基于javaweb+jsp的学籍管理系统(JavaWeb JSP MySQL Servlet SSM SpringBoot Layui Ajax)
    可视化处理 | ArcGIS和经济引力模型的城市联系度分析
    【Hello Go】Go语言流程控制
  • 原文地址:https://blog.csdn.net/weixin_54425421/article/details/127766058