数据表的基本操作
1、创建数据表
在创建完数据库之后,接下来的工作就是创建数据表。创建数据表是在已经创建好的数据库中建立新表。创建数据表的过程是规定数据列属性的过程,同时也是实施数据完整性(包括实体完整性、引用完整性和域完整性)约束的过程。
1.1、创建数据表的基本方法
数据表属于数据库,在创建数据表之前,应该先在对象浏览器中选择在哪一个数据库中进行操作。如果没有选择数据库,就不能创建数据表。最常见的创建数据表有以下两种:
1.1.1、使用对象浏览器创建数据表
1.1.2使用SQL语句创建数据表
1.2使用主键约束
主键又称主码,是表中一列或者多列的组合。主键约束要求主键列的数据唯一,并且不允许为空。主键能够唯一的标识表中的一条记录,可以结合外键来定义不同数据表之间的关系,并且可以加快数据库查询的速度。主键分为两种类型:单字段主键和多字段联合主键。
1.2.1、单字段主键
主键由一个字段组成,SQL语句分为以下两种状况:
在定义列的同时指定主键
1 create table tb_emp2(
2 id int primary key,
3 name varchar(25),
4 deptid int,
5 salary float
6 )
在定义完所有列之后指定主键:
1 create table tb_emp3
2 (
3 id int,
4 name varchar(25),
5 deptid int,
6 salary float,
7 primary key(id)
8 )
1.2.2:多字段联合主键
主键由多个字段联合组成:
1 create table tb_emp4(
2 name varchar(25),
3 deptid int,
4 salary float,
5 primary key (name,deptid)
6 )
1.3、使用外键约束
外键用来在两个表之间建立数据连接,可以是一列或者多列。一个表可以有一个或者多个外键。外键对应的是参照完整性。一个表的外键可以为空值,若不为空值,则每一个外键值必须等于另一个表中主键的值。
1 create table tb_emp5
2 (
3 id int primary key,
4 name varchar(25),
5 deptid int,
6 salary float,
7 constraint fk_emp_dept1 foreign key(deptid)references tb_dept1(id)
8 )
1.4 使用非空约束
非空约束是指字段的值不能为空。对于使用非空约束的字段的值,如果用户在添加数据时没有指定值,数据库系统就会报错。
非空约束的语法规则如下:
字段名 数据类型 not null
1.5、使用唯一约束
唯一约束要求添加该约束的列字段的值唯一,允许为空。但只能出现一个空值。唯一约束可以确保一列或者几列不出现重复值。
在定义完列之后直接指定约束:
字段名 数据类型 unique
1 create table tb_dept2
2 (
3 id int primary key,
4 name varchar(25) unique,
5 location varchar(50)
6 )
在定义完所有列之后指定唯一名称:
1 create table tb_dept3
2 (
3 id int primary key,
4 name varchar(22),
5 location varchar(50),
6 constraint sth unique(name)
7 )
1.6、默认约束
默认约束是指定某列的默认值。
默认语法规则如下:
字段名 数据类型 default 默认值
2、修改数据表
修改表指的 是修改数据库中已经存在的数据表结构。常用的修改表的操作有修改表名、修改字段数据类型或者字段名、增加和删除字段、修改字段的排列位置、更改表的存储引擎、删除表的外键约束等。
2.1、修改表名
1 alter table tb_dept3 rename to tb_department3;
2.2、修改字段类型
使用对象浏览器修改字段的数据类型
使用sql语言修改数据类型
1 alter table tb_dept1 alter column name type varchar(30);
2.3、修改字段名
1 alter table tb_dept1 rename location to loc;
2.4、添加字段
随着业务需求的变化,可能需要在已经存在的表中添加新的字段。一般情况下,一个完整的字段包括字段名、数据类型、完整性约束。使用SQL语句添加字段的格式如下:
2.4.1、添加无完整性约束条件字段:
1 alter table tb_dept1 add column managerid int;
2.4.2、添加有完整性约束条件的字段
1 alter table tb_dept1 add column column1 varchar(12) not null;
2.5、删除字段
删除字段是将数据表中的某个字段从表中移除,对于不用的字段,可以进行删除操作。删除字段numb字段,SQL语句如下:
1 alter table tb_dept1 drop numb;
2.6、删除表的外键约束
对于数据库中定义的外键,如果不再需要,可以将其删除。外键一旦删除,就会解除主表和从表之间的关联关系。
1 alter table tb_emp9 drop constraint fk_emp_dept;
3、删除数据表
删除数据表是将表中已经存在的表从数据库中删除。注意,删除表的同时,表的定义和表中所有的数据均会被删除,因此,在删除操作前,最好对表中的数据备份,以免造成无法挽回的后果。
3.1、删除没有被关联的表
1 drop table if exists tb_dept2;
3.2、删除被其他表关联的主表
数据表之间存在外键关联的情况下,如果直接删除父表,结果会显示失败,原因是直接删除将破坏表的参照完整性。如果必须要删除,可以先删除与之关联的子表,再删除父表,但是这样会同时删除两个表中的数据。有的情况下需要保留子表,这时若要单独删除父表,只需将关联的表的外键约束条件取消,然后删除父表。
解除关联子表的外键约束
1 alter table tb_emp drop constraint fk_emp_dept;
浙公网安备 33010602011771号