sql学习记录11--CREATE TABLE、复制表、更新表、删除表、表名重命名

这篇博客介绍了MySQL中对表的操作,包括CREATE TABLE创建表,使用COPY TABLE复制表结构,ALTER TABLE进行字段的添加、删除和修改,DROP TABLE删除表,以及RENAME TABLE重命名表。详细讲解了每个操作的语法和实例演示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

表操作–对表本身操作

在这里插入图片描述

创建表CREATE TABLE

在这里插入图片描述
语句结构:
CREATE TABLE 表名
(字段名1 数据类型 属性
字段名2 数据类型 属性

1.表名要求:英文字符开头,由字母、数字、下划线 组成,英文通常小写。
2.字段之间逗号 隔开,字段名唯一
3.字段名、数据类型是必须的项,属性不是必须项,中间空格隔开。
4.属性:是否允许空值NULL,默认允许,设置成不允许空值就是用NOT NULL;默认值设置用DEFAULT设置,必须是常数

例,创建一个表,
解释:
(1)VARCHAR 表示不定长字符串,VARCHAR (225)最大长度可以225;CHAR表示定长字符串。
(2)属性NOT NULL表示该字段不能为空。
(3)DATE是日期型数据

CREATE TABLE pet2
            ( name VARCHAR(225) NOT NULL,
			  owner VARCHAR(225) NOT NULL,
			  species VARCHAR(225),
			  sex CHAR(1),
			  birth DATE,
			  death DATE
			);

结果:
在这里插入图片描述检查是否创建上这个表:

SELECT * FROM pet2;

结果:
在这里插入图片描述

尝试插入一些数据

INSERT INTO pet2 VALUES('Broswer2','Diane2','dog','m','2000-02-20','2015-08-20');
INSERT INTO pet2(name,owner,species) VALUES('Broswer3',NULL,'dog');
INSERT INTO pet2(name,owner,species,sex) VALUES('Broswer4',NULL,'dog','f');
SELECT * FROM pet2;

结果:
在这里插入图片描述
因为onwer设定的时候是要求不能为空。

在这里插入图片描述
例2,

CREATE TABLE pet2
            (name VARCHAR(225) NOT NULL, #不能为空
			 owner VARCHAR(225) DEFAULT 'police',
			 #默认值为police,也可以后期设置为空NULL
			 species VARCHAR(225),
			 sex CHAR(1),
			 birth DATE,
			 death DATE
		    );
SELECT * FROM pet2; #结果1
INSERT INTO pet2 VALUES('Broswer2','Diane2','dog','m','2000-02-20','2015-08-20');
INSERT INTO pet2(name,owner,species) VALUES('Broswer3',NULL,'dog');
#这里的NULL就是类似赋值,只要字段没有要求不能为空值(NOT NULL),就可以将字段名设定为空值NULL
INSERT INTO pet2(name,owner,species,sex) VALUES('Broswer4','d2','dog','f');
SELECT * FROM pet2;#结果2

结果1:
在这里插入图片描述
结果2:
在这里插入图片描述

#与INSRT INTO填充类似的可用更新语句修改部分单元格,比如:
UPDATE pet2 
SET owner = NULL
WHERE name = 'broswer4';
SELECT * FROM pet2;

结果:
在这里插入图片描述

在cmd中操作sql

1、通过cmd进入mysql
C:\Windows\System32,搜索cmd,或者win+r搜索cmd,转到MySQL安装目录的bin文件夹下
在这里插入图片描述
mysql -u root -p #输入密码root@123
结果:
在这里插入图片描述
切换到sqllearning数据库,语句USE sqllearning
结果:database changed说明数据库切换成功
在这里插入图片描述创建一个表,用的语句与在navicat一样,在cmd中只要不加分号就代表语句没有结束,此时回车之后也是继续这条语句写,如下:
在这里插入图片描述
在表格中插入数据,
在这里插入图片描述查看:
在这里插入图片描述注:
之前在cmd中创建数据库sqllearning,用的语句是CREATE DATEBASE sqllearining

回navicat右键刷新一下,可以看到在cmd中创建的表pet3:
在这里插入图片描述

表操作–复制表CREATE TABLE 表名 AS

在这里插入图片描述
如果从已知的一张表,我想复制其结构怎么做?

复制表mysql操作语句:
CREATE TABLE 表名 AS 目标二维表;
注:通过select语句得到的就是目标二维表,表结构由select字段决定,表记录由select中的where过滤条件决定。

标准的SQL写法:
SELECT 字段 INTO 新表 FROM 目标表;#但是这种写法在mysql中是禁止的。

例1:

CREATE TABLE pet4
AS 
SELECT * FROM pet2;

结果:
在这里插入图片描述例2:

CREATE TABLE pet4
AS 
SELECT p2.name,p2.owner FROM pet2 AS p2;
SELECT * FROM pet4;

结果:
在这里插入图片描述
例3,只要某个表中的两个字段,但是不要里面的记录,即一个空表,但要字段名。

但字段名和别人一样
CREATE TABLE pet4
AS 
SELECT p2.name,p2.owner FROM pet2 AS p2 WHERE 1 = 2 ;
SELECT * FROM pet4 ;

解释:因为SELECT p2.name,p2.owner FROM pet2 AS p2 WHERE 1 = 2中,1=2是一个伪命题,pet2表中没有满足这个条件的数据,所以取出来的数据也是空
结果:
在这里插入图片描述

表操作–更新表ALTER TABLE ADD/DROP、MODIFY COLUMN

更新表是对表的结构进行更新,使得其字段名与属性发生改变。
在这里插入图片描述关键字:ALTER TABLE
语句:
ALTER TABLE 表名 + 操作
三种操作:
(1)添加字段ADD
使用:
ALTER TABLE 表名 ADD 字段名 数据类型 属性;

(2)删除一个或多个字段DROP(或者用DROP COLLUMN),字段名用逗号连接
使用:
ALTER TABLE 表名 DROP 字段名;
ALTER TABLE 表名 DROP COLUMN 字段名;

(3)修改字段MODIFY COLUMN
使用:
ALTER TABLE 表名 MODIFY COLUMN 字段名 数据类型 属性;

注:表更改不能撤销,建议做完整备份
例,添加表中的字段

#更新表,增加字段
ALTER TABLE pet4 ADD sex CHAR(1);
ALTER TABLE pet4 ADD birth DATE NOT NULL;
SELECT * FROM pet4;

结果:
在这里插入图片描述
例:删除表字段

ALTER TABLE pet4 DROP birth ;
SELECT * FROM pet4;

结果:
在这里插入图片描述
例:删除两个字段,两个DROP

ALTER TABLE pet4 DROP birth, DROP sex;
SELECT * FROM pet4;

例:DROP COLUMN

ALTER TABLE pet4 DROP COLUMN birth;
SELECT * FROM pet4;

例:修改属性
原来sex的属性是CHAR(1),现在改为VARCHAR(255).
原来:
在这里插入图片描述
修改代码:

ALTER TABLE pet4 MODIFY COLUMN sex VARCHAR(255);

结果:
在这里插入图片描述查看一下:
在这里插入图片描述

将数据类型改回CHAR(1),并且增加属性NOT NULL

ALTER TABLE pet4 
MODIFY COLUMN sex CHAR(1) NOT NULL ;

结果:
在这里插入图片描述
查看:(右键–设计表)
在这里插入图片描述

表操作–删除表

在这里插入图片描述删除表–语句:
DROP TABLE 表名;

注:DROP TABLE没有确认、没有撤销、永久删除,建议做完整备份。
例:

DROP TABLE pet4;

结果:
在这里插入图片描述

表操作–表名重命名RENAME TABLE

语句:
RENAME TABLE 表名1 TO 新表名1,表名2 TO 新表名2,…;

注:可以批量修改,从左往右依次进行。

例:

#更新表,增加字段
ALTER TABLE pet4 ADD sex CHAR(1);
SELECT * FROM pet4;

结果:
在这里插入图片描述例:

ALTER TABLE pet4 ADD birth DATE NOT NULL;

此时,下图位置右键刷新一下
在这里插入图片描述出现pet4表,选中pet4右键–设计表,查看表的结构,如下:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值