数据表的基本操作(一)

来源:互联网 发布:360手柄淘宝哪里买 编辑:程序博客网 时间:2024/04/30 07:57

数据表是数据库中最重要、最基本的操作对象,是数据存储的基本单位。

数据表定义为列的集合

在创建数据表之前,应该使用语句 use <数据库名> 指定操作是在哪个数据库中进行

创建表的语句为create table,语法规则为:

create table 表名(    字段名1,数据类型 [列级别约束条件] [默认值],    字段名2,数据类型 [列级别约束条件] [默认值],    。。。。    [表级别约束条件]);mysql> create table tb1    -> (id int(11),    ->  name varchar(25),    -> deptId int(11),    -> salary float    -> );Query OK, 0 rows affected (0.35 sec)

创建表的时候需要指定以下信息:
1.表名称,不区分大小写,不可以使用sql语言中的关键字
2.数据表中每一个列的名称和数据类型,多个列要用逗号分隔

使用show tables;来查看已经存在的表

mysql> show tables;+------------------+| Tables_in_mytest |+------------------+| tb1              |+------------------+1 row in set (0.02 sec)//我的数据库名称为mytest表名为tb1

主键,即主码,是表中一列或者多列的组合,主键约束要求主键列的数据的唯一并且不可以为空,主键可以唯一的标识表中的一条记录。

主键分为:单字段主键和多字段主键

单字段主键
1.定义列的同时指定主键,语法规则为

     字段名  数据类型 primary key [默认值]    例如:    id int(11) primary key,//这里就定义了id为主键

2.在定义完所有列后制定主键

    [constraint<约束名>] primary key [字段名]    例如:    primary key(id)

多字段联合主键

语法规则为:

    primary key[字段1,字段2,字段3]mysql> create table td2    -> (    ->    name varchar(25),    ->    deptId int(11),    ->    salary float,    ->    primary key(name,deptId)    -> );Query OK, 0 rows affected (0.10 sec)

使用外键约束

外键:用来在两个表的数据之间来建立链接的,可以是一列或者多列,一个表可以有一个或者多个外键

外键对应的是参照完整性,一个表的外键可以为空值,若不为空值,那么每一个外键值必须要等于另一个表中主键的某个值

定义外键后,不允许删除在另一个表中具有关联关系的行。

主表:对于两个具有关联关系的表而言,相关联的字段中主键所在的那个表就是主表

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

创建外键的语法:

[constraint <外键名>] foreign key 字段名1 [,字段名2,。。。]references <主表名> 主键列1 [,主键列2,。。]

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

字段名:子表中需要添加外键约束的字段列

主表名:被子表外键所依赖的表的名称

主键列:主表中定义的主键列,或者列组合

mysql> create table tb2    -> (    ->    id int(11),    ->    deptid int(11),    ->    primary key(id)    -> );Query OK, 0 rows affected (0.06 sec)mysql> create table tb3    -> (    ->    id int(11),    ->    dp int(11),    ->    constraint empid foreign key(dp) references tb2(id)    -> );Query OK, 0 rows affected (0.06 sec)//这里最终会使得tb3中添加了名称为empid的外键约束,外键名称为dp,依赖与表tb2中的**主键**id,在这里还应该注意的是//子表的外键必须是关联父表的主键,且关联字段的数据类型必须匹配,如果类型不一致会报错

非空约束代表的是字段的值不能为空,添加了非空约束的字段,如果用户在添加数据的时候没有指定值,那么会报错

语法规则

字段名 数据类型 not null

具体案例:

mysql> create table tb4    -> (    ->     id int(11) not null    -> );Query OK, 0 rows affected (0.11 sec)

表明了id不可以为空

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

1.在定义完列后直接指定唯一约束
字段名 数据类型 unique

    mysql> create table tb5    -> (    ->    id int(11) primary key,    ->    name varchar(25) unique    -> );Query OK, 0 rows affected (0.09 sec)

2.定义完所有列之后指定唯一约束
[constraint <约束名>] unique(<字段名>)

mysql> create table tb6    -> (    ->     id int(11) primary key,    ->     name varchar(25)    ->     ,    ->     constraint sth unique(name)    -> );Query OK, 0 rows affected (0.19 sec)

这里指定了name的名称的唯一

unique和primary key的区别:

一个表中可以有多个字段声明为unique,但是只能有一个primary key 声明,声明为primary key的列不允许出现空值,但是声明为unique的字段允许有空值的出现

0 0
原创粉丝点击