【MySQL】根据现有的表快速创建新表的几种方法

文章展示了如何使用SQL语句创建一个学生信息表t_student,包括字段定义、插入数据以及通过不同方式复制表结构和数据到新表t_student2、t_student3和t_student4。方法一保持结构和数据一致,方法二仅复制结构,方法三则选择部分列和数据。

创建学生表t_student,语法为:

create table t_student(
        sno int(6) primary key auto_increment, 
        sname varchar(5) not null, 
        sex char(1) default '男' check(sex='男' || sex='女'),
        age int(3) check(age>=18 and age<=50),
        enterdate date,
        classname varchar(10),
        email varchar(15) unique
);

为学生表添加一些学生数据:

insert into t_student values (null,'张三','男',21,'2023-9-1','java01班','zs@126.com');
insert into t_student values (null,'李四','男',21,'2023-9-1','java01班','ls@126.com');
insert into t_student values (null,'露露','男',21,'2023-9-1','java01班','ll@126.com');

查看学生表:

select * from t_student;

 

以学生表t_student为对象,快速创建新的数据库表。


方法一:快速创建一张表:结构和数据跟t_student 都是一致的

create table t_student2
as
select * from t_student;

查看表中数据:

select * from t_student2;

方法二:快速创建一张表,结构跟t_student一致,但是没有数据 

create table t_student3
as
select * from t_student where 1=2;

where 后面表示过滤的条件,只有满足条件的记录才被选择,因为条件(1=2)为假,所以整句话其实就是什么都不选择,可以用于实现拷贝一个表结构。

查看表中数据:

select * from t_student3;

方法三:快速创建一张表:只要部分列,部分数据

create table t_student4
as
select sno,sname,age from t_student where sno = 2;

查看表中数据:

select * from t_student4;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

今天自洽了吗

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值