MySQL-创建、修改和删除表

来源:互联网 发布:一元云购源码后台登录 编辑:程序博客网 时间:2024/05/21 10:20

表是数据库存储数据的基本单位。一个表包含若干个字段或记录。表的操作包括创建新表、修改表和删除表,这些操作都是数据库管理中最基本、也是最重要的操作。

创建表

创建表是在已存在的数据库中建立新表。

创建表的语法格式

MySQL中,创建表是通过SQL语句create table 实现的,其语法形式如下:

create table 表名(属性名 数据类型[完整性约束条件],属性名 数据类型[完整性约束条件],...属性名 数据类型);

如图所示:


创建这个表之后,可以用SQL语句查看表结构,如图:


也可以用desc 表名 来查看~~

完整性约束条件如下:


设置表的主键

主键是表的而一个特殊字段。该字段能唯一地标识该表中的每条信息。主键和记录的关系,如同身份证和人的关系。主键用来标识每个记录,每个记录的主键值都不同。

设置表的主键指在创建表的时候设置表的某个字段为该表的主键。

主键的主要目的是帮助mysql以最快的速度查找到表中的某一条信息。主要必须满足的条件:主键必须是唯一的,表中任意两条记录的主键字段的值不能相同;主键的值是非空值。主键可以是单一的字段,也可以是多个字段的组合。

1.单字段主键如图:


2.多字段主键如图:


设置表的外键

外键是表的一个特殊字段。如果字段sno是一个表A的属性,且依赖于表B的主键,那么,可以称表B是父表,表A是子表,sno是表A的外键

设置表的外键指在创建表时设置某个字段为外键。

设置外键的原则:必须依赖于数据库中已存在的父表的主键;外键可以为空值。

外键的作用是建立该表与其父表的关联关系。父表中删除某条信息时,字表中与之对应的信息也必须有相应的修改。例如,stu_id是学生表的主键,是成绩表的外键,当stu_id为‘123’的同学退学了,需要从学生表中删除该学生的信息,那么,成绩表中stu_id为‘123’的所有信息也应该同时删除。

设置外键的命令如图:


设置表的非空约束

非空性是指字段的值不能为空值(null)。非空约束将保证所有记录中该字段都要有值。如果用户新插入的记录中,该字段为空值,则数据库系统会报错

设置表的非空约束是指在创建表的时候为表的某些特殊字段加上not null约束条件。设置非空约束的基本语法规则如下:

属性名 数据类型 not  null,如图所示:


设置表的唯一性约束

唯一性是指所有记录中该字段的值不能重复出现。设置表的唯一性约束是指在创建表时为表的某些特殊字段加上unique约束条件,唯一性约束将保证所有记录中该字段的值不重复出现。设置唯一性约束的基本语法规则如下:属性名 数据类型 unique ,如图所示:


设置表的属性值自动增加

AUTO_INCREMENT是Mysql数据库中一个特殊的约束条件。其主要用于为表中插入的新记录自动生成唯一的ID。一个表只能有一个字段使用它约束,且该字段必须为主键的一部分。AUTO_INCREMENT约束的字段可以是任何整数类型。默认的情况下,该字段的值是从1开始自增。

设置属性值字段增加的基本语法规则如下:属性名 数据类型 AUTO_INCREMENT

设置表的属性的默认值

在创建表的时候可以指定表中字段的默认值。如果插入一条新的记录时没有为这个字段赋值,那么数据库系统会自动为这个字段插入默认值。默认值是通过DEFAULT关键字来设置的。设置默认值的基本语法规则如下:属性名 数据类型 DEFAULT 默认值。如图:


查看表结构

查看表结构是指查看数据库中已存在的表的定义。查看表结构的语句包括DESCRIBE语句和SHOW CREATE TABLE 语句。通过这两个语句,可以查看表的字段名,字段的数据类型、完整性约束条件等。

查看表基本结构语句DESCRIBE

Mysql中,DESCRIBE语句可以查看表的基本定义。其中包括,字段名、字段数据类型、是否为主键和默认值等。

DESCRIBE语句的语法形式如下:

DESCRIBE 表名;


也可以使用desc  表名来查看


查看表详细结构语句show create table

Mysql中,show create table语句可以查看表的详细定义。该语句可以查看表的字段名,字段的数据类型、完整性约束条件等信息。除此之外,还可以查看表默认的存储引擎和字符编码。

语法形式如下:show create table 表名;


修改表

修改表示指修改数据库中已存在的表的定义。修改表比重新定义表简单,不需要重新加载数据,也不会影响正在进行的服务。MySQL中通过alter  table语句来修改表。修改表包括修改表名、字段数据类型、字段名、增加字段、删除字段、修改字段的排列位置、更改默认存储引擎和删除表的外键约束等。

修改表名

表名可以在一个数据库中唯一的确定一张表。数据库系统通过表名来区分不同的表。在MySQL中,修改表名是通过sql语句alter table 实现的。其语法形式

如下:alter table 旧表名 rename [to] 新表名;


修改字段的数据类型

字段的数据类型包括整数型、浮点数型、二进制类型、日期和时间类型等。数据类型决定了数据的存储格式、约束条件和有效范围。MySQL中,alter table语句也可以修改字段的数据类型。其基本语法如下:

alter table 表名 modify 属性名 数据类型;


修改字段名

字段名可以在一张表中唯一的确定一个字段。数据库系统通过字段名来区分表中的不同字段。其基本语法如下:

alter table 表名 change 旧属性名 新属性名 新数据类型;

其中,“旧属性名”参数指修改前的字段名,“新属性名”参数指修改后的字段名,“新数据类型”参数是修改后的数据类型,如不需要修改,则将数据类型设置成与原来一样。

1.只修改字段名

2.修改字段名和字段数据类型


增加字段

在创建表时,表中的字段就已经定义完成。如果要增加新的字段,就可以通过alter table语句进行增加。其基本语法如下:

alter table 表名 add 属性名1 数据类型[完整性约束条件] [FIRST | after 属性名2];

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


2.增加有完整性约束条件的字段


3.表的第一个位置增加字段


4.表的指定位置之后增加字段


删除字段

删除字段是指删除已经定义好的表中的某个字段。在表创建好之后,如果发现某个字段需要删除。可以采用将整个表都删除,然后重新创建一张表的做法。这样做是可以达到目的,但必然会影响到表中的数据。而且,操作比较麻烦。MySQL中,alter table 语句也可以删除表中的字段,其基本语法如下:

alter table 表名 drop 其属性名;


修改字段的排列位置

创建表的时候,字段在表中的排雷位置就已经确定了。如果要改变字段在表中的排列位置,则需要alter table 语句来处理。mysql中,修改字段排列位置的alter table 语句的基本语法如下:

alter table 表名 modify 属性名1 数据类型 First | after 属性名;

其中,“属性名1”参数指需要修改位置的字段的名称;“数据类型”参数指“属性名1”的数据类型,“First”参数指定位置为表的第一个位置,“after属性名2”参数指定“属性名1”插入在“属性名2”之后。

1.字段修改到第一个位置


2.字段修改到指定位置


更改表的存储引擎

MySQL中存储引擎是指MySQL数据库中表的存储类型。MySQL存储引擎包括In弄DB、MyISAM、MEMORY等。不同的表类型有着不同的优缺点。在创建表的时候,存储类型就已经设定好了。如果要改变,可以通过重新创建一张表来实现。这样做是可以达到目的,但必然会影响到表中的数据。而且,操作比较麻烦。MySQL中,alter table语句也可以更改表的存储引擎的类型。其基本语法如下:

alter table 表名 engine=存储引擎名;



删除表的外键约束

外键是一个特殊字段,其将某一表与其父表建立关联关系。在创建表的时候,外键约束就已经设定好了。由于特殊需要,与父表之间的关联关系需要去除,要求删除外键约束。MySQL中,alter table 语句也可以删除表的外键约束,其语法如下:

alter table 表名 drop foreign key 外键别名;


删除表

删除表是指删除数据库中已存在的表。删除表时,会删除表中的所有数据。因此,在删除表时要特别注意。MySQL中通过drop table语句来删除表。由于创建表时可能存在外键约束,一些表成为了与之关联的表的父表。要删除这些父表,情况比较复杂。

删除没有被关联的普通表

MySQL中,直接使用drop table 语句可以删除没有被其他关联的普通表,其基本语法如下:

drop table 表名;其中“表名”参数为要删除的表的名称。

在删除表之前,先用desc语句查看是否存在表,以便与删除后进行对比。


删除被其他表关联的父表

要删除被其他表关联的父表,情况不像上面那样简单,如图所示:


先删除外键,然后在使用drop table 表名语句就可以删除父表,如图:



原创粉丝点击