您现在的位置是:网站首页> 编程资料编程资料
MySQL创建、修改和删除表操作指南_Mysql_
2023-05-26
484人已围观
简介 MySQL创建、修改和删除表操作指南_Mysql_
前言
表是数据库存储数据的基本单位。一个表包含若干个字段或记录。表的操作包括创建新表、修改表和删除表。这些操作都是数据库管理中最基本,也是最重要的操作。
一、创建表
创建表是指在已存在的数据库中建立新表。这是建立数据库最重要的一步,是进行其他表操作的基础。
1、创建表的语法形式
MySQL中,创建表是通过SQL语句CREATE TABLE实现的。其语法格式如下:
create table 表名(属性名 数据类型 [完整性约束条件],
属性名 数据类型 [完整性约束条件],
...
);
其中,“表名”参数表示所要创建的表的名称;“属性名”参数表示表中字段的名称;“数据类型”参数指定字段的数据类型,“完整性约束条件”参数指定字段的某些特殊约束条件。
2、设置表的主键
主键是表的一个特殊字段。该字段能唯一地标识该表中的每条信息。主键和记录的关系,如同身份证和人的关系。主键用来标识每个记录,每个记录的主键值都不同。身份证是用来标明人的身份,每个人都具有唯一的身份证号。设置表的主键指在创建表时设置表的某个字段为该表的主键。
主键的主要目的是帮助MySQL以最快的速度查找到表中的某一个条信息。主键必须满足的条件就是主键必须是唯一的,表中任意两条记录的主键字段的值不能相同;主键的值是非空值。主键可以是单一的字段,也可以是多个字段的组合。
1、单字段主键
主键是由一个字段构成时,可以直接在该字段的后面加上PRIMARY KEY来设置主键。语法规则如下:
属性名 数据类型 PRIMARY KEY
其中,“属性名”参数表示表中字段的名称;“数据类型”参数指定字段的数据类型。
下面在example1表中设置stu_id作为主键,SQL代码如下:
create table example1( stu_id int PRIMARY KEY, stu_name VARCHAR(20), stu_sex boolean );

运行创建语句后,example1表中包含3个字段。stu_id字段是整型;stu_name字段是字符串型;stu_sex是布尔型。其中,stu_id字段是主键。
2、多字段主键
主键是由多个属性组合而成时,在属性定义完之后统一设置主键。语法规则如下:
primary key(属性名1,属性名2,...属性名n)
3、设置表的外键
外键是表的一个特殊字段。如果字段sno是一个表A的属性,且依赖于表B的主键。那么,称表B为父表,表A为子表,sno为表A的外键。通过sno字段将父表B和子表A建立关联关系。设置表的外键指在创建表设置某个字段为外键。
设置外键的原则就是必须依赖于数据库中已存在的父表的主键;外键可以为空值。
外键的作用是建立该表与其父表的关联关系。父表中删除某条信息时,子表中与之对应的信息也必须有相应的改变。例如,stu_id是student表的主键,stu_id是grade表的外键。当stu_id为“123”同学退学了,需要从student表中删除该学生的信息。那么,grade表中stu_id为“123”的所有信息也应该同时删除。这样可以保证信息的完整性。
设置外键的基本语法规则如下:
constraint 外键别名 foreign key (属性1.1,属性1.2,...,属性1.n)
references 表名(属性2.1,属性2.2,...,属性2.n)
其中,“外键别名”参数是为外键的代号;“属性1”参数列表是子表中设置的外键;“表名”参数是指父表的名称;“属性2”参数列表是父表的主键。
4、设置表的非空约束
非空性是指字段的值不能为空值(NULL)。非空约束将保证所有记录中该字段都有值。如果用户新插入的记录中,该字段为空值,则数据库系统会报错。例如,在id字段加上非空约束,id字段的值就不能为空值。如果插入记录的id字段的值为空,该记录将不能插入。设置表的非空约束是指在创建表时为表的某些特殊字段加上NOT NULL约束条件。
设置非空约束的基本语法规则如下:
属性名 数据类型 NOT NULL
下面在example4表中设置字段id和name的非空约束。SQL代码如下:
create table example4( id int not null primary key, name varchar(20) not null, stu_id int, constraint d_fk foreign key (stu_id) references example1(stu_id) );

代码运行后,example4表中包含3个字段。其中,id字段为主键;id和name字段为非空字段,这两个字段的值不能为空值(NULL);stu_id字段为外键;d_fk为外键的别名;example1表为example4表的父表;example4的外键依赖于父表的主键stu_id。
5、设置表的唯一性约束
唯一性是指所有记录中该字段的值不能重复出现。设置表的唯一性约束是指在创建表时,为表的某些特殊字段加上UNIQUE约束条件。唯一性约束将保证所有记录中该字段的值不能重复出现。例如,在id字段加上唯一性约束,所以记录中id字段上不能出现相同的值。例如,在表的id字段加上唯一性约束,那么每条记录的id值都是唯一的,不能出现重复的情况。如果一条的记录的id为‘0001’,那么该表中就不能出现另一条记录的id为‘0001’。设置唯一性约束的基本语法规则如下:
属性名 数据类型 UNIQUE
6、设置表的属性值自动增加
AUTO_INCREMENT是MySQL数据库中一个特殊的约束条件。其主要用于为表中插入的新记录自动生成唯一的ID。一个表只能有一个字段使用AUTO_INCREMENT约束,且该字段必须为主键的一部分。AUTO_INCREMENT约束的字段可以是任何整数类型(TINYINT、SMALLINT、INT和BIGINT等)。默认情况下,该字段的值是从1开始自增。
设置属性值字段增加的基本语法规则如下:
属性名 数据类型 AUTO_INCREMENT
下面在example6表中设置字段id的值自动增加。SQL代码如下:
create table example6( id int primary key auto_increment, stu_id int unique, name varchar(20) not null );

代码运行后,example6表中包含3个字段。其中,id字段为主键,且每插入一条新记录id的值会自动增加;stu_id字段为唯一值,该字段的值不能重复;name字段为非空字段,该字段的值不能为空值(NULL)。
在插入记录时,默认的情况下自增字段的值从1开始自增。例如,example6表中的id字段被设置成自动增加,默认情况第一条记录的id值为1。以后每增加一条记录,该记录的id值都会在前一条记录的基础上加1。
如果第一条记录设置了该字段的初值,那么新增加的记录就从初值开始自增。例如,如果example6表中插入的第一条记录的id值设置为8,那么再插入记录的id值就会从8开始往上增加。
7、设置表的属性的默认值
在创建表时可以指定表中的字段的默认值。如果插入一条新的记录时没有为这个字段赋值,那么数据库系统会自动为这个字段插入默认值。默认值是通过DEFAULT关键字来设置的。设置默认值的基本语法规则如下:
属性名 数据类型 DEFAULT 默认值
下面在example7表中设置字段id的值自动增加。SQL代码如下:
create table example7( id int primary key auto_increment, stu_id int unique, name varchar(20) not null, English varchar(20) default 'zero', Math float default 0, Computer float default 0 );

代码运行后,example7表中包含6个字段。其中,id字段为主键,且每插入一条新记录id的值会自动增加;stu_id字段为唯一值,该字段的值不能重复;name字段为非空字段,该字段的值不能为空值(NULL);English字段的默认值为zero;Math字段和Computer字段的默认值为0。如果没有使用DEFAULT关键字指定字段的默认值,也没有指定字段为非空,那么字段的默认值为空(NULL)。
二、查看表结构
查看表结构是指查看数据库中已存在的表的定义。查看表结构的语句包括DESCRIBE语句和SHOW CREATE TABLE语句。通过这两个语句,可以查看表的字段名、字段的数据类型和完整性约束条件等。
1、查看表基本结构语句DESCRIBE
MySQL中,DESCRIBE语句可以查看表的基本定义。其中包括,字段名、字段数据类型、是否为主键和默认值等。DESCRIBE语句的语法形式如下:
DESCRIBE 表名;
其中,“表名”参数指所要查看的表的名称。
下面用DESCRIBE语句查看example1表的定义,代码如下:
DESCRIBE example1;

通过DESCRIBE语句,可以查出example1表包含stu_id、stu_name和stu_sex字段。同时,结果中显示了字段的数据类型(Type)、是否为空(Null)、是否为主外键(Key)、默认值(Default)和额外信息(Extra)。
DESCRIBE可以缩写成DESC。
下面直接使用DESC查看example1表的结构。代码如下:
DESC example1;

2、查看表详细结构语句SHOW CREATE TABLE
MySQL中,SHOW CREATE TABLE语句可以查看表的详细定义。该语句可以查看表的字段名、字段的数据类型、完整性约束条件等信息。除此之外,还可以查看表默认的存储引擎和字符编码。SHOW CREATE TABLE语句的语法形式如下:
show create table 表名;
其中,“表名”参数指所要查看的表的名称。
下面是用SHOW CREATE TABLE语句查看example1表的定义,代码如下:
show create table example1

三、修改表
修改表是指修改数据库中已存在的表的定义。修改表比重新定义表简单,不需要重新加载数据,也不会影响正在进行的服务。MySQL中通过ALTER TABLE语句来修改表。修改表包括修改表名、修改字段数据类型、修改字段名、增加字段、删除字段、修改字段的排列位置、更改默认存储引擎和删除表的外键约束等。
1、修改表名
表名可以在一个数据库中唯一的确定一张表。数据库系统通过表名来区分不同的表。例如,数据库school中有student表。那么,student表就是唯一的。在数据库school中不可能存在另一个名为student的表。MySQL中,修改表名是通过SQL语句ALTER TABLE实现的。其语法形式如下:
ALTER TABLE 旧表名 RENAME [TO] 新表名;
其中,“旧表名”参数表示修改前的表名:“新表名”参数表示修改后的新表名;TO参数是可选参数,其是否在语句中出现不会影响语句的执行。
下面是将example0改名为user表,SQL代码如下;
alter table example0 rename user;
提示:
本文由神整理自网络,如有侵权请联系本站删除!
本站声明:
1、本站所有资源均来源于互联网,不保证100%完整、不提供任何技术支持;
2、本站所发布的文章以及附件仅限用于学习和研究目的;不得将用于商业或者非法用途;否则由此产生的法律后果,本站概不负责!
相关内容
- MySQL用户和数据权限管理详解_Mysql_
- MySQL慢查询现象解决案例_Mysql_
- mysql索引(覆盖索引,联合索引,索引下推)_Mysql_
- 修改MySQL密码的四种方法总结(适合初学者!)_Mysql_
- mysql日志系统redo log和bin log介绍_Mysql_
- MYSQL 增加从库方式介绍_Mysql_
- 一文带你永久摆脱Mysql时区错误问题(idea数据库可视化插件配置)_Mysql_
- mysql 中的备份恢复,分区分表,主从复制,读写分离_Mysql_
- MySQL乐观锁和悲观锁具体实现_Mysql_
- Mysql 5.7 新特性之 json 类型的增删改查操作和用法_Mysql_
