首页 > 其他分享 >创建表加入约束

创建表加入约束

时间:2022-10-09 13:55:09浏览次数:49  
标签:insert name 加入 创建 into 约束 vip values

约束

  • 什么是约束?
    约束:constraint
    在创建表的时候,我们可以给表中的字段加上一些约束,来保证这个表中数据的
    完整性、有效性!!
  • 约束包括哪些
    • 非空约束:not null
    • 唯一性约束:unique
    • 主键约束:primary key(简称PK)
    • 外键约束:foreign key(简称FK)
    • 检查约束:check(mysql不支持,oracle支持)
    • 我们这里重点学习四个约束:
      not null
      unique
      primary key
      foreign key
  • 非空约束:not null
    非空约束not null约束的字段不能为NULL
    drop table if exists t_vip;
    create table t_vip(
    id int,
    name varchar(255) not null // not null只有列级约束,没有表级约束!
    );
    insert into t_vip(id,name) values(1,'zhangsan');
    insert into t_vip(id,name) values(2,'lisi');
  • 小插曲:
    xxxx.sql这种文件被称为sql脚本文件。
    sql脚本文件中编写了大量的sql语句。
    我们执行sql脚本文件的时候,该文件中所有的sql语句会全部执行!
    批量的执行SQL语句,可以使用sql脚本文件。
    在mysql当中怎么执行sql脚本呢?
    source 拖进来(直接执行sql脚本文件)
    你在实际的工作中,第一天到了公司,项目经理会给你一个xxx.sql文件,
    你执行这个脚本文件,你电脑上的数据库数据就有了!
  • 唯一性约束:unique
    唯一性约束unique约束的字段不能重复,但是可以为NULL。
    drop table if exists t_vip;
    create table t_vip(
    id int,
    name varchar(255) unique,//列级约束
    email varchar(255)
    );
    insert into t_vip(id,name,email) values(1,'zhangsan','[email protected]');
    insert into t_vip(id,name,email) values(2,'lisi','[email protected]');
    insert into t_vip(id,name,email) values(3,'wangwu','[email protected]');
  • 新需求:name和email两个字段联合起来具有唯一性
    drop table if exists t_vip;
    create table t_vip(
    id int,
    name varchar(255) ,
    email varchar(255),
    unique(name,email)//表级约束
    );
    insert into t_vip(id,name,email) values(1,'zhangsan','[email protected]');
    insert into t_vip(id,name,email) values(2,'zhangsan','[email protected]');
  • 什么时候使用表级约束
    需要给多个字段联合起来添加某一个约束的时候,需要使用表级约束
    在mysql当中,如果一个字段同时被not null和unique约束的话
    该字段自动变为主键字段(注意:oracle中不一样)
  • 主键约束primary key
    • 主键约束的相关术语
      主键约束:就是一种约束
      主键字段:该字段上添加了主键约束
      主键值:主键字段上的每一个值
  • 什么是主键,有什么用?
    主键值是每一行记录的唯一标识!!
    任何一张表都应该有主键,没有主键,表无效
    主键的特征:not null + unique(主键值不能是NULL,同时也不能重复!)
  • 主键值建议使用:
    int
    bigint
    char等类型
    不建议使用:varchar来做主键,主键值一般都是数字,一般都是定长的
    在mysql中,有一种机制,可以帮助我们自动维护一个主键值
    drop table if exists t_vip;
    create table t_vip(
    id int primary key auto_increment,//auto_increment表示自增,从1开始,以一递增
    name varchar(255)
    );
    insert into t_vip(name) values('zhangsan');
    insert into t_vip(name) values('zhangsan');
    insert into t_vip(name) values('zhangsan');
    insert into t_vip(name) values('zhangsan');
    insert into t_vip(name) values('zhangsan');
    insert into t_vip(name) values('zhangsan');
  • 外键约束foreign key
  • 外键约束涉及到的相关术语:
    外键约束:一种约束
    外键字段:该字段上添加了外键约束
    外键值:外键字段当中的每一个值
  • 业务背景:
    请设计数据库表,来描述“班级和学生”的信息?
    drop table if exists t_student;
    drop table if exists t_class;
    create table t_class(
    classno int primary key,
    classname varchar(255)
    );
    create table t_student(
    no int primary key auto_increment,
    name varchar(255),
    cno int,
    foreign key(cno) references t_class(classno)
    );
    insert into t_class(classno,classname) values (100,'北京市大兴区亦庄镇第二中学高三1班');
    insert into t_class(classno,classname) values (101,'北京市大兴区亦庄镇第二中学高三2班');
    insert into t_student(name,cno) values ('jack',100);
    insert into t_student(name,cno) values ('lucy',100);
    insert into t_student(name,cno) values ('lilei',100);
    insert into t_student(name,cno) values ('hanmeimei',100);
    insert into t_student(name,cno) values ('zhangsan',101);
    insert into t_student(name,cno) values ('lisi',101);
    insert into t_student(name,cno) values ('wangwu',101);
    insert into t_student(name,cno) values ('zhaoliu',101);

标签:insert,name,加入,创建,into,约束,vip,values
From: https://www.cnblogs.com/song-hua/p/16771878.html

相关文章

  • 创建消息队列
    #include<stdio.h>#include<fcntl.h>#include<errno.h>#include<string.h>#include<stdlib.h>#include<unistd.h>#include<mqueue.h>structmq_attrattr;......
  • Springboot创建项目(idea版本)
    一:概述由于springboot项目,不管是java工程还是web工程都可以直接以jar方式运行,所以推荐创建jar工程,这里创建jar工程项目为例。二:两种方式创建springboot项目1.第一种方式手动......
  • 快速创建表
    createtableemp2asselect*fromemp;原理:将一个查询结果当做一张表新建!!!这个可以完成表的快速复制查询结果也可以创建一张表:createtablemytableasselectempn......
  • 差分约束模板补坑与学习
    很久以前就学了差分约束,但是一直没搞懂,也懒得搞懂。今天看板子,脑补了几秒钟突然就懂了。对于一个不等式,\(x_i-x_j\lek\),可以变形:\(x_i\lex_j+k\)。这跟最短......
  • springCloud- 搭建项目全部详细过程(创建一个父工程)
     这篇文章里边会有 IDEA 相关本地环境的配置,比如编码格式,等等。 另外这篇文章会详细的记录整个创建的过程,我都会有截图 前提条件需要:maven环境(配置过国内的镜像), idea......
  • Java多线程(二)线程创建
    三种创建方式1.继承Thread类2.实现Runnable接口3.实现Callable接口(了解) 继承Thread类自定义线程继承Thread类重写run()方法,编写线程执行体创建线程对象,调用start(......
  • pytorch 创建图与叶子节点与根节点
    创建时用户直接给出的为叶子节点,没有fn由几个叶子节点推导来的为最终结果,为root节点,有fn。譬如:x=tt.tensor([1],dtype='flaot',requires_grad=True)y=x.sum()这里的x......
  • win10加入域后登录不显示本地帐户
    win10加入域后登录不显示本地帐户前言加入域后登录其他账户不显示原来的本地账户,需要输入本地账户的账户名等繁琐操作;通过改设置来简化操作,直接输入密码来登录本地账户。......
  • IDEA创建java项目
    一.创建:1.new-->project2.设置包名:src->New->Package在这里我的包名设置为kecheng3.在包名下创建javaclass右键包名kecheng->New->javaclass然后输入class的名字,......
  • 【Java基础】File类概述和构造方法、创建功能、判断和获取功能及删除功能
    目录​​一、File类概述和构造方法​​​​二、File类创建功能​​​​三、File类判断和获取功能​​​​四、File类删除功能​​一、File类概述和构造方法File类介绍:●它......