文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

MySQL创建表时的条件有哪些

2023-07-02 11:46

关注

这篇“MySQL创建表时的条件有哪些”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“MySQL创建表时的条件有哪些”文章吧。

由于增删改了emp表中的记录,因此这里重新创建了一个脚本并使用

create database bjpowernnode;use bjpowernode;source C:\Users\Administrator\Desktop\bjpowernode.sql;

约束

1.什么是约束?

2. 约束的分类

1. not null(非空约束)

not null约束的字段,不能为null值,必须给具体的数据

创建表,给字段添加 非空约束【用户的邮箱地址不能为空】

drop table if exists t_user;create table t_user(        id int(10),        name varchar(32) not null,        email varchar (32));

MySQL创建表时的条件有哪些

MySQL创建表时的条件有哪些

2. unique(唯一性约束)

创建表,保证邮箱地址唯一

create table t_user(id int(10),name varchar(32) not null,email varchar(128) unique);

MySQL创建表时的条件有哪些

unique约束的字段不能重复,但是可以为null

MySQL创建表时的条件有哪些

以上的约束属于列级约束

表级约束:

 create table t_user(     id int(10),     name varchar(32),     email varchar(128),     unique(email) );

 1.使用表级约束给多个字段添加约束

 create table t_user(     id int(10),     name varchar(32),     email varchar(128),     unique(name,email));

表级约束可以给约束起名,以后通过这个名字来删除约束

   create table t_user(       id int(10),       name varchar(32),       email varchar(128),       constraint t_user_email_unique unique(email) );

MySQL创建表时的条件有哪些

MySQL创建表时的条件有哪些

MySQL创建表时的条件有哪些

not null 和unique可以联合使用

MySQL创建表时的条件有哪些

3. primary key (主键约束)

1.主键涉及到的术语:

2.以上三者之间的关系:

3.给某个字段添加主键约束以后,该字段不能重复,也不能为空

4. 一张表应给有主键字段,如果没有,表示这张表是无效的

5.无论是单一主键还是复合主键,一张表的主键约束只能有一个

6.主键根据性质分类:

单一主键,列级约束

create table t_user(    id int(10) primary key,    name varchar(32));

MySQL创建表时的条件有哪些

单一主键,表极约束

 create table t_user(     id int(10),     name varchar(32),     primary key(id));

MySQL创建表时的条件有哪些

复合主键:只能用表级约束

mysql> create table t_user(    -> id int(10),    -> name varchar(32),    -> primary key(id,name)    -> );

MySQL创建表时的条件有哪些

MySQL创建表时的条件有哪些

auto_increment:主键自增

MySQL数据管理系统中提供了一个自增的数字,专门用来自动生成主键值

主键值不需要用户维护,也不需要用户提供了,自动生成的,

这个自增的数字默认从1开始以1递增:1,2,3,4,....

mysql> create table t_user(    -> id int(10) primary key auto_increment,    -> name varchar(32)    -> );

MySQL创建表时的条件有哪些

4. foreign key(外键约束)

1.外键约束涉及到的术语:

2.以上三者之间的关系:

3.外键分为单一外键和复合外键

4.一张表中可以有多个外键字段

设计一个数据库表,用来存储学生和班级信息,给出两种解决方案:

学生信息和班级信息之间的关系:一个班级对应多个学生,这是典型的一对多的关系

在多的一方加外键

第一种设计方案:将学生信息和班级信息存储到一张表中

第二种设计方案:将学生信息和班级信息分开两张表存储,学生表+班级表

sno(主键约束)snameclassno(外键约束)
1jack100
2lucy100
3kk100
4smith200
5frank300
6jhh300
cno(主键约束)cname
100高三1班
200高三2班
300高三3班

为了保证t_student 表中的classno字段中的数据必须来自于t_class表中的cno字段中的数据,有必要给t_student表中的classno字段添加外键约束,classno称为外键字段,该字段中的值称为外键值。

注意:

外键值可以为空

外键字段必须得引用这张表中的主键吗?

班级表为父表,学生表为子表

MySQL创建表时的条件有哪些

DROP TABLE IF EXISTS t_student;DROP TABLE IF EXISTS t_class;  CREATE TABLE t_class( cno INT(3) PRIMARY KEY, cname VARCHAR(128) NOT NULL UNIQUE );  CREATE TABLE t_student( sno INT(3) PRIMARY KEY, sname VARCHAR(32) NOT NULL, classno INT(3),-- 外键 CONSTRAINT t_student_class_fk FOREIGN KEY(classno) REFERENCES t_class(cno) );  INSERT INTO t_class(cno,cname) VALUES(100,'高三1班'); INSERT INTO t_class(cno,cname) VALUES(200,'高三2班'); INSERT INTO t_class(cno,cname) VALUES(300,'高三3班');  INSERT INTO t_student(sno,sname,classno) VALUES(1,'jack',100); INSERT INTO t_student(sno,sname,classno) VALUES(2,'lucy',100); INSERT INTO t_student(sno,sname,classno) VALUES(3,'hh',100); INSERT INTO t_student(sno,sname,classno) VALUES(4,'frank',200);  INSERT INTO t_student(sno,sname,classno) VALUES(5,'smith',300); INSERT INTO t_student(sno,sname,classno) VALUES(6,'jhh',300);  SELECT * FROM t_student; SELECT * FROM t_class; -- 添加失败,因为有外键约束  INSERT INTO t_student(sno,sname,classno) VALUES(8,'kk',500);

重点:典型的一对多关系,设计时在多的一方加外键

5. 级联更新与级联删除

在删除父表中的数据的时候,级联删除子表中的数据

在更新父表中的数据的时候,级联更新子表中的数据

以上的级联更新和级联删除谨慎使用,

因为级联操作会使数据数据改变或删除,数据是无价的。

语法:

MySQL创建表时的条件有哪些

MySQL创建表时的条件有哪些

MySQL中对于有些约束的修改比较麻烦,所以应该先删除约束,再添加约束

删除外键约束:

alter table t_student drop foreign key t_student_class_fk

添加外键约束并级联更新:

alter table t_student add constraint t_student_class_fk foreign key(classno)references t_class(no) on delete cascade;

添加外键约束并级联删除:

alter table t_student add constraint t_student_class_fk foreign key(classno)references t_class(no) on update cascade;

级联删除

MySQL创建表时的条件有哪些

MySQL创建表时的条件有哪些

级联更新

MySQL创建表时的条件有哪些

MySQL创建表时的条件有哪些

以上就是关于“MySQL创建表时的条件有哪些”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网行业资讯频道。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯