zoukankan      html  css  js  c++  java
  • 创建表

    表是数据库储存数据的基本单位。一个表包含若干个字段或记录。表的操作包括创建新表、修改表、删除表。

    1、创建表

    1.1 创建表的语法形式:

    CREATE  TABLE  表名  (属性名 数据类型  [完整性约束条件],

         属性名 数据类型  [完整性约束条件],

         ....

         属性名 数据类型

       ;

    其中,表名 参数表示所要创建的表的名称;属性名 参数表示表中字段的名称;数据类型 参数指定字段的数据类型;完整性约束条件 参数指定字段的某些特殊约束条件。

    在创建表时,首先要使用USE语句选择数据库,如: mysql> USE test1; 选择数据库test1

    表名不能为SQL语句的关键字,如createupdataorder等都不能做表名,一个表中可以有一个或多个属性,定义时,字母大小写均可,各属性之间用逗号隔开,最后一个属性不需要加逗号。

    mysql> CREATE TABLE example0(id INT,name VARCHAR(20),sex BOOLEAN);

    example0 表包含3个字段。其中,id 字段是整型;name 字段是字符串型;sex 字段是布尔型。

    mysql> SHOW TABLES; 查询表

    完整性约束条件是对字段进行限制。要求用户对该属性进行的操作符合特定的要求。如果不满足完整性约束条件,数据库系统将不执行用户的操作。其目的是为了保证数据库中数据的完整性。MySQL中基本的完整性约束条件如表1.1

    1.1 完整性约束条件表

    约束条件

    说明

    PRIMARY  KEY

    标识该属性为该表的主键,可以唯一的标识对应的元组

    FOREIGN KEY

    标识该属性为该表的外键,是与之联系的某表的主键

    NOT NULL

    标识该属性不能为空

    UNIQUE

    标识该属性的值是唯一的

    AUTO_INCREMENT

    标识该属性的值自动增加,这 是MySQLSQL语句的特色

    DEFAULT

    为该属性设置默认值

    1.2 设置表的主键

    主键是表的一个特殊字段。该字段能唯一地标识该表中的每条信息。设置表的主键指在创建表时设置表的某个字段为该表的主键。帮助MySQL快速查找到表中的某条信息,主键必须是唯一的,任意两条记录的主键字段的值不能相同;主键的值是非空值,可以是单一的字段,也可以是多个字段的组合。

    1.2.1 单字段主键

    主键由一个字段构成时,可以直接在该字段的后面加上PRIMARY KEY来设置主键。

    语法规则: 属性名  数据类型  PRIMARY KEY  其中, 属性名 参数表示表中字段的名称;数据类型 参数指定字段的数据类型。

    mysql> CREATE TABLE example1(stu_id INT PRIMARY KEY,

        -> stu_name VARCHAR(20),

        -> stu_sex BOOLEAN

        -> );

    example1 表中包含了3个字段。stu_id 字段是整形;stu_name 字段是字符串型;stu_sex 字段是布尔型。其中stu_id 字段是主键。

    1.2.2 多字段主键

    主键是由多个属性组合而成时,在属性定义完之后统一设置主键。

    语法规则: PRIMARY KEY(属性名1,属性名2......,属性名n)

    mysql> CREATE TABLE example2(stu_id INT,

        -> course_id INT,

        -> grade FLOAT,

        -> PRIMARY KEY(stu_id,course_id)                                                            

        -> );

    example2 表中包含3个字段。其中stu_idcourse_id两个字段为主键。stu_idcourse_id两者的组合可以确定唯一的一条记录。

    1.3 设置表的外键

    外键是表的一个特殊字段。如果字段sno是一个表A的属性,且依赖于表B的主键,数据类型必须一致。那么,称表B为父表,表A为子表,sno为表A的外键。通过sno字段将父表B和子表A建立关联关系。设置表的外键指在创建表设置某个字段为外键。

    设置外键的原则就是必须依赖于数据库已存在的父表的主键;外键可以为空值。外键的作用是建立该表与父表的关联关系,父表中删除某条信息时,子表中与之对应的信息也必须有相应的改变。 语法规则:

     CONSTRAINT 外键别名 FOREIGN KEY(属性1.1,属性1.2,......属性1.n)

    REFERENCES  表名(属性2.1,属性2.2,......属性2.n)

    其中,"外键别名"参数是为外键的代号;"属性1"参数列表是子表中设置的外键;"表名"参数是指父表的名称;"属性2"参数列表是父表的主键。

    mysql> 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表中包含3个字段。其中,id字段是主键;stu_idcourse_id字段为外键;c_fk是外键的别名;example2表称为example3表的父表;example3表的外键依赖于父表example2的主键stu_idcourse_id

    1.4 设置表的非空约束

    非空性是指字段的值不能为空值(NULL)。非空约束保证所有记录中该字段都有值,如插入记录的id字段的值为空,将不能插入并报错。

    基本语法: 属性名  数据类型  NOT NULL

    mysql> CREATE TABLE example4(id INT  NOT NULL  PRIMARY KEY,

        -> name VARCHAR(20)  NOT NULL,

        -> stu_id INT,

        -> CONSTRAINT d_fk FOREIGN KEY(stu_id)

        -> REFERENCES example1(stu_id)

        -> );

    example4表中包含3个字段。其中,id 字段为主键;idname字段为非空字段;stu_id字段为外键;d_fk为外键别名;example1表为example4表的父表;example4的外键依赖于父表的主键stu_id

    1.5 设置表的唯一性约束

    唯一性是指所有记录中该字段的值不能重复出现,设置表的唯一性约束是指在创建表时,为表的某些特殊字段加上UNIQUE约束条件。

    基本语法: 属性名  数据类型  UNIQUE

    mysql> CREATE TABLE example5(id INT PRIMARY KEY,

        -> stu_id INT UNIQUE,

        -> name VARCHAR(20) NOT NULL

        -> );

    example5表中包含3个字段。其中,id字段为主键;stu_id字段为唯一值;name字段为非空字段。

    1.6 设置表的属性值自动增加

    AUTO_INCREMENT MySQL数据库中一个特殊的约束条件。其主要用于为表中插入的新记录自动生成唯一的ID。一个表只能有一个字段使用AUTO_INCREMENT约束,且该字段必须为主键的一部分。AUTO_INCREMENT 约束的字段可以是任何整数类型(TINYINTSMALLINTINT BIGINT)。默认情况下,该字段的值是从 1 开始自增。如果第一记录设置了该字段的初值,那么从初值开始自增。

    基本语法: 属性名  数据类型  AUTO_INCREMENT

    mysql> CREATE TABLE example6(id INT   PRIMARY KEY  AUTO_INCREMENT,

        -> stu_id  INT  UNIQUE,

        -> name VARCHAR(20)  NOT NULL

        -> );

    example6表中包含3个字段。其中,id字段为主键,且每插入一条新纪录id的值会自动增加1stu_id字段为唯一值,该字段值不能重复;name字段为非空字段,该字段的值不能为空值(NULL)

    1.7 设置表的属性默认值

    在创建表时可以指定表中字段的默认值。如果插入一条新的记录时没有为这个字段赋值,那么数据库系统会自动为这个字段插入默认值。默认值是通过DEFAULT关键字来设置的。

    基本语法: 属性名  数据类型  DEFAULT 默认值

    mysql> CREATE TABLE example7(id INT PRIMARY KEY  AUTO_INCREMENT,

        -> stu_id  INT UNIQUE,

        -> name VARCHAR(20) NOT NULL,

        -> English VARCHAR(20) DEFAULT 'zero',

        -> Math FLOAT DEFAULT 0,

        -> Computer FLOAT DEFAULT 0

        -> );

     example7表中包含6个字段。其中,id字段为主键,且每插入一条新纪录 id 的值就会自动增加;stu_id 字段为唯一值,该字段的值不能重复;name 字段为非空字段,该字段的值不能为空值(NULL)English 字段的默认值为zeroMath 字段和Computer 字段默认值为 0。如果没有使用DEFAULT 关键字指定字段的默认值,也没有指定字段为非空,那么字段的默认值为空(NULL)

     

     

     

     

     

  • 相关阅读:
    Azure 中 Linux 虚拟机的大小
    排查在 Azure 中创建、重启 Linux VM 或调整其大小时发生的分配故障
    如何在 Azure 中的 Linux 经典虚拟机上设置终结点
    针对通过 SSH 连接到 Azure Linux VM 时发生的失败、错误或被拒绝问题进行故障排除
    Linux 内核超时导致虚拟机无法正常启动
    Java并发编程(十三)同步容器类
    可以开发着玩一下的web项目
    org.tmatesoft.svn.core.SVNCancelException: svn: E200015: authentication canc
    FastDFS单机搭建以及java客户端Demo
    做前端(单纯页面和js)遇到的问题辑录(一)
  • 原文地址:https://www.cnblogs.com/uphold/p/11221234.html
Copyright © 2011-2022 走看看