Mysql学习2——创建数据表


 


 创建数据表


   在Mysql中,创建数据表通过SQL语句CREATE TABLE实现:


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


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


                                               、、、、、


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


                                           );


        “表名”为要创建数据表的名字,“属性名”参数表示表中字段的名称,“数据类型”参数指定字段的数据类型。


注意:在创建数据表之前必须先用USE语句选择 数据库,格式为;USE 数据库名


     实例1:


[sql]  

CREATE TABLE example(id    INT,      

 

                       name  VARCHAR(20),    

 

                       sex   BOOLEAN     

 

                       );


    设置表的主键


    1、单字段主键


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


       属性名  数据类型 PRIMARY KEY


    实例2: 


[sql]   

 

  CREATE TABLE example1(stu_id    INT PRIMARY KEY,   

 

                        stu_name  VARCHAR(20),   

 

                        stu_sex   BOOLEAN   

 

                       );


   2、多字段主键


     主键是由多个属性组合而成的,在属性定义完之后统一设置主键,如下:


     实例3:

[sql]   

 

  CREATE TABLE example2(stu_id INT,   

 

                        course_id INT,   

 

                        grade FLOAT,   

 

                        PRIMARY KEY(stu_id, course_id)   

 

                       );

   3、设置表的外键


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


      设置外键的基本语法为:


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


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


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


      实例4:   


[sql]   

 

  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)   

 

                       );


      解释:id字段为主键,stu_id和course_id字段为外键,c_fk为外键别名,example2表成为example3表的父表,example3中的stu_id和course_id字段依赖example2表中的相应字段。


   4、设置表的非空约束


     设置表的的非空约束是指在创建表的时候为表中的某些特殊字段加上NOT NULL 约束条件,基本语法为:


     属性名 数据类型 NOT NULL


     实例5:


[sql]   

 

  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)    

 

                       );

   5、设置表的唯一性约束


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


      属性名 数据类型 UNIQUE


     实例6:


[sql]   

 

  CREATE TABLE example5(id INT PRIMARY KEY,   

 

                        stu_id INT UNIQUE,   

 

                        name VARCHAR(20) NOT NULL   

 

                       );


   6、设置表的的属性值自动增加


      AUTO_INCREMENT是My sql数据库中一个特殊的约束条件。其主要用于为表中插入的新记录自动生成唯一的ID。一个表只能只能有一个字段使用AUTO_INCREMENT约束,且该字段必须为主键的一部分。默认情况下,该字段的值是从1开始自增。基本语法为:


      属性名 数据类型 AUTO_INCREMENT


     实例7:

[sql]   

 

  CREATE TABLE example6(id INT PRIMARY KEY AUTO_INCREMENT,   

 

                        stu_id INT UNIQUE,   

 

                        name VARCHAR(20) NOT NULL   

 

                       );


  7、设置表的属性的默认值


     默认值是通过DEFAULT关键字来设置的。基本语法为:


     属性名 数据类型 DEFAULT 默认值


     实例8:


[sql]  

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   

 

                       );