mysql基础(2)——数据表的基本操作

来源:互联网 发布:金瑞期货软件 编辑:程序博客网 时间:2024/06/05 04:41

一、创建数据表

CREATE TABLE <表名>

(

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

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

       ......

       [表级别约束条件]

);

1、主键约束:

单字段主键:

在定义列的同时指定主键;

CREATE TABLE tp_emp1

(

       idINT(11) PRIMARY KEY,

       nameVARCHAR(25),

       deptIdINT(11),

       salaryFLOAT

);

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

CREATE TABLE tp_emp2

(

       idINT(11),

       nameVARCHAR(25),

       deptIdINT(11),

       salaryFLOAT,

       PRIMARYKEY(id)

);

多字段联合主键:

CREATE TABLE tp_emp3

(

       idINT(11),

       nameVARCHAR(25),

       deptIdINT(11),

       salaryFLOAT,

       PRIMARYKEY(name,deptId)

);

2、使用外键约束

外键用来在两个表的数据之间建立链接,它可以是一列或者多列。一个表可以有一个或多个外键。外键对应的是参照完整性,一个表的外键可以为空值,若不为空值,则每一个外键值必须等于另一个表中主键的某个值。

外键:首先它是表中的一个字段,它可以不是本表的主键,但对应另外一个表中的主键。

主表(父表):对于两个具有关联关系发的表而言,相关联字段中主键所在的那个表即是主表。

从表(子表):对于两个具有相关联关系的表而言,相关联字段中外键所在的那个表即是从表。

创建外键的语法规则:

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

CRE

CREATE TABLE dept

       idint(11) PRIMARY KEY, 

       namevarchar(22) NOT NULL, 

   location varchar(50), 

);

create table tp_emp4 

 ( 

       idint(11) PRIMARY KEY, 

   name varchar(25), 

    dept_idint(11), 

   salary float, 

   CONSTRAINT fk_emp_dept FOREIGN KEY(dept_id) REFERENCES dept(id) 

);

3、使用唯一性约束

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

语法规则:

在定义完列之后直接指定唯一约束

字段名 数据类型 UNIQUE

CREATE TABLE tb_dept2

       idint(11) PRIMARY KEY, 

       namevarchar(22) UNIQUE, 

   location varchar(50), 

);

在定义完所有列之后指定唯一约束

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

CREATE TABLE tb_dept3

       idint(11) PRIMARY KEY, 

       namevarchar(22), 

locationvarchar(50), 

CONSTRAINT STHUNIQUE(name)

);

一个表中可以有多分字段声明为UNIQUE,但只能有一个PRIMARY KEY声明;声明为PRIMARY KEY的列不允许为空值,但是声明为UNIQUE的字段允许为空值的存在。

4、使用默认约束

默认约束指定某列的默认值。

语法规则:

字段名 数据类型 DEFAULT 默认值

create table tp_emp4 

 ( 

       idint(11) PRIMARY KEY, 

   name varchar(25), 

   dept_id int(11) DEFAULT 1111, 

   salary float, 

   CONSTRAINT fk_emp_dept FOREIGN KEY(dept_id) REFERENCES dept(id) 

);

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

语法规则:

字段名 数据类型 AUTO_INCREMENT

create table tp_emp4 

 ( 

       idint(11) PRIMARY KEY ANTO_INCREAMENT, 

   name varchar(25), 

   dept_id int(11), 

   salary float, 

   CONSTRAINT fk_emp_dept FOREIGN KEY(dept_id) REFERENCES dept(id) 

);

二、查看数据表结构

1、查看表基本结构语句

DESCRIBE/DESC语句可以查看表的字段信息,其中包括:字段名、字段类型、是否为主键、是否有默认值等。

语法规则:

DESCRIBE 表名;    或者 DESC 表名;

2、查看表详细结构语句

SHOW CREATE TABLE语句可以用来显示创建表时的CREATE TABLE语句,语法格式:

SHOW CREATE TABLE<表名\G>;

三、修改数据表

修改表名

ALTER TABLE<旧表名>RENAME[TO] <新表名>;

修改字段的数据类型

ALTER TABLE <表名>MODIFY<字段名> <数据类型>;

修改字段名

ALTER TABLE <表名>CHANGE<旧字段名> <新字段名><新数据类型>;

添加字段

ALTER TABLE <表名>ADD <新字段名> <数据类型> [约束条件] [FIRST | AFTER 已存在字段名]

“FIRST”为可选参数,其作用是将新添加的字段设置为表的第一个字段;“AFTER”为可选参数,其作用是将新添加的字段添加到指定的“以存在字段名”的后面。

删除字段:

语法格式:

ALTER TABLE <表名>DROP <字段名>;

修改字段的排列位置

ALTER TABLE <表名>MODIFY<字段1> <数据类型>[FIRST | AFTER 字段2]

修改表的存储引擎

ALTER TABLE <表名>ENGINE=<更改后的存储引擎名>

删除表的外键约束

ALTER TABLE <表名>DROPFOREIGN KEY<外键约束名>

四、删除数据表

删除没有被关联的表

DROP TABLE [IF EXISTS]表1,表2,...,表n;

删除被其他表关联的主表

现解除关联子表额外键约束,再删除数据表。