DDL 数据库定义语言--库创建/修改/删除--表的创建/修改/删除/复制

/*进阶 11
DDL 数据库定义语言
    库和表的管理
     一:库的管理:创建/修改/删除
     二:表的管理:创建/修改/删除
    创建: CREATE DATABASE [IF NOT EXISTS] 库名;
    修改: alter
    删除: DROP DATABASE [IF EXISTS] 库名;
*/
#一 : 库的管理
    #1 库的创建
CREATE DATABASE books;

CREATE DATABASE IF NOT EXISTS books;
 
   #2/库的修改
    #库名的修改,需要停止服务器,然后修改本地文件,重启服务器;
   #3 更新库的字符集为
ALTER DATABASE books
CHARACTER SET gbk;
   #4 库的删除
DROP DATABASE IF EXISTS books;

#二: 表的管理
/*  #1:表的创建

    create table [if not exists] 表名(
    列名 列的类型[长度 , 约束]
        列名 列的类型[长度 , 约束]
        列名 列的类型[长度 , 约束]
        列名 列的类型[长度 , 约束]
    )
    
    #2:表的修改 (下面有具体的栗子)
    alter table 表名 add/drop/modify/change column 列名 [列类型 约束];
    
    #3: 表的删除
    drop table [if exists] 表名;    
    
    #通用的开发经验:
        drop datebase if exists 旧的库名;
        create datebase 新库名;
        
        drop table if exists 旧表名;
        create table 表名();

    #4: 表的复制
    #1):仅仅复制表的结构(全部的字段)
    CREATE TABLE copy LIKE author;
    
    #2):复制表的结构和数据
    CREATE TABLE copy2 SELECT * FROM author;

    #3):只复制部分数据
    CREATE TABLE copy3 SELECT id,author_name FROM author WHERE nation='中国';

    #4):仅仅复制某些字段(where 一个恒假的字段):
    CREATE TABLE copy4 SELECT id,author_name FROM author WHERE 0;  #永远为假

    
*/
  #创建book表
CREATE DATABASE IF NOT EXISTS books;
CREATE TABLE book(
    id INT,  #编号   
    bName VARCHAR(20) , #一个汉字或者字母都是一个字符,规定字符个数的长度
    price DOUBLE ,
    author INT,  #作者
    publishDate DATETIME #出版日期
);
  #创建表author

CREATE TABLE IF NOT EXISTS author(
    id INT,
    author_name VARCHAR(20),
    nation VARCHAR(10)
);
DESC author;
 
 #2 表的修改:
   #修改列名: (必须要加上列名,顺带可以修改列的属性)
   ALTER TABLE    book 
   CHANGE COLUMN publishdate pubdate DATETIME;
    
   #修改列的类型或者约束 : 
    ALTER TABLE    book 
   MODIFY COLUMN pubdate TIMESTAMP;    #更新成时间戳类型 
   
   #添加新列:
   ALTER TABLE author ADD COLUMN annual DOUBLE ;
   
   #删除列:
   ALTER TABLE author DROP COLUMN annual;
   
   #修改表名:
   ALTER TABLE author RENAME TO book_author;

#3:表的删除
DROP TABLE IF EXISTS book_author;
SHOW TABLES;

#4: 表的复制
INSERT INTO AUTHOR
VALUES(1,'莫言','中国'),(2,'村上春树','中国');
    #1):仅仅复制表的结构(全部的字段)
    CREATE TABLE copy LIKE author;
    
    #2):复制表的结构和数据
    CREATE TABLE copy2
    SELECT * FROM author;

    #3):只复制部分数据
    CREATE TABLE copy3
    SELECT id,author_name
    FROM author
    WHERE nation='中国';

    #4):仅仅复制某些字段(1=2):
    CREATE TABLE copy4
    SELECT id,author_name
    FROM author
    WHERE 0;  #永远为假

猜你喜欢

转载自www.cnblogs.com/zhazhaacmer/p/9862237.html