数据表的基本操作

孤街醉人 提交于 2019-12-02 05:17:59

数据表的基本操作

 

在数据库中,数据表是数据库中最重要、最基本的操作对象,是数据储存的基本单位。数据表被定义为列的集合,数据在表中是按照行和列的格式来储存的,每一行代表一条唯一的记录,每一列代表记录中的一个域。

 

1.创建数据表

创建数据表的过程是规定数据列的属性过程,同时也是实施数据完整性约束的过程。

 

1.1)创建表的语法形式

在创建数据表之前首先应该指定在那个数据库中。使用“USE <数据库名>”语句。如果没有数据库会抛出“no database selected”异常

语法:

CREATE TABLE <表名>

(

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

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

);

 

注意:1.创建表的名称不区分大小写,不能使用SQL语言中的关键字

  1. 数据表中每一列的名称和数据类型,如果创建多个列,用逗号隔开。

 

 

1.2)使用主键约束

 

主键又称为主码,是表中一列或多列的组合。主键约束要求主键列的数据唯一,并且不允许为空。主键可以唯一的确定表中的一条记录,可以通过外键来确定不同数据表之间的关系,并且课可以加快数据库查询的速度。主键和记录之间的关系如同身份和人之间的关系,他们是一一确定的。

 

  1. 单字段主键

单字段主键是由一个字段组成,他有两种方式来声明

【方式一】在声明列的同时就声明

CREATE TABLE tb

(

Id INT(11)   PRIMARY KEY,

name VARCHAR(25),

......

);

 

【方式二】在声明创建表之后

CREATE TABLE tb

(

Id INT(11),

name VARCHAR(25),

......

PRIMARY KEY(id)

);

 

 

2.多字段联合主键

 

主键可以由多个字段来表是,例如在表中,没有主键id,为了确定某一条数据,可以用id、name联合起来作为一个主键。

CREATE TABLE tb

(

Id INT(11),

name VARCHAR(25),

......

PRIMARY KEY(id,name)

);

 

 

 

1.3)使用外键约束

 

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

外键:首先是一个字段,他可以不是本表的主键,但一定是对应另一个表的主键。定义外键后,不允许删除在另一个表中具有关联关系的行。外键的作用是保护数据的一致性和完整性。

主表:对于两个相关联的表,相关字段主键所在的表为主表

子表:对于两个想关联的表,相关字段外键所在的表为子表。

语法:

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

PEFERENCES <主表名> 主键列1 [,主键列2......]

 

外键名为定义的外键约束的名称,一个表中不能有相同名称的外键。

 

例如:

创建表1:

CREATE TABLE tb_1

(

Id INT(11)  PRIMARY KEY,

name VARCHAR(25),

......

);

 

创建表2:

CREATE TABLE tb_2

(

Id INT(11)  PRIMARY KEY,

name VARCHAR(25),

deptId  INT(11),

......

CONSTRAINT fk FOREIGN KEY(deptId) REFERENCES tb_1(id)

);

以上表示表2中添加了名称为fk的外键约束,字段名称为deptId,依赖于表1中的id。

 

1.4)使用非空约束

 

非空约束指的是字段的值不能为空。对于使用了非空约束的字段,如果用户在添加数据时没有指定值,数据库就会报错

语法:字段名   数据类型   NOT NULL

 

CREATE TABLE tb_1

(

Id INT(11)  PRIMARY KEY,

name VARCHAR(25)  NOT NULL,

......

);

 

 

1.5)使用唯一性约束

 

设置了唯一性约束的一列或者多列,该列的值都是唯一的,不会出现相同的值,可以为空但只能出现一次。

 

语法:字段名 数据类型  UNIQUE

 

在定义完列后就直接指定;也可以   CONSTRAINT STH UNIQUE(name,其他)

 

一个表中可以由多个表声明UNIQUE但是只能有一个PRIMARY KEY

 

1.6)使用默认约束

 

指定某列为默认值,例如男生较多,性别默认为男,当插入一条新的语句为这个字段赋值,那么系统就会赋值新的,否则还是男。

语法:字段名 数据类型 DEFAULT 默认值

 

 

1.7)设置表的属性自增

 

 

可以通过AUTO_INCREMENT关键字来实现自增,表中只能一个字段使用,默认从1开始,可以使用在任何的整数类型中(TINYINT、SMALLIN、INT、BIGINT等)

 

 

  1. 查看数据表结构

2.1)查看表的基本结构

 

DESCRIBE/DESC可以用来查看表的字段信息、数据类型、是否为主键、是否为外键、是否可以为空、是否默认值等。

语法:DESCRIBE 表名

或者 可以缩写为 DESC 表名。

 

 

2.2)查询表详细结构语句

 

SHOW CREATE TABLE 表名\G;

 

 

3.修改数据表

 

3.1)修改表名

 

语法:ALTER TABLE 旧表名 RENAME 新表名

 

 

3.2)修改字段的数据类型

 

 

语法:ALTER TABLE 表名 MODIFY 字段名 修改的数据类型

 

如:ALTER TABLE tb_1 MODIFY name INT(11);

 

3.3)修改字段名

 

语法:ALTER TABLE 表名 CHANGE 旧字段名 新字段名 新数据类型

 

数据类型可以修改也可以不修改

 

 

 

3.4)添加字段

随着业务的需求的变化,可能会在已经存在的表中,添加一个字段。

 

1.添加无完整性约束条件的字段

语法:ALTER TABLE 表名 ADD 新字段 数据类型 

例如:ALTER TABLE tb_1 ADD managerId INT(10);

 

2.添加有完整性约束的字段

语法:ALTER TABLE 表名 ADD 新字段 数据类型 约束

例如:ALTER TABLE tb_1 ADD managerId INT(10) not null;

 

3.在表中的第一列添加字段  FIRST

语法:ALTER TABLE tb_1 ADD managerId INT(10) FIRST

 

4.在表中的指定列之后添加一个字段

语法:ALTER TABLE tb_1 ADD managerId INT(10) AFTER name

在name之后的一列添加

 

 

 

 

3.5)删除字段

语法:ALTER TABLE 表名 DROP 字段名

 

 

3.6)修改表字段的排列位置

1.修改字段为表的第一个字段

ALTER TABLE tb_1 MORIFY name INT(11) FIRST;

将name字段修改为表中第一字段

 

2.修改字段为表的指定列之后

ALTER TABLE tb_1 MORIFY name INT(11) AFTER id;

将name放在id之后

 

3.7)更改表的存储引擎

语法:ALTER TABLE 表名 ENGINE=修改后的引擎名

 

3.8)删除外键约束

 

语法:ALTER TABLE 表名 DROP FOREIGN KEY 外键约束名

 

 

4.删除数据表

 

1.删除没有关联的表

语法:DROP TABLE IF EXISTS 表1,表2.....

 

 IF EXISTS判断表是否为空

 

2.删除有关联的表

如果直接删除,结果会显示失败。可以选择先删除子表,在删除父表。如果只删除父表,可以取消外键约束,在删除。

 

 

 

 

 

 

---------20180919周三下午 图书馆

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!