数据库模式定义语言DDL(data definition language)主要由两个部分组成:库的管理和表的管理。
语法:create database 【if not exists】 库名;
ps: if not exists 可要可不要,但是建议加上。
#案例:创建一个叫my_idol的库
CREATE DATABASE IF NOT EXISTS my_idol;
1.修改库名:rename database 旧库名 to 新库名;
rename database my_idol to idol;
2.修改库的字符集:alter database 库名 character set 字符集名称
#修改idol数据库的字符集为gbk(原来是utf8)
alter database idol character set gbk;
语法:drop database 【if exists】库名;
ps: likewise, if exists 可要可不要,但最好加上
drop database if exists idol;
语法:
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
);
语法:alter table 旧表名 rename to 新表名;
alter table book rename to my_book;
语法:alter table 表名 change column 旧列名 to 新列名;
alter table my_book change column id to book_id;
语法:alter table 表名 modify column 列名 新类型or新约束;
alter table my_book modify column publish_date timestamp;
语法:alter table 表名 add column 新列名字 新列类型 【新列约束】;
alter table my_book add column publisherid int;
语法:alter table 表名 drop column 列名;
alter table my_book drop column publisherid;
语法:drop table if exists 表名;
语法:create table 表名 copy like 被复制的表名;
create table copy_1 copy like author;
语法:
create table 表名
select * from 被复制的表名;
create table copy_2
select * from author;
语法:
create table 表名
select *
from 被复制的表名
where 筛选条件;
create table copy_3
select *
from author
where id>2;
语法:
create table 表名
select 字段名 【,字段名2 …】
from 被复制的表名
【where 筛选条件】;
ps:这些字段对应的数据也会被复制下来
create table copy_4
select authorname
from author
where id>2;