MySQL.常见表选项及约束

1.create table 选项

  1.指定列选项 default、comment

  2.指定表选项 engine、auto_increment、comment

2.create table 约束

  1.非空约束:not null

  2.唯一约束:unique

  3.主键约束: primary key

  4.外键:      foreign key

  5.检查enum、set:chect

一、create table 选项

 a. 定义列的时候,指定列选项

  1.default<literal>:定义列的默认值

   当插入一个新行到表中并且没有给该列明确赋值,如果定义了列的默认值,将自动得到默认值,如果没有,则为null

   也可以在insert和 update 语句中使用 default 关键字给默认值赋值,函数default(column)也得到一个列的默认值

  2.comment 用来给列添加注释,最多为255个字符,注释将会保存在数据字典中

  b.  在create table 语句中的表选项

   1.engine :指定表使用的储存引擎    #储存引擎:决定了表中的数据如何存储以及如何访问,还有事务如何处理

                      MySQL中允许对每个表使用不同的储存引擎,如果在create table 中没有使用储存引擎,则使用默认的储存引擎。

      MySQL > show engines     #查询所有支持的储存引擎

      (储存引擎是重点)

   2.auto_increment :决定当前表中插入第一行时,自增列得到的第一个值是多少

   3.comment:给表添加注释

二、create table 约束

  作用:可以为列定义约束(constraint)

  约束主要是防止非法数据进入表中,确保数据的正确性和一致性(统称数据完整性)

  约束也可以防止一个表被删除

注意:1.MySQL中约束保存在表中,可以通过表查询约束信息

   2.进行约束的时间:使用create table语句、使用alter table语句

常见的约束类型有5种:1.not null    非空约束,指定某列不能为空

            2.unique     唯一约束,指定某列和几列组合的数据不能重复

            3.primary key  主键约束,指定某列的数据不能重复、唯一

            4.foreign key   外键,指定该列记录属于主表中的一条记录,参照另一条数据

            5.check      检查,指定一个表达式,用于检查指定数据

    注意:1.not null 约束只能在列级别定义,作用在多个列上约束只能定义在表级别,例如复合主键约束

       2.列级别上不能定义外键约束,并且不能给约束起名字,有MySQL自动命名(not null除外)

·        3.表级别上定义的约束可以给约束起名字(check除外)

  1.not null    非空约束

   作用:确保当前列的值不能为空

     注意:非空约束只能出现在表对象的列上

  2.

原文地址:https://www.cnblogs.com/jacky912/p/10320970.html

时间: 2024-08-02 07:35:46

MySQL.常见表选项及约束的相关文章

MySQL常见建表选项及约束

一.CREATE TABLE 选项 1.在定义列的时候,指定列选项 1)DEFAULT <literal>:定义列的默认值 当插入一个新行到表中并且没有给该列明确赋值时,如果定义了列的默认值,将自动得到默认值 :如果没有,则为null. mysql> create table people                                                                      -> (    ->  id int not nu

mysql笔记--表级别的约束

表级别的约束 1. 主键约束----primary key 主键:表中一个列或者多个列的组合,要求该列的数据唯一 单字段主键:字段名 数据类型 属性 primary key 多字段主键:primary key (字段1,字段2) 主键列的值不能为空!!! 例子:创建一张员工表tb_emp1,以id为主键 create table tb_emp1(id int primary key,name varchar(25),deptid int,salary float);             创建

MySql 数据库表之间---&gt;&gt;&gt;增加约束

#1.向表emp2的id列中添加PRIMARY KEY约束(my_emp_id_pk) ALTER TABLE emp2 MODIFY COLUMN id INT PRIMARY KEY;ALTER TABLE emp2 ADD CONSTRAINT my_emp_id_pk PRIMARY KEY(id); #2. 向表dept2的id列中添加PRIMARY KEY约束(my_dept_id_pk) #3. 向表emp2中添加列dept_id,并在其中定义FOREIGN KEY约束,与之相关联

MySQL之表的约束

一 介绍 约束条件与数据类型的宽度一样,都是可选参数 作用:用于保证数据的完整性和一致性主要分为: PRIMARY KEY (PK) 标识该字段为该表的主键,可以唯一的标识记录 FOREIGN KEY (FK) 标识该字段为该表的外键 NOT NULL 标识该字段不能为空 UNIQUE KEY (UK) 标识该字段的值是唯一的 AUTO_INCREMENT 标识该字段的值自动增长(整数类型,而且为主键) DEFAULT 为该字段设置默认值 UNSIGNED 无符号 ZEROFILL 使用0填充

Mysql 常见数据类型及约束

Mysql 常见数据类型及约束 最近在跟几个不太懂技术的同事(哈哈, 其实我也不懂), 要整一个数据库项目, 然后前端, 后端, 都没有像样的, 数据输出还不是由我们控制.... 这可难受了, 然后总数被围绕着, 怎么导入数据, 导出EXCEL .... 之类的, 或者是说导入数据不方便, 怎么字段还要有类型.... 每至于此, 我其实内心是崩溃的, 但非常理解. 不理解, 还能怎么办呢.(当然, 开个玩笑) 这里引出一个问题, 为啥要舌设置类型以及约束? 因为数据类型影响着数据存储的资源占用空

MySql 常见约束

#常见约束 /* 含义:一种限制,用于限制表中的数据,为了保证表中的数据的准确和可靠性 分类:六大约束 NOT NULL:非空,用于保证该字段的值不能为空 比如姓名.学号等 DEFAULT:默认,用于保证该字段有默认值 比如性别 PRIMARY KEY:主键,用于保证该字段的值具有唯一性,并且非空 比如学号.员工编号等 UNIQUE:唯一,用于保证该字段的值具有唯一性,可以为空 比如座位号 CHECK:检查约束[mysql中不支持] 比如年龄.性别 FOREIGN KEY:外键,用于限制两个表的

mysql为表添加外键完成性约束 报错Can&#39;t create table &#39;sfkbbs.#sql-513_25&#39; (errno: 150)

代码 alter table sfk_son_module add constraint foreign key(father_module_id) references sfk_father_module(id) on delete restrict on update restrict; (constraint 后面可以加上约束名字) 错误原因是之前两张表的id的类型不一样,一个时int,一个时bigint 解决办法时修改表, alter table sfk_father_module mo

mysql中一些表选项

表选项列表 表选项就是,创建一个表的时候,对该表的整体设定,主要有如下几个: charset = 要使用的字符编码, engine = 要使用的存储引擎(也叫表类型), auto_increment = 设定当前表的自增长字段的初始值,默认是1 comment = '该表的一些说明文字' 说明: 1,设定的字符编码是为了跟数据库设定的不一样.如果一样,就不需要设定了:因为其会自动使用数据库级别的设定: 2,engine(存储引擎)在代码层面,就是一个名词:InnoDB, MyIsam, BDB,

MySQL多表查询之外键、表连接、子查询、索引

一.外键: 1.什么是外键 2.外键语法 3.外键的条件 4.添加外键 5.删除外键 1.什么是外键: 主键:是唯一标识一条记录,不能有重复的,不允许为空,用来保证数据完整性 外键:是另一表的主键, 外键可以有重复的, 可以是空值,用来和其他表建立联系用的.所以说,如果谈到了外键,一定是至少涉及到两张表.例如下面这两张表: 上面有两张表:部门表(dept).员工表(emp).Id=Dept_id,而Dept_id就是员工表中的外键:因为员工表中的员工需要知道自己属于哪个部门,就可以通过外键Dep