[Mysql] 的创建

1.创建表

创建表的作用在于指定表字段的类型+属性(约束)

创建表使用CREATE TABLE关键字进行操作

    语法结构

    CREATE TABLE 表名(

            字段名   数据类型   属性/约束,

            …

            字段名   数据类型   属性/约束,

            [PRIMARY KEY(字段名)]

注意

1.表名和字段名需唯一

2.属性/约束中,默认允许设置NULL

    理解NULL

    NULL不等于空串,空串是有效值

    不要把NULL值与空串相混淆。NULL值是没有值,它不是空串。如果指定”(两个单引号,其间没有字符),这在NOT NULL列中是允许的。空串是一个有效的值,它不是无值。NULL值用关键字NULL而不是空串指定

3.属性/约束中,默认值DEFAULT设置必须是常数,不允许使用函数作为默认值 

4.属性/约束AUTO_INCREMENT

每个表只允许一个AUTO_INCREMENT列

    CREATE TABLE customers

    (

      cust_id int  NOT NULL   AUTO_INCREMENT,

      cust_name  char(50)  NOT NULL,

      cust_address  char(50)  NULL,

      cust_city  char(50)  NULL,

                      …..

      PRIMARY KEY(cust_id)

    );

AUTO_INCREMENT告诉Mysql,本列每当增加一行记录时进行自动增量。每次执行一个INSERT操作,Mysql自动对该列增量,给该列赋予下一个可用的值。这样给每个行分配一个唯一的cust_id,从而可以用作主键值

例:在test数据库中创建pet表

    CREATE TABLE pet
    ( 
      id int NOT NULL  AUTO_INCREMENT,
      name VARCHAR(225) NOT NULL,
      owner VARCHAR(225) DEFAULT ‘Odin’,
      species VARCHAR(225),
      sex CHAR(1),
      birth DATE,
      death DATE,
      PRIMARY KEY(id)
    );
在创建新表时,指定的表名必须不存在,否则将出错。如果要防止意外覆盖已有的表,SQL要求首先手动删除该表,然后再重建它,而不是简单地用创建表语句覆盖它。如果仅想在一个表不存在时创建它,应该在表名后给出IF NOT EXISTS,它不检查已有表的模式是否与你打算创建的表模式相匹配。它只是查看表名是否存在,并且仅在表名不存在时创建它

0

评论0

请先
显示验证码
没有账号?注册  忘记密码?