MySQL数据表的创建、修改、删除及基本操作(二)17认证网

正规官方授权
更专业・更权威

MySQL数据表的创建、修改、删除及基本操作(二)

1.在 mysql中,可以使用 CREATE TABLE 语句创建表。其语法格式为:转自:https://www.cnblogs.com/bigbigbigo/p/10917429.html

/*建表的语法*/create table [if not exists] Table_name(    字段一  数据类型 [字段属性|约束] [索引] [注释] ,    字段二  数据类型 [字段属性|约束] [索引] [注释] ,    .........    )[表类型][表字符集][注释]

例1:在students数据中创建一个名为student的表,表结构如下所示:

字段名称
数据类型
备注
stuID
int(5)
学号,不为空,主键
stuName
varchar(50)
) 姓名,不为空
stuSex
char(10)
性别
stuAge
smallint
年龄
use students; create table student ( stuID  int(5)  not null primary key, stuName  varchar(50)  not null, stuSex CHAR(10), stuAge smallint  )

运行:

易错点:

(1)中文的逗号和括号错误,命令中全部为英文状态下的逗号,括号;

(2)最后一个字段不适用逗号,比如上面的stuAge一行;

(3)使用use students,但没有创建数据库;

(4)数据类型写错,比如varchar写成varcher;

(5)重复多次运行,导致提示表已经存在的错误。

数据类型详细介绍可参考以下网址:

MySQL数据类型简介   http://c.biancheng.net/view/2421.html

MySQL中的约束概述  http://c.biancheng.net/view/7576.html

约束名称
概述
not null
非空
primary key
主键(唯一且非空
unique key
唯一键
default
默认值

其他关键字说明:auto_increment 自增(此列必须是:primary key或者unique key),unsigned 非负数,comment 注释。

例2:在students数据中创建一个名为courses的表,表结构如下所示:

字段名称
数据类型
备注
couID
int
课程号,不为空,主键,自动增长
couName
varchar(50)
课程名称,不为空,默认值“大学英语”
couHours
smallint
课时数,非负数
couCredit
tinyint
学分,不为空,默认值为2
CREATE TABLE if not EXISTS courses(   couID int  not null primary key auto_increment COMMENT '学号',   couName varchar(50not null DEFAULT('大学英语'),   couHours  smallint UNSIGNED,    couCredit  tinyint not null DEFAULT(2) COMMENT '学分' )ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE  utf8mb4_0900_ai_ci   /*默认字符集和校验规则可不写*/

注意:1.创建表语句最后一个括号要加上分号;2.default约束有的版本不能加括号,不然会报错,可写为DEFAULT ‘大学英语’ 的形式,中间隔一个空格。

例3:在students数据中创建一个名为stu_cou的选课表,表结构如下所示:

字段名称
数据类型
备注
ID
int
主键,不为空,自动增长
stuID
int(5)
学号,不为空
couID
int
课程号,不为空
time
DATETIME
选课时间,默认值使用函数now()获取当前时间
CREATE TABLE if not EXISTS stu_cou(   ID int not null primary key auto_increment,   stuID int(5)  not null  COMMENT '学号'  couID int  not null  COMMENT '课程编号'  time datetime not null DEFAULT(now()))

注意:在有些MySQL的版本下,设置字段的默认时间时,字段类型要设置为timestamp,如下所示:

couTime timestamp DEFAULT now() 

2.在 mysql中,可以使用ALTER TABLE 语句来改变原有表的结构,例如增加或删减列、更改原有列类型、重新命名列或表等。其语法格式为:转自:http://c.biancheng.net/view/7583.html

ALTER TABLE <表名> [修改选项]

修改选项的语法格式如下:

{ ADD COLUMN <列名> <类型>
| CHANGE COLUMN <旧列名> <新列名> <新列类型>
| ALTER COLUMN <列名> { SET DEFAULT <默认值> | DROP DEFAULT }
| MODIFY COLUMN <列名> <类型>
| DROP COLUMN <列名>
| RENAME TO <新表名>
| CHARACTER SET <字符集名>
| COLLATE <校对规则名>

| MODIFY COLUMN <列名> <类型>   first

| MODIFY COLUMN <列名> <类型>   after  <列名>

}

也就是

(1)增加字段    (2)更改列名     (3)修改字段默认值  (4)修改字段数据类型  (5)删除字段(列名) (6)重命名表名    (7)修改表的字符集    (8)修改表的校验规则   (9)将字段顺序改为第一位    (10)将字段顺序改为另一个字段之后

例4.(1)修改students数据库中的student表,增加列名stuColleage,数据类型为varchar(50);

ALTER TABLE students add COLUMN stuColleage varchar(50); 

(2)修改students数据库中的student表,将列名stuName更改为stuTitle,同时,数据类型改为varchar(30);

alter TABLE students CHANGE COLUMN stuName stuTitle varchar(30); 

(3)修改students数据库中的student表,将stuSex列设置默认值为”男”;

alter TABLE students ALTER COLUMN stuSex set DEFAULT('男');

(4)修改students数据库中的student表,修改stuSex列的数据类型为varchar(20);       
alter TABLE students modify COLUMN stuSex varchar(20);

 (5)修改students数据库中的student表,删除stuColleage列;

alter TABLE students drop COLUMN stuColleage; 

(6)修改students数据库中的student表,更改字符集为utf8mb4,校验规则为utf8mb4_0900_ai_ci;

alter TABLE students CHARACTER set utf8mb4 COLLATE utf8mb4_0900_ai_ci; 

使用show create table <表名>命令查看创建表的sql语句。

(7)修改students数据库中的student表,重命名表名为stuInfo;

alter TABLE students rename to stuInfo; 

(8)修改students数据库中的stuInfo表,将stuTitle列放在第一列;

alter TABLE stuInfo modify COLUMN stuTitle varchar(30first;

(9)修改students数据库中的stuInfo表,将stuTitle列放在stuID列后面;

alter TABLE stuInfo modify COLUMN stuTitle varchar(30) after stuID; 

 Tip:可使用 DESC <表名>;命令查看修改后的表结构。

3.1.在MySQL中,使用 DROP TABLE 语句可以删除一个或多个数据表,语法格式如下:转自:http://c.biancheng.net/view/2439.html

DROP TABLE [IF EXISTS] 表名1 [ ,表名2, 表名3 …]

对语法格式的说明如下:

  • 表名1, 表名2, 表名3 …表示要被删除的数据表的名称。DROP TABLE 可以同时删除多个表,只要将表名依次写在后面,相互之间用逗号隔开即可。

  •  IF EXISTS 用于在删除数据表之前判断该表是否存在。如果不加 IF EXISTS,当数据表不存在时 MySQL 将提示错误,中断 SQL 语句的执行;加上 IF EXISTS 后,当数据表不存在时 SQL 语句可以顺利执行,但是会发出警告(warning)。

 两点注意:

  • 用户必须拥有执行 DROP TABLE 命令的权限,否则数据表不会被删除。

  •  表被删除时,用户在该表上的权限不会自动删除。

    例5:删除students数据库中的courses表。

drop table if EXISTS courses; 

3.2. 删除被其他表关联的主表

首先要解除关联表,只要删除表的外键约束即可通过drop table if exists 表名 进行删除。

语法结构:alter table 表名 drop foreign key 外键约束名;

drop table if exists 表名1,表名2,…表名n;

想了解更多干货,可通过下方扫码关注

可扫码添加上智启元官方客服微信👇

未经允许不得转载:17认证网 » MySQL数据表的创建、修改、删除及基本操作(二)
分享到:0

评论已关闭。

400-663-6632
咨询老师
咨询老师
咨询老师