[MySQL] 既存のテーブルに基づいて新しいテーブルを迅速に作成するいくつかの方法

学生テーブル 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班','[email protected]');
insert into t_student values (null,'李四','男',21,'2023-9-1','java01班','[email protected]');
insert into t_student values (null,'露露','男',21,'2023-9-1','java01班','[email protected]');

学生テーブルを表示するには:

select * from t_student;

 

新しいデータベース テーブルをすばやく作成するには、学生テーブル t_student をオブジェクトとして使用します。


方法 1: テーブルをすばやく作成します。構造とデータは t_student と一致します。

create table t_student2
as
select * from t_student;

テーブル内のデータを表示します。

select * from t_student2;

方法 2: t_student と同じ構造を持つ、データのないテーブルをすばやく作成する 

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

Where の後にフィルタリング条件が続きます。条件 (1=2) が false であるため、条件を満たすレコードのみが選択されます。したがって、文全体では実際には何も選択されていません。これをテーブル構造のコピーに使用できます。

テーブル内のデータを表示します。

select * from t_student3;

方法 3: テーブルをすばやく作成します:一部の列と一部のデータのみ:

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

テーブル内のデータを表示します。

select * from t_student4;

 

おすすめ

転載: blog.csdn.net/hold_on_qlc/article/details/130173661