MySQL-创建表及其约束

CREATE TABLE [tb_name];

1、创建表的主键约束:主键是唯一标识某字段的作用,当该字段为主键的时候,其值必须是唯一的,且不能为空。
mysql>CREATE TABLE student(id INT PRIMARY KEY,
                                                 stu_id INT,
                                                 course_id INT);id为主键,所有字段都为整数

mysql>CREATE TABLE student (id INT PRIMARY KEY,
                                                   stu_id INT,
                                                   course_id INT,
                                                   PRIMARY KEY(id,stu_id)
                                                   );  id和stu_id成为主键,两者的组合唯一标识一条记录

2、创建表的外键约束(CONSTRAINT:外键别名;FOREIGN KEY:外键字段;REFERENCES 父表):外键是和另外一个表关联其来的作用,外键必须是另一表的主键,外键可以为空。
mysql>CREATE TABLE student (id INT PRIMARY KEY,
                                                   stu_id INT,
                                                   course_id INT,
                                                   CONSTRAINT c_fk FOREIGN KEY(stu_id,course_id)
                                                   REFERENCES example2(stu_id,course)
                                                    );表student的stu_id,course_id为外键,外键到example2表的stu_id,course_id主键。example2是student的父表。子表的外键关联的必须是父表的主键。而且,数据类型必须一致。

3、设置表的非空约束(NOT NULL):定义字段值不能为空
mysql>CREATE TABLE student(id INT NOT NULL PRIMARY KEY,
                                                  name VARCHAR(20) NOT NULL,
                                                  stu_id INT,
                                                  CONSTRAINT e_fk FOREIGN KEY(stu_id)
                                                  REFERENCES example1(stu_id)
                                                   ); id为主键,NOT NULL定义id和stu_id为非空约束;CONSTRAINT定义外键别名,FOREIGN KEY定义外键字段,REFERENCES定义父表;

4、设置表的唯一约束(UNIQUE):定义字段值唯一。
mysq>CREATE TABLE student(id INT NOT NULL PRIMARY KEY,
                                                 name VARCHAR(20) NOT NULL,
                                                 stu_id INT UNIQUE,
                                                 sex CHAR(6),
                                                 CONSTRAINT e_fk FOREIGN KEY(sex)
                                                 REFERENCES example2(sex),
                                                 );id为主键且不能为空;name为字符串类型且不能为空;sut_id为整形且只能唯一;sex为字符串且是外键,example2为student父键。

5、设置表的属性值自动增加:数字自动增长(AUTO_INCREMENT)
mysql>CREATE TABLE student(id INT PRIMARY KEY AUTO_INCREMENT,
                                                  name VARCHAR(20) NOT NULL,
                                                  stu_id UNIQUE AUTO_INCREMENT,
                                                  sex CHAR(6) ,
                                                  CONSTRAINT e_fk FOREIGN KEY(sex)
                                                  REFERENCES example2(sex),
                                                   );id为主键且自动增长不能为空,Name为字符串不能为空,stu_id是唯一键自动增长,sex是外键,example2是student的父表。

6、设置表属性的默认值(如果插入一条新的记录没有为这个字段赋值,那么数据库系统会自动为这个字段插入默认值):DEFAULT
mysql>CREATE TABLE student(id INT PRIMARY KEY AUTO_INCREMENT,
                                                  name CHAR(20) NOT NULL,
                                                  stu_id UNIQUE INT AUTO_INCREMENT,
                                                  sex CHAR(6) DEFALUT ‘man‘,
                                                   );id为自动增长整数类型,且是主键;name为字符类型,不能为空;stu_id是唯一键自动增长;sex的默认值是man。

时间: 2024-10-27 22:48:19

MySQL-创建表及其约束的相关文章

(转)mysql创建表时反引号的作用

(转)mysql创建表时反引号的作用 试用navicat工具查看现网mysql建表语句时,发现表名和字段名都是反引号引起来的 1 2 3 4 5 6 7 8 9 10 11 CREATE TABLE `tab_notice_title_tv` (   `i_id` int(11) NOT NULL AUTO_INCREMENT,   `c_opcom_key` varchar(32) DEFAULT NULL,   `c_view_type` int(11) DEFAULT '1' COMMEN

MySQL 创建表时,设置时间字段自己主动插入当前时间

MySQL 创建表时,设置时间字段自己主动插入当前时间 DROP TABLE IF EXISTS `CONTENT`; CREATE TABLE `CONTENT` ( `ID` char(20) NOT NULL, `CURRENT_TIME` timestamp not null default current_timestamp, PRIMARY KEY (`ID`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

MySQL创建表和删除表

创建表 简单的方式 CREATE TABLE person ( number INT(11), name VARCHAR(255), birthday DATE ); 或者是 CREATE TABLE IF NOT EXISTS person ( number INT(11), name VARCHAR(255), birthday DATE ); 查看mysql创建表: SHOW CREATE table person; CREATE TABLE `person` ( `number` int

oracle与mysql创建表时的区别

oracle创建表时,不支持在建表时同时增加字段注释.故采用以下方式: #创建表CREATE TABLE predict_data as ( id integer NOT NULL, uid varchar2(80), mid varchar2(80), time date , content varchar2(300), constraint predict_data primary key (id) );#字段注释comment on table predict_data is '预测表';

MySQL 创建表时,设置时间字段自动插入当前时间

MySQL 创建表时,设置时间字段自动插入当前时间 DROP TABLE IF EXISTS `CONTENT`; CREATE TABLE `CONTENT` ( `ID` char(20) NOT NULL, `CURRENT_TIME` timestamp not null default current_timestamp, PRIMARY KEY (`ID`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

Python MySQL 创建表

章节 Python MySQL 入门 Python MySQL 创建数据库 Python MySQL 创建表 Python MySQL 插入表 Python MySQL Select Python MySQL Where Python MySQL Order By Python MySQL Delete Python MySQL 删除表 Python MySQL Update Python MySQL Limit Python MySQL Join 创建表 要在MySQL中创建表,可使用"CRE

mysql创建表分区

MySQL创建表分区 create table erp_bill_index( id int primary key auto_increment, addtime datetime ); insert into erp_bill_index(addtime) values ('2018-02-01 12:00:00'), ('2018-03-01 12:00:00'), ('2018-04-01 12:00:00'), ('2018-05-01 12:00:00'), ('2018-06-01

MySQL创建表的语句

1 show variables like 'character_set_client';#查询字符集 2 show databases;#列出所有的服务器上的数据库alter 3 create database if not exists test;#创建一个数据库 4 drop database fk;#删除数据库 5 show tables from test;#显示一个数据库中的表 6 use test; 7 8 create table tb_dept( 9 Id int primar

转载 MySQL创建表的语句 示例

show variables like 'character_set_client';#查询字符集 show databases;#列出所有的服务器上的数据库alter create database if not exists test;#创建一个数据库 drop database fk;#删除数据库 show tables from test;#显示一个数据库中的表 use test; create table tb_dept( Id int primary key auto_increme

MySQL之表的约束

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