mysql:DDL

数据库模式定义语言DDL(data definition language)主要由两个部分组成:库的管理和表的管理。

一.库的管理

1.创建

语法:create database 【if not exists】 库名;
ps: if not exists 可要可不要,但是建议加上。

#案例:创建一个叫my_idol的库
CREATE DATABASE IF NOT EXISTS my_idol;

2.修改

1.修改库名:rename database 旧库名 to 新库名;

rename database my_idol to idol;

2.修改库的字符集:alter database 库名 character set 字符集名称

#修改idol数据库的字符集为gbk(原来是utf8)
alter database idol character set gbk;

3.删除

语法:drop database 【if exists】库名;
ps: likewise, if exists 可要可不要,但最好加上

drop database if exists idol;

二.表的管理

1.创建

语法:
create table 【if not exists】 表名(
    列名 列的类型【(长度) 约束】,
    列名 列的类型【(长度) 约束】,
    列名 列的类型【(长度) 约束】,
    …
    列名 列的类型【(长度) 约束】
    );
SQL中的数据类型请戳:数据库常见数据类型.
SQL中常见约束请戳:数据库中常见约束.

#案例:创建一个book表
create table if not exists book(
id int,
book_name varchar(20),
price double,
authorid int,
publish_date datetime
);

2.修改

2.1 修改表名

语法:alter table 旧表名 rename to 新表名;

alter table book rename to my_book;

2.2 修改列名

语法:alter table 表名 change column 旧列名 to 新列名;

alter table my_book change column id to book_id;

2.3 修改列的类型或者约束

语法:alter table 表名 modify column 列名 新类型or新约束;

alter table my_book modify column publish_date timestamp;

2.4 添加新列

语法:alter table 表名 add column 新列名字 新列类型 【新列约束】;

alter table my_book add column publisherid int;

2.5 删除列

语法:alter table 表名 drop column 列名;

alter table my_book drop column publisherid;

3.表的删除

语法:drop table if exists 表名;

4.表的复制

4.1 仅仅复制表的结构

语法:create table 表名 copy like 被复制的表名;

create table copy_1 copy like author;

4.2 复制表结构+数据

语法:
create table 表名
select * from 被复制的表名;

create table copy_2
select * from  author;

4.3 复制表结构+部分数据

语法:
create table 表名
select *
from 被复制的表名
where 筛选条件;

create table copy_3
select *
from author
where id>2;

4.4 仅复制表中某些字段

语法:
create table 表名
select 字段名 【,字段名2 …】
from 被复制的表名
【where 筛选条件】;
ps:这些字段对应的数据也会被复制下来

create table copy_4
select authorname
from  author
where id>2;

在这里插入图片描述

发布了43 篇原创文章 · 获赞 1 · 访问量 739

猜你喜欢

转载自blog.csdn.net/weixin_41391619/article/details/104982421
今日推荐