04-数据表的基本操作


title: 04-数据表的基本操作
time: 2019/08/12
tags:
- Database
- MySQL
categories:
- Database
- MySQL


主要内容:

创建数据表、查看数据表结构、修改数据表、删除数据表

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

0 数据类型

MySQL支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型。

数值类型

04-数据表的基本操作_第1张图片
数值类型

日期类型

04-数据表的基本操作_第2张图片
日期类型

字符串类型

04-数据表的基本操作_第3张图片
字符串类型

1 创建数据表

创建数据表,指的是在已经创建好的数据库中建立新表。创建数据表的过程是规定数据列的属性的过程,同时也是实施数据完整性(包括实体完整性、引用完整性和域完整性等)约束的过程。

1.1 创建表的语法形式

选择数据库(如果没有选择数据库会报错):

USE <数据库名>

创建数据表语法:

CREATE TABLE <表名>
(
    字段名1, 数据类型, [列级别约束条件] [默认值],
    字段名2, 数据类型, [列级别约束条件] [默认值],
    ……
    [表级别的约束条件]
);

查看数据表:

SHOW TABLES;

查看数据表结构:

describe ;

例子:

create database test_db;

use test_db;

create table tb_empl
(
    id INT(11),
    name VARCHAR(25),
    deptID INT(11),
    salary FLOAT
);

show tables;

describe tb_empl;

1.2 使用主键约束

主键,又称主码,是表中一列或多列的组合。

主键约束(Primary Key Constrain)要求主键列的数据唯一,并且不允许为空。

1 单子段主键

(1) 在定义列时同时定义主键

字段名1 数据类型 primary key [默认值]

例如上述例子:

create table tb_empl
(
    id INT(11) primary key,
    name VARCHAR(25),
    deptID INT(11),
    salary FLOAT
);

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

[constraint <约束名>] primary key [字段名]

例如:

create table tb_empl1
(
    id INT(11),
    name VARCHAR(25),
    deptID INT(11),
    salary FLOAT,
    primary key(id)
);

2 多字段联合主键

primary key [字段1,字段2,…,字段n]

例如:

create table tb_empl
(
    id INT(11),
    name VARCHAR(25),
    deptID INT(11),
    salary FLOAT,
    primary key(id,deptID)
);

1.3 使用外键约束

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

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

主表(父表):相关联字段中主键所在的那个表

从表(子表):相关联字段中外键所在的那个表

constraint <外键名> foreign key (<字段名>) references <主表名>(<主键列>)

1.4 使用非空约束

非空约束:字段的值不能为空

字段名 数据类型 not null

1.5 使用唯一性约束

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

(1) 定义时指定唯一性约束

字段名 数据类型 unique

(2) 定义完所有值后指定唯一约束

constraint <约束名> unique(字段名)

1.6 使用默认约束

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

字段名 数据类型 DEFAULT 默认值

1.7 设置表的属性值自动添加

字段名 数据类型 auto_increament

2 修改数据表

2.1 修改表名

alter table <旧表名> rename <新表名>;

2.2 修改字段的数据类型

alter table <表名> modify <字段名> <数据类型>;

2.3 修改字段名

alter table <表名> change <旧字段名> <新字段名> <新数据类型>;

2.4 添加字段

alter table <表名> add <新字段名> <数据类型> [约束条件] [first|after 已存在字段名]; 

2.5 删除字段

alter table <表名> drop <字段名>;

2.6 修改字段的排列位置

alter table <表名> modify <字段1> <数据类型> first|after 字段2; 

2.7 删除表的外键约束

alter table <表名> drop foreign key <外键约束名>;

3 删除数据表

3.1 删除没有被关联的数据表

drop table [if exists] 表1,表2,……,表n;

3.2 删除被其他数据表关联的主表

(1) 同时删除父表和子表:先删除子表,再删除父表

(2) 单独删除父表(直接删除父表会报错):

alter table <子表名> drop foreign key <外键约束名>;
drop table <父表名>;

If you have any questions, please don't hesitate to contact me: [email protected]](mailto:[email protected]).

你可能感兴趣的:(04-数据表的基本操作)