MySQL建表,主键,外键
2015-09-18 15:31
706 查看
1.创建表
MySql中,创建表是通过SQL语句create table实现的。语法形式如下:
create table 表名( 属性名 数据类型[完整性约束条件],
属性名 数据类型[完整性约束条件],
属性名 数据类型);
其中,“表名”参数表示要创建的表名称;“属性名”参数表示表中字段的名称;“数据类型”参数指定字段的数据类型;“完整性约束条件”参数指定字段的某些特殊约束条件。
示例:create table example0(id int,
name varchar(20),
sex boolean);
完整性约束条件
primary key 标识该属性为该表的主键,可以唯一的标识对应的元组
foreign key 标识该属性为该表的外键,是与之联系的某表的主键
not null 标识该属性不能为空
unique 标识该属性的值是唯一的
auto_increment 标识该属性的值自动增加
default 为该属性设置默认值
2.设置表的主键
主键是表的一个特殊字段,唯一的标识该表的每条信息。主键的主要目的是帮助MySQL以最快的速度查找到表中的某一条信息。主键必须满足的条件就是主键必须是唯一的,表中任意两条记录的主键字段的值不能相同;主键的值是非空值。主键可以是单一字段,也可以是多个字段的组合。
①单字段主键
语法: 属性名 数据类型 primary key
示例: create table example1(stu_id int primary key,
stu_name varchar(20),
stu_sex boolean);
②多字段主键
语法: primary key(属性名1,属性名2,...,属性名n)
示例: create table example1(stu_id int,
course_id int,
grade float,
primary key(stu_id,course_id));
3.设置表的外键
外键是表的一个特殊字段,如果字段sno是表A的一个属性,且依赖于表B的主键。那么,称表B为父表,表A为子表,sno为表A的外键。通过sno字段将父表B和子表A建立关联关系,设置表的外键旨在创建表设置某个字段为外键。
设置外键的原则就是必须依赖数据库中已存在的父表的主键;外键可以为空值。
外键的作用是建立该表与父表的关联关系。父表中删除某条信息时子表中与之对应的信息也必须有相应的改变。例如,stu_id是student表的主键,stu_id是grade表的外键。当stu_id为‘123’同学退学了,需要从student表中删除该学生的信息。那么,grade表中stu_id为‘123’的所有信息也应该同时删除。这样可以保证信息的完整性。
设置外键的规则:
constraint 外键别名 foreign key(属性1.1, 属性1.2, ..., 属性1.n)
peferences 表名(属性2.1, 属性2.2, ..., 属性2.n)
“外键别名”参数是为外键的代号;“属性1”桉树列表是子表中设置的外键;“表名”参数是指父表的名称;“属性2”参数列表是父表的主键。
示例:在example3表中设置stu_id和course_id为外键。与之相关联的是example2表中的主键stu_id和course_id。代码如下:
create table example3(id int primary key,
stu_id int,
course_id int,
constraint c_fk foreign key(stu_id,course_id)
references example2(stu_id,course_id)
);
example3表中包含三个字段,id是主键;stu_id和course_id字段为外键;c_fk是外键别名;example2表称为example3表的父表;example3表的外键依赖于父表example3的主键stu_id和couese_id。
注意:子表的外键关联必须是父表的主键。而且,数据类型必须是一致。
MySql中,创建表是通过SQL语句create table实现的。语法形式如下:
create table 表名( 属性名 数据类型[完整性约束条件],
属性名 数据类型[完整性约束条件],
伦理片 http://www.dotdy.com/
属性名 数据类型);其中,“表名”参数表示要创建的表名称;“属性名”参数表示表中字段的名称;“数据类型”参数指定字段的数据类型;“完整性约束条件”参数指定字段的某些特殊约束条件。
示例:create table example0(id int,
name varchar(20),
sex boolean);
完整性约束条件
primary key 标识该属性为该表的主键,可以唯一的标识对应的元组
foreign key 标识该属性为该表的外键,是与之联系的某表的主键
not null 标识该属性不能为空
unique 标识该属性的值是唯一的
auto_increment 标识该属性的值自动增加
default 为该属性设置默认值
2.设置表的主键
主键是表的一个特殊字段,唯一的标识该表的每条信息。主键的主要目的是帮助MySQL以最快的速度查找到表中的某一条信息。主键必须满足的条件就是主键必须是唯一的,表中任意两条记录的主键字段的值不能相同;主键的值是非空值。主键可以是单一字段,也可以是多个字段的组合。
①单字段主键
语法: 属性名 数据类型 primary key
示例: create table example1(stu_id int primary key,
stu_name varchar(20),
stu_sex boolean);
②多字段主键
语法: primary key(属性名1,属性名2,...,属性名n)
示例: create table example1(stu_id int,
course_id int,
grade float,
primary key(stu_id,course_id));
3.设置表的外键
外键是表的一个特殊字段,如果字段sno是表A的一个属性,且依赖于表B的主键。那么,称表B为父表,表A为子表,sno为表A的外键。通过sno字段将父表B和子表A建立关联关系,设置表的外键旨在创建表设置某个字段为外键。
设置外键的原则就是必须依赖数据库中已存在的父表的主键;外键可以为空值。
外键的作用是建立该表与父表的关联关系。父表中删除某条信息时子表中与之对应的信息也必须有相应的改变。例如,stu_id是student表的主键,stu_id是grade表的外键。当stu_id为‘123’同学退学了,需要从student表中删除该学生的信息。那么,grade表中stu_id为‘123’的所有信息也应该同时删除。这样可以保证信息的完整性。
设置外键的规则:
constraint 外键别名 foreign key(属性1.1, 属性1.2, ..., 属性1.n)
peferences 表名(属性2.1, 属性2.2, ..., 属性2.n)
“外键别名”参数是为外键的代号;“属性1”桉树列表是子表中设置的外键;“表名”参数是指父表的名称;“属性2”参数列表是父表的主键。
示例:在example3表中设置stu_id和course_id为外键。与之相关联的是example2表中的主键stu_id和course_id。代码如下:
create table example3(id int primary key,
stu_id int,
course_id int,
constraint c_fk foreign key(stu_id,course_id)
references example2(stu_id,course_id)
);
example3表中包含三个字段,id是主键;stu_id和course_id字段为外键;c_fk是外键别名;example2表称为example3表的父表;example3表的外键依赖于父表example3的主键stu_id和couese_id。
注意:子表的外键关联必须是父表的主键。而且,数据类型必须是一致。
相关文章推荐
- windows下mysql主从备份设置
- mysql存储图片方式小结
- mysql修复数据表
- MySQL索引与优化
- mysql数据库授权所有人
- 采用数据库连接池连接到mysql时,因应用中没有关闭ResultSet导致的memory leak问题
- 深入浅出Mysql(三)
- Powerdesigner关联Mysql数据库建表之真·详细步骤(有图)
- mysql ERROR 1045 (28000): Access denied for user的解决方法
- mysql性能优化-慢查询分析、优化索引和配置
- 批量修改数据库中某个字段里面的部分内容(mysql数据库replace的用法)
- Mysql 小结
- mysql知识点
- MYSQL简单安装配置
- MySQL创建用户与授权方法
- MySQL 数据库、表、表结构、导入导出等相关命令
- 1.添加mysql的jar包 2.加载JDBC驱动
- sql:MySQL 6.7 表,视图,存储过程结构查询
- 【mysql学习笔记】-检索数据基本用法
- mysql 添加时间戳