计算机网络/计算机科学与应用/系统/运维/开发

MySQL【基础】创建数据表

一、创建数据表

创建数据表之前,先选择数据库:

USE  <数据库名称>


1、创建表基本形式

先选择数据库 USE <数据库名称>


CREATE  TABLE <表名称>

(

字段名1,数据类型 [列级别约束条件] [默认值],

字段名2,数据类型 [列级别约束条件] [默认值],

.....

[表级别约束条件]

);


创建表时注意事项:

a、表名称不区分大小写 不能使用sql关键字 如drop alter  insert等

b、每一列名称和数据类型 如果要创建多个列用逗号隔开


例如:

USE test_db; CREATE TABLE tb_emp1 (     
    id INT(11),     
    name VARCHAR(25),     
    deptId INT(11),     
    salary FLOAT 
    );

查看数据表是否创建成功 SHOW  TABLES;


2、使用主键约束

主键(primary key constraint) 

主键列数据唯一  不允许为空

主键分为2种类型:单字段主键和多字段主键


2-1、单字段主键

单字段主键由一个字段组成,也分为2种情况:

a. 定义列的同时指定主键

字段名 数据类型  PRIMARY  KEY  [默认值]


例如:

CREATE TABLE  tb_emp2 (     
    id  INT(11)  PRIMARY KEY, /*定义主键*/     
    name VARCHAR(25),     
    deptId INT(11),     
    salary FLAOT 
   );


b.在定义完所有列之后指定主键

[CONSTRAINT <约束名>]  PRIMARY KEY [字段名]

例如:

CREATE  TABLE tb_emp3 (     
    id INT(11),     
    name VARCHAR(25),     
    deptId INT(11),     
    salary FLOAT,     
    PRIMARY KEY(id) /*定义主键*/ 
    );

2-2、多字段联合主键

PRIMARY KEY [字段1,字段2,...字段n]

主键由多个字段联合组成

PRIMARY KEY [字段1,字段2...字段n]


CREATE TABLE tb_emp4 (     
    name VARCHAR(25),     
    deptId INT(11),     
    salary FLOAT,     
    PRIMARY KEY(name,deptId) /*多字段联合主键*/ 
    );

3、使用外键约束

[CONSTRAINT <外键名>] FOREIGN  KEY 字段名1 [字段名2,...]

REFERENCES  <主键名>  主键列 [,主键列2,...]


例如:

CREATE  TABLE  tb_dept1 ( 
    id INT(11) PRIMARY KEY, 
    name VARCHAR(22) NOT NULL, 
    location VARCHAR(50) 
    ); 
    
CREATE TABLE tb_dept5 ( 
    id INT(11) PRIMARY KEY, 
    name VARCHAR(25), 
    deptId INT(11), 
    salary FLOAT, 
    CONSTRAINT fk_emp_detp1 FOREIGN KEY(deptId) REFERENCES tb_dept1(id) 
    );


4、非空约束

非空约束(not null  constraint) 指字段的值不能为空

如果用户在添加时没有指定值  数据库系统会报错

字段名  数据类型  not null 


CREATE  TABLE tb_emp6(     
    id INT(11) PRIMARY KEY,     
    name VARCHAR(25) NOT NULL, /*非空约束*/     
    deptId INT(11),     
    salary FLOAT  
    );


5、使用唯一约束

唯一约束(Unique Constraint)要求该列唯一,允许为空,但只能出现一个空值,唯一约束可以确保一列或者几列不出现重复值。

5-1、在定义完列之后直接指定唯一约束

字段名  数据类型 UNIQUE

# 使用唯一性约束 
CREATE  TABLE tb_dept2 (     
    id INT(11)  PRIMARY KEY,     
    name VARCHAR(22) UNIQUE,/*唯一约束*/     
    location VARCHAR(50) 
   );


5-2、在定义完所有列之后指定唯一约束

[CONSTRAINT <约束名>]  UNIQUE  (<字段名>)

CREATE TABLE tb_dept3(     
    id INT(11) PRIMARY KEY,     
    name VARCHAR(22),     
    location VARCHAR(50),     
    CONSTRAINT STH UNIQUE(name) /*唯一约束*/ 
   );


UNIQUE 和PRIMARY KEY 区别:

一个表中可以有多个字段声明为UNIQUE  但只能有一个PRIMARY KEY 声明

声明为PRIMARY KEY的列不允许为空值

但声明为UNIQUE 的字段允许空值(NULL)的存在


6、使用默认约束

Default Constraint 指定某列的默认值,

字段名  数据类型 DEFAULT  默认值

#  使用默认约束 
CREATE  TABLE  tb_emp7(     
    id INT(11) PRIMARY KEY,     
    name VARCHAR(25) NOT NULL,     
    deptId INT(11) DEFAULT 1111, /*默认约束*/     
    salary FLOAT 
    );


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

AUTO_INCREMENT  初始值为1  

每次新增一条 字段值就增加1   一个表中只能有一个字段使用该值 该字段必须为主键的一部分  可以是任意类型(TINYINT SMALLIN  INT BIGINT )

字段名  数据类型 AUTO_INCREMENT 

#  设置表的属性自动增加

CREATE  TABLE  tb_emp8(     
    id INT(11) PRIMARY KEY AUTO_INCREMENT, /*表属性自动增加*/     
    name VARCHAR(25) NOT NULL,     
    deptId INT(11),     
    salary FLAOT 
    );



mysql

只有惜缘,才有缘分;只有惜友,才有友谊。

评论

^