• DDL语言


    数据库定义语言

    库和表的管理

    一、库的管理
    创建、修改、删除
    二、表的管理
    创建、修改、删除

    创建:create 
    修改:alter 
    删除:drop 
    
    database   库
       table  表

    一、库的管理

    库的创建:create database 库名

    #案例:创建库Books
    CREATE DATABASE Books
    
    #为了提高容错性
    CREATE DATABASE IF NOT EXISTS Books
    /*
    如果库已经存在了就不创建,并且也不报错。
    如果库不存在就创建
    */

    IF EXISTS仅仅在表的删除和表的创建时使用

    exists : 强调的是是否返回结果集,不要求知道返回什么
    exists (sql 返回结果集为真) 有
    not exists (sql 不返回结果集为真)没有

    #通用的写法
    DROP DATABASE IF EXISTS 旧的库名
    CREATE DATABASE 新的库名
    
    DROP TABLE IF EXISTS 旧的表名
    CREATE TABLE 新的表名

    库名的修改

    /*
    一般不修改,修改数据会出现问题
    */
    /*
    需要修改:
    1.停止MySQL服务
    2.修改文件夹名
    3.启动MySQL服务
    */

    更改库的字符集 CHARACTER字符集

    ALTER DATABASE books CHARACTER SET gbk;

    库的删除

    DROP DATABASE books;
    
    DROP DATABASE IF EXISTS books;

    二、表的管理

    表的创建

    create table 表名(
    列名 列的类型【长度 约束】,
    列名 列的类型【长度 约束】,
    列名 列的类型【长度 约束】,
    ...
    列名 列的类型【长度 约束】

     案例:创建book表

    CREATE TABLE book(
    id INT,#编号
    bName VARCHAR(20),#书名的最大长度 20个字符
    price DOUBLE,#价格
    authorId INT,#作者编号,实现分类存储减少冗余
    publishDate datetime #出版日期
    );

     案例,创建author表

    CREATE TABLE author (
    id INT,
    au_name VARCHAR(20),
    nation VARCHAR(20)
    )

    查看表的结构

    DESC book;
    DESC author;

    表的修改

    语法
    ALTER TABLE 表名 add|drop|modify|change COLUMN 列名 新的列名 类型【约束】
    
    ①修改列名 
    after table 表名 change column 旧列名 新列名 类型;
    
    ②修改列的类型或约束 
    after table 表名 modify column 列名 新类型【新约束】
    
    ③添加新列 
    after table 表名 add column 列名 类型【(first|after 字段名)控制添加的位置】默认就是在最后
    
    ④删除列
    after table 表名 drop column 列名;
    
    ⑤修改表名
    after table 表名 rename 【to】 新表名
    #①修改列名
    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;

     表的删除

    DROP TABLE book_author;

     表的复制

    INSERT INTO author 
    VALUES(1,'村上春树','日本'),
    (2,'莫言','中国'),
    (3,'冯唐','中国'),
    (4,'金庸','中国');

     1.仅仅复制表的结构

    create table 表名 like 旧表
    CREATE TABLE copy LIKE author;

     2.复制表的结构+数据

    create table 表名 select 查询列表 from 旧表【where筛选】
    CREATE TABLE copy2
    SELECT * FROM author;

    3.复制表的结构+部分数据

    CREATE TABLE copy3
    SELECT id,au_name
    FROM author
    WHERE nation='中国';

    4.复制表的某些字段(列),不要数据

    CREATE TABLE copy4
    SELECT id,au_name
    FROM author
    WHERE 0;

    添加新列

    after table 表名 ADD column 列名 类型【(first|after 字段名)控制添加的位置】默认就是在最后。很少使用
    CREATE TABLE test2(
    t1 INT,
    t2 INT,
    t3 INT
    );
    
    DESC test2
    
    ALTER TABLE test2 ADD COLUMN ddd INT FIRST;
    ALTER TABLE test2 ADD COLUMN ddd2 INT AFTER t2;

     ALTER TABLE test2 ADD COLUMN ddd3 INT last;不支持,默认就是在最后

    #2将表department中的数据插入新表dept2中

     CREATE TABLE dept2
     SELECT department_id,department_name
     FROM myemployees.departments;
     /*
     可以跨库复制表的结构 库名.表名
     */
  • 相关阅读:
    从淘宝数据结构来看电子商务中商品属性设计
    YY淘宝商品数据库设计
    ElasticSearch-聚合bucket学习
    ElasticSearch-聚合bucket
    Elasticsearch(9) --- 聚合查询(Bucket聚合)
    Elasticsearch-多字段搜索(Multifield Search)和提高精确度
    五、设备管理与文件系统
    六、YUM仓库
    四、查找命令
    二、用户权限
  • 原文地址:https://www.cnblogs.com/rijiyuelei/p/12380523.html
Copyright © 2020-2023  润新知