zoukankan      html  css  js  c++  java
  • 第二节:表的管理

    一、表的管理

      1、表的创建

        语法格式:

    create table 【if not exists】 表名(
    	列名 列的类型【(长度) 列的约束】,
    	列名 列的类型【(长度) 列的约束】
    	...
    	列的类型【(长度) 列的约束】
    	
    );
    

        创建表必须具备:

        ① create table 权限;

        ② 存储空间;

        ③ 必须指定表名;

        ④ 必须知道列名,数据类型和长度或约束;

      2、表的修改

        语法格式:

    alter table 表名 add|drop|modify|change column 列名 【列类型 约束】;
    

           ① 修改列名(column可以省略) 

    ALTER TABLE book CHANGE COLUMN publishDate pubDate DATETIME;
    

      

           ② 修改列的类型或约束或默认值

    ALTER TABLE book MODIFY COLUMN pubDate TIMESTAMP;

         ③ 添加新列

    ALTER TABLE author ADD COLUMN annual DOUBLE;
    

         ④ 删除列

    ALTER TABLE book DROP COLUMN annual;
    

         ⑤ 修改表名(必须是对象的拥有者)

    ALTER TABLE author RENAME TO book_author;
    

        ⑥ 修改表的字符集

    alter table 表名 character set 字符集名称;
    

     

      3、表的删除

        语法格式:

    drop table 【IF EXISTS】 表名;
    

        一般在创建表/库的之前,都会先进行删除,再进行创建:

    DROP DATABASE IF EXISTS 旧库名;
    
    CREATE DATABASE 新库名;
    
    DROP TABLE IF EXISTS 旧表名;
    
    CREATE TABLE 表名();
    

        表的删除:

        ① 数据和结构都被删除;

        ② 所有正在运行的相关事务被提交;

        ③ 所有相关索引被删除;

        ④ DROP Table 语句不能回滚;

      4、查看表

        查询某个数据库中所有的表名称:

    show tables;
    

      

        查看表结构:

    DESC 表名
    

      

        查看表全部数据:

    select * from 表名;
    

         查看创建表的 SQL 语句:

    show create table 表名;
    

      

      5、复制表

        语法格式:

    CREATE TABLE 新表名 LIKE 表名;
    

        

        ① 复制表结构,不会有数据

    CREATE TABLE copy_book LIKE book;
    

      

        ② 复制表结构 + 表数据

    CREATE TABLE copy_book2 
    SELECT * FROM book;
    

      

        ③ 复制表结构 + 部分数据,部分列

    CREATE TABLE copy_book3
    SELECT id, bname
    FROM book
    WHERE id = 1;
    

      

        ④ 仅仅复制某些字段(列)不复制数据

          方式一:

    CREATE TABLE copy_book4
    SELECT id, bname
    FROM book
    WHERE 1 = 2;
    

      

          方式二:

    CREATE TABLE copy_book4
    SELECT id, bname
    FROM book
    WHERE 0;   #0代表 false
    

      

    二、案例

      1、创建表

        表 book:

    CREATE TABLE book (
    	id INT,                #编号
    	bname VARCHAR(20),     #图书名
    	price DOUBLE,          #价格
    	author INT,            #作者编号
    	publishDate DATETIME   #出版日期 
    );
    

      

        表:author

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

      

      2、将表departments中的数据插入新表dept2中

    CREATE TABLE dept2
    SELECT department_id,department_name
    FROM myemployees.departments;
    

      

      3、将列Last_name的长度增加到50

    ALTER TABLE emp5 MODIFY COLUMN last_name VARCHAR(50);
    

      

      4、根据表employees创建employees2

    CREATE TABLE employees2 LIKE myemployees.employees;
    

      

      5、将表employees2重命名为emp5

    ALTER TABLE employees2 RENAME TO emp5;
    

      

      6、在表emp5中添加新列test_column

    ALTER TABLE emp5 ADD COLUMN test_column INT;
    

      

      7、直接删除表emp5中的列 dept_id

    ALTER TABLE emp5 DROP COLUMN test_column;
    

      

  • 相关阅读:
    Flex通过Blazeds利用Remoteservice与后台java消息推送
    flex 实时更新的一些方法总结
    想让领导放权,就先让领导放心(深度好文)
    教师表(TEACHER.DBF)
    Delphi中基本控件之SaveDialog控件的使用总结
    Delphi实现类的持久化保存(DFM格式)
    人事中的BP是什么意思?
    从HR 到SBP其实还有很长的一段路要走
    在DBGrid中,按ctrl+Delete不让删除,怎么实现
    delphi adoquery的post和UpdateBatch
  • 原文地址:https://www.cnblogs.com/niujifei/p/14930826.html
Copyright © 2011-2022 走看看