`
time心语13
  • 浏览: 4283 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论
  • zuozhimin: 燕喜,你这段时间成长很快,学习上我们都看到了你的努力!继续保持 ...
    心有所感

MySQL建表,主键,外键

阅读更多

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。
注意:子表的外键关联必须是父表的主键。而且,数据类型必须是一致。

 

分享到:
评论

相关推荐

    java实体转mysql建表语句

    为了从Java实体类自动生成MySQL建表语句,开发者可以使用一些工具或库,如`JPA`的`Metamodel`API,或者开源项目如`MyBatis Generator`。这些工具能够解析Java源代码,从中提取实体类信息并生成相应的SQL语句。 4. ...

    Mysql增加外键的方法

    在MySQL数据库中,可以通过特定的语法结构来增加外键,即便在建表时未设置外键也能在之后进行添加。本文详细介绍了在MySQL中增加外键的方法,并提供了使用PHPMyAdmin管理工具和SQL语句来实现外键添加的操作步骤和...

    MySql建表规范与说明.docx

    MySql 建表规范详解 在关系型数据库中,建表是非常重要的一步。一个良好的建表规范可以提高数据库的性能,减少维护成本和改错的可能性。下面我们将详细介绍 MySql 建表规范和示例建表。 一、关系型数据库 关系型...

    Mysql转oracle工具

    MySQL与Oracle的索引类型和约束定义(如主键、外键)也有所不同,转换时需要注意。 6. **存储过程和函数**: MySQL和Oracle的存储过程和函数语法有较大差异,需要逐个转换。例如,Oracle支持PL/SQL,而MySQL支持...

    Mysql的表对象Sql语句转换单表,转换成Oracle创建表sql

    这包括表的名称、列名、数据类型、主键、外键、索引、约束等。 2. **SQL语法差异**:MySQL与Oracle之间的主要语法差异包括: - 数据类型:例如,MySQL的`VARCHAR2`在Oracle中是`VARCHAR2`,但MySQL的`TINYINT`对应...

    mysql建表语句学习

    本篇文章将深入探讨MySQL建表语句及其相关知识点。 1. **CREATE TABLE 语句的基本语法** `CREATE TABLE`语句用于创建新的数据表。其基本语法如下: ```sql CREATE TABLE table_name ( column_name1 column_...

    mysql建表字段,相关内容 MySQL学习练习

    在"mysqllearn-master"这个项目中,你可能会找到关于这些概念的实际示例和练习,通过实践加深对MySQL建表字段和相关概念的理解。通过编写和执行SQL脚本,你可以亲手创建表,体验这些特性在实际应用中的效果。此外,...

    MySQL建表的规范总结.pdf

    以下是对“MySQL建表的规范总结.pdf”中提到的关键点的详细解释: **设计表规范** 1. **字段非空和默认值**:创建表时,为确保数据完整性,字段应尽可能设置为非空(NOT NULL),并设定默认值。这样可以避免插入...

    MySQL建表的规范总结[归类].pdf

    以下是对MySQL建表和索引使用规范的详细说明: **一、设计表规范** 1. **非空约束与默认值**:在创建表时,为确保数据完整性,字段应尽可能设置为非空(NOT NULL)。若允许字段为空,应提供默认值,以防止插入空值...

    Mysql建表与索引使用规范详解

    MySQL数据库在设计和优化中,建表和索引的使用规范是至关重要的,它们直接影响到数据存储的效率和查询性能。以下是对这些规范的详细解释: 1. **字段设置**: - **非空约束**:在创建表时,推荐为字段设置非空约束...

    mysql建表语句.docx

    - **外键约束**(FOREIGN KEY):用于关联两个表,确保数据的一致性,例如 `FOREIGN KEY (student_id) REFERENCES students(id)`。 - **检查约束**(CHECK):检查列的值是否满足特定条件,但 MySQL 不直接支持此...

    mysql添加外键的四种方式

    外键约束允许一个表中的字段引用另一个表中的主键,这样就形成了表与表之间的联系。以下将详细介绍四种在MySQL中添加外键的方法。 1. **建表时直接使用 FOREIGN KEY** 当创建新表时,可以直接在CREATE TABLE语句中...

    MySQL 建表的优化策略 小结

    MySQL数据库建表的优化...总的来说,MySQL建表优化策略涉及字符集选择、主键与外键设计、索引管理、特殊字段处理等多个方面。在实践中,应综合考虑数据量、查询模式、更新频率等因素,做出最适合当前业务需求的决策。

    mysql sql建表脚本

    在本场景中,"mysql sql建表脚本"是指使用SQL语句来创建一个新的数据库表,这里具体指的是名为"usertable"的表格。下面我们将深入探讨如何使用SQL来构建这样的表以及相关的知识点。 首先,创建表的基本SQL语句结构...

    MySQL常用的建表、添加字段、修改字段、添加索引SQL语句写法总结

    以下是对MySQL常用建表、添加字段、修改字段和添加索引的SQL语句的详细说明: 1. **建表**: - `DROP TABLE IF EXISTS bulletin;`:如果存在名为`bulletin`的表,则先删除。 - `CREATE TABLE bulletin(`...`)`: ...

    sql外键的建立文档

    假设我们有两张表A和B,A表为主表,B表为从表,A的主键是`a_num`,B的主键也是`b_num`,同时B表的`a_num`字段作为外键引用A的`a_num`。创建这两张表的SQL语句如下: ```sql create table A ( a_num int primary...

    省市县三级联动(部分)

    每个表都有自己的主键,如省ID、市ID和县ID,同时,下级表会包含上级表的ID作为外键,形成关联关系。例如,市表中的省ID对应省表的主键,县表中的市ID对应市表的主键。这种设计使得我们可以通过省ID快速找到对应的市...

Global site tag (gtag.js) - Google Analytics