一、列完整性约束

列完整性约束:是指对某一列设置的约束条件。该列上的数据必须满足。最常见的有:

NOT NULL 该列值不能为空
NULL  该列值可以为空
UNIQUE 该列值不能存在相同
DEFAULT 该列某值在未定义时的默认值
CHECK  用户自定义的约束
AUTO_INCREMENT 该列值自动增加

二、表级完整性约束

表级完整性约束:规定了关系主键、外键和用户自定义完整性约束

PRIMARY KEY 主键
FOREIGN KEY 外键

三、创建表的格式

CREATE TABLE [表名]
(
[属性名称] [数据类型] [列完整性约束],
...
[表级完整性约束]
); 格式一: CREATE TABLE [表名]
(
[属性名称] [数据类型] [列完整性约束] PRIMARY KEY,
...
CONSTRAINT [约束名] FOREIGN KEY (属性) REFERENCES [约束属性所在表](属性)
); 格式二: CREATE TABLE [表名]
(
[属性名称] [数据类型] [列完整性约束],
...
CONSTRAINT [约束名] PRIMARY KEY(属性),
CONSTRAINT [约束名] FOREIGN KEY (属性) REFERENCES [属性所在表](属性)
);

注意:假如定义一个表时需要参考引用其它表的属性作为约束条件,那么必须保证被参考的表已经定义

四、简单建表示例

CREATE TABLE IF NOT EXISTS 专业(
专业编号 INT NOT NULL PRIMARY KEY,
专业名称 VARCHAR(20)
); CREATE TABLE IF NOT EXISTS 基本信息(
学号 INT AUTO_INCREMENT,
专业编号 INT NOT NULL,
身份证号 CHAR(18) UNIQUE,
籍贯 VARCHAR(5) DEFAULT '河北省',
性别 CHAR(1) CHECK(性别='女' OR 性别='男'),
是否婚配 ENUM('是','否'),
CONSTRAINT 主键约束 PRIMARY KEY(学号),
CONSTRAINT 外键约束 FOREIGN KEY(专业编号) REFERENCES 专业(专业编号)
);

五、删除表

DROP TABLE IF EXISTS [表名];

MySQL入门,第四部分,学会创建、删除表的更多相关文章

  1. mysql创建/删除表的例子

    创建表 简单的方式 CREATE TABLE person ( number INT(11), name VARCHAR(255), birthday DATE ); 或者是 CREATE TABLE ...

  2. MySQL入门,第八部分,多表查询(一)

    一.数据库脚本 #-------------------------------------------------------------------------------- #--------- ...

  3. Oracle 创建/删除 表空间、用户、授权

    首先以DBA连接到数据库:sqlplus / as sysdba; --创建表空间 create tablespace test_tablespace datafile 'D:\developer\o ...

  4. Oracle创建/删除表空间和用户(2014-3-10 记)

    /*创建表空间名为:DB_NAME*/ create tablespace DB_NAME datafile 'E:\oracle_data\db_name.dbf' size 100M autoex ...

  5. 六分钟学会创建Oracle表空间的步骤

    经过长时间学习创建Oracle表空间,于是和大家分享一下,看完本文你肯定有不少收获,希望本文能教会你更多东西. 1.先查询空闲空间 select tablespace_name,file_id,blo ...

  6. MySQL入门,第七部分,单表查询

    首先我们需要了解一下整个数据库的结构 其中Student表中Sno为主键.Study表中Sno和Cno合起来做主键.Course表中Cno为主键 其创建脚本如下: #----------------- ...

  7. MySQL入门(四)

    我好久没有写这个系列了,也确实不知道写什么.回首我学习数据库的路,最开始搞Oracle的时候其实没有搞懂Oracle,也不知道学了什么,后来学习MySQL尤其是InnoDB才大概入了门了.我最开始学习 ...

  8. 【数据库】8.0 MySQL入门学习(八)——创建并使用数据库、获得数据库和表的信息

    1.0 使用SHOW语句找出服务器上当前存在什么数据库: mysql> SHOW DATABASES; 每台机器上的数据库列表是不同的,但是很可能有mysql和test数据库.mysql是必需的 ...

  9. oracle创建/删除表空间、创建/删除用户并赋予权限

    创建表空间 分开执行如下sql语句 --创建临时表空间 CREATE SMALLFILE TEMPORARY TABLESPACE "TEMP11" TEMPFILE 'E:\ap ...

  10. oracle创建删除表空间

    create [undo|temporary] tablespace orcp datafile|tempfile 'E:\orcle\oracleBaseDir\oradata\orcp\orcp. ...

随机推荐

  1. C++ Dll中导出一个类

    //定义一个头文件,创建MyObject.h的头文件 并打印如下代码 #ifndef _MY_OBJECT_H #define _MY_OBJECT_H #ifndef MYDLL_EXPORTS # ...

  2. tersserorc的简单使用

    tesserocr 是 python 的一个 OCR 库,它是对 tesseract 做的一层 Python API 封装,所以他的核心是tesseract. tesseract 的安装见 https ...

  3. 微信小程序开发工具报错对应的服务器证书无效

    提示错误信息:“对应的服务器证书无效.控制台输入 showRequestInfo() 可以获取更详细信息.” 解决方法:详情 -->项目设置 --> 选择“不校验安全域名.TLS版本以及H ...

  4. $api 回调函数then应用

    getReceiveListAPI (param) { return new Promise(resolve => { let params = { // idCard: this.idCard ...

  5. Axure 文本框去掉边框 富文本 粘贴文字图标

    在今天做原型的过程中,碰到两个问题: 1 文本框该如何去掉边框 2 富文本粘贴文字图标 第一个问题:首先是思路错了,又跑到元件上面找边框,跑到style里面去border的线,结果是不成功. 正解:属 ...

  6. JDK中线程池参详细解析

    在jdk中为我们提供了三种创建线程池的方式,但是在阿里的编码规范里面都是明确禁止使用这三种api去创建线程池,推荐我们去自定义线程池.为什么? 要回答为什么,我们需要明白创建线程池时,各参数的作用: ...

  7. 面试刷题12:zero copy是怎么回事?

    文件copy是java的io部分不可忽视的内容. 我是李福春,我在准备面试,今天的问题是: zero-copy是怎么回事? 操作系统的空间划分为内核态空间, 用户态空间: 内核态空间相对操作系统具备更 ...

  8. Thinkphp绕过宝塔getshell

    可以看到直接被拦了,经测试这里是敏感函数字符拦截,大部分有用的敏感函数都被拦了,这里面被拦的是phpinfo() Emmmm,怎么办呢..... 直接执行代码不行,那么就写入代码吧,用file_put ...

  9. Consider defining a bean named 'authenticator' in your configuration.

    SpringBoot整合Shiro时出错: 异常日志: o.s.b.d.LoggingFailureAnalysisReporter: *************************** APPL ...

  10. PHP session反序列化

    先来了解一下关于session的一些基础知识 什么是session 在计算机中,尤其是在网络应用中,称为“会话控制”.Session 对象存储特定用户会话所需的属性及配置信息.这样,当用户在应用程序的 ...