一、表的创建
在Mysql中,通过使用create table 来创建表。
1、create table 的基本语法结构
create table 表名
( 字段名1 数据类型 字段约束
字段名2 数据类型 字段约束
……
) default charset=utf-8;
★★★★★字段约束都包含什么?
[ unsigned key|primary key NULL|NOT NULL UNIQUE AUTO_INCREMENT DEFAULT 值 COMMENT‘注释’ ]
★★★具体:
unsigned:无符号数值
key|primary key:主键约束
NULL|NOT NULL:该字段可空|不可空(二选一)
UNIQUE:约束唯一,即不能重复(例如手机号、身份证号不能重复)
AUTO_INCREMENT:用于主键自动增长
DEFAULT 值:约束默认值()
COMMENT‘注释内容’:约束注释内容
⭐️⭐️⭐️示例:创建一个student表,设置学号、姓名、性别三个字段不能为空,并且给性别字段指定默认值为“男”。
create table student
( ID char(4) NOT NULL, -- 学号(不能为空)
name char(20) NOT NULL, -- 姓名(不能为空)
sex char(2) NOT NULL DEFAULT '男', -- 性别(不能为空)
bir datetime, -- 出生日期
tel1 char(12), -- 联系方式1
tel2 char(12), -- 联系方式2
col char(30) -- 院校名称
);
2、创建带有主键的表
在数据表中能够唯一识别记录的字段,都会被设置为主键,例如:学号。当某个字段被设置为主键后,该字段不能有重复值,也不能为空,数据库管理系统将强制执行这一规则。这就叫“主键约束”。设置主键有两种方式:
方式1:
create table stud1
( ID char(4)primary keyNOT NULL, -- 学号(申明学号为主键)
name char(20) NOT NULL, -- 姓名
sex char(2) NOT NULL DEFAULT '男', -- 性别
bir datetime, -- 出生日期
tel1 char(12), -- 联系方式1
tel2 char(12), -- 联系方式2
col char(30) -- 院校名称
);
方式2:(当设置多个主键时,必须使用该方法,且主键必须设置为 NOT NULL)
create table stud2
( ID char(4) NOT NULL, -- 学号
name char(20) NOT NULL, -- 姓名
sex char(2) NOT NULL DEFAULT '男', -- 性别
bir datetime, -- 出生日期
tel1 char(12), -- 联系方式1
tel2 char(12), -- 联系方式2
col char(30), -- 院校名称
constraint xh primary key(ID) --(申明学号为主键)
);
3、设置多个字段为主键(主键必须设置为NOT NULL)
create table stud3
( IDchar(4) NOT NULL, -- 学号
course_ID char(6) NOT NULL, -- 课程代码
result1 decimal(6,2), -- 考试成绩(decimal 为mysql的数据类型)
result2 decimal(6,2), -- 平时成绩
constraint xh_kcdm primary key(ID,course_ID)
);
二、删除表
当不再需要数据库中的某表时,就应当删除该表释放资源。在删除失败时,大多数原因是该表可能与数据库中的其他表存在联系,此时应该先解除与其他表之间的联系。
drop table student;
三、截断表
只删除表中的数据而不删除表本身,可以使用 truncate 来截断。即:只删除表内的所有数据。
truncate table student;
四、重命名表
alter table stud3
rename to stu_info; -- 将 stud3 重命名为 stu_info
五、修改表
在数据库操作时,可能需要修改表结构,例如修改某字段的数据类型、添加新字段、删除指定字段等。
1、修改字段
alter table stud3 -- 要修改的表
modify
ID char(8); -- 要修改的字段名 要修改字段的新数据类型及长度(长度为可选项,当数据类型为带长度的数据类型时必须定义)
⚠️注意:alter table 可以修改字段的类型和长度,但是遇到以下情况不能修改:
1⃣️数据类型为:text、image、ntext 或 timestamp 字段;
2⃣️有unique约束的字段;
3⃣️设置默认值的字段;
4⃣️重复的字段;
5⃣️计算的或用在计算的字段中;
6⃣️用于check约束的字段;
3、添加新字段
alter table stud3
add
political char(10) ;-- 添加:政治面貌。字段的新数据类型及长度(长度为可选项,当数据类型为带长度的数据类型时必须定义)
4、添加带有默认值的新字段
alter table stud3
add
marry char(2) default'否'; -- 添加新字段婚否?默认值设置为否(一个中文汉字为2个字符)
5、删除字段
使用alter column时,要更改的字段不能是:数据类型为text 、image、ntext或timestamp的字段;表的rowguidcol字段;计算字段或用于计算字段中的字段、被复制字段、用在索引中的字段。能删除数据表中带有默认值的字段。
alter table stud3
drop column
political; -- 要删除的字段名:政治面貌