创建数据库表与约束.
- 格式:ppt
- 大小:676.50 KB
- 文档页数:37


mysql数据库建表语句
MySQL是一种常用的关系型数据库管理系统,用于存储和管理数据。在使用MySQL创建数据库时,建表语句是非常关键的一步,决定了表的结构和属性。下面将为您介绍一些常用的MySQL数据库建表语句。
1. 创建表的语法:
CREATE TABLE table_name (column1 datatype constraint,
column2 datatype constraint,
...
);
在这个语句中,table_name是您想要创建的表名,column是表的列名,datatype是列的数据类型,constraint是列的约束条件。
2. 数据类型:
在MySQL中,有多种数据类型可供选择,如下:
- 整数类型:INT、SMALLINT、TINYINT、MEDIUMINT、BIGINT;
- 浮点数类型:FLOAT、DOUBLE、DECIMAL;
- 字符串类型:CHAR、VARCHAR、TEXT;
- 日期和时间类型:DATE、TIME、DATETIME、TIMESTAMP。
3. 约束条件:
约束条件用于限制表中数据的合法性和完整性。以下是一些常用的约束条件:
- PRIMARY KEY:用于定义主键,保证每行数据的唯一性;
- FOREIGN KEY:用于定义外键,建立表与表之间的关联;
- NOT NULL:指定列的值不能为空;
- UNIQUE:保证列的值在表中的唯一性;
- DEFAULT:设置列的默认值。
4. 示例建表语句:
下面给出一个例子来演示如何使用MySQL建立一个学生表:
CREATE TABLE students (
sql操作数据库(3)--外键约束、数据库表之间的关系、三⼤范
式、多表查询、事务外键约束
在新表中添加外键约束语法: constraint 外键约束名称 foreign key(外键的字段名称) references 主表表名(主键字段名)
在已有表中添加外键约束:alter table 从表表名 add constraints 外键约束名称 foreign key(外键的字段名称) references 主表表名(主键
字段名)
删除外键语法: alter table 从表表名 drop foreign key 外键名称;级联操作:
注意:
在从表中,修改关联主表中不存在的数据,是不合法的
在主表中,删除从表中已经存在的主表信息,是不合法的。直接删除主表(从表中有记录数据关联) 会包删除失败。
概念: 在修改或者删除主表的主键时,同时它会更新或者删除从表中的外键值,这种 动作我们称之为级联操作。语法:
更新级联 on update cascade 级联更新 只能是创建表的时候创建级联关系。当更新主表中的主键,从表中的外键字段会同步更新。
删除级联 on delete cascade 级联删除 当删除主表中的主键时,从表中的含有该字段的记录值会同步删除。
操作:
-- 给从表student添加级联操作
create table student(
s_id int PRIMARY key ,
s_name VARCHAR(10) not null,
s_c_id int,
-- constraint 外键约束名称 foreign key(外键的字段名称) references 主表表名(主键字段名)
CONSTRAINT stu_cour_id FOREIGN key(s_c_id) REFERENCES course(c_id) -- 给s_c_id 添加外键约束
ON UPDATE CASCADE ON DELETE CASCADE
约束和约束关系阅读⽬录
约束
⼀ 介绍
约束条件与数据类型的宽度⼀样,都是可选参数
作⽤:⽤于保证数据的完整性和⼀致性
主要分为:
PRIMARY KEY (PK) 标识该字段为该表的主键,可以唯⼀的标识记录
FOREIGN KEY (FK) 标识该字段为该表的外键
NOT NULL 标识该字段不能为空
UNIQUE KEY (UK) 标识该字段的值是唯⼀的
AUTO_INCREMENT 标识该字段的值⾃动增长(整数类型,⽽且为主键)
DEFAULT 为该字段设置默认值
UNSIGNED ⽆符号
ZEROFILL 使⽤0填充
约束条件分类
1. 是否允许为空,默认NULL,可设置NOT NULL,字段不允许为空,必须赋值
2. 字段是否有默认值,缺省的默认值是NULL,如果插⼊记录时不给字段赋值,此字段使⽤默认值
sex enum('male','female') not null default 'male'
age int unsigned NOT NULL default 20 必须为正值(⽆符号) 不允许为空 默认是20
3. 是否是key
主键 primary key
外键 foreign key
索引 (index,unique...)
⼆ not null与default
是否可空,null表⽰空,⾮字符串
not null - 不可空
null - 可空
默认值,创建列时可以指定默认值,当插⼊数据时如果未主动设置,则⾃动添加默认值
create table tb1(
nid int not null defalut 2,
num int not null
);
先说⼀点:在我们插⼊数据的时候,可以这么写insert into tb1(nid,num) values(1,‘chao’);就是在插⼊输⼊的时候,指定字段插⼊数据,如果我在只给num插⼊值,可
以这样写insert into tb1(num) values('chao');还可以插⼊数据的时候,指定插⼊数据字段的顺序:把nid和num换个位置,但是对应插⼊的值也要换位置。注意:即便是你只给⼀个
oracle建表的时候同时创建主键,外键,注释,约束,索引
--主键create table emp (id number constraint id_pr primary key ,name1 varchar(8));create table emp9 (id number ,name1 varchar(8) ,constraint aba_pr primary key(id,name1));--外键create table emp1(id number references emp(id),name varchar(8));
--复合外键create table emp0(id number ,name varchar(8) ,constraint fk_nam1e foreign key(id,name) references emp9(id,name1));
--主键另外写法create table emp2(id number,name varchar(8),id1 number, constraint pk_id primary key(id),constraint fk_name foreign key(id1) references emp(id))--check 约束的写法create table emp4(id number check(id in(1,2 ,3)),name varchar(8));
不带约束名称的:create table userInfo (
id number(6) primary key,--主键
name varchar2(20) not null,--⾮空
sex number(1),
age number(3) default 18,
birthday date,
address varchar2(50),
email varchar2(25) unique,--唯⼀