随笔 - 1162  文章 - 0  评论 - 16  阅读 - 59万 

一、表的管理

  1、表的创建

    语法格式:

1
2
3
4
5
6
7
create table 【if not exists】 表名(
    列名 列的类型【(长度) 列的约束】,
    列名 列的类型【(长度) 列的约束】
    ...
    列的类型【(长度) 列的约束】
     
);

    创建表必须具备:

    ① create table 权限;

    ② 存储空间;

    ③ 必须指定表名;

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

  2、表的修改

    语法格式:

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

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

1
ALTER TABLE book CHANGE COLUMN publishDate pubDate DATETIME;

  

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

1
ALTER TABLE book MODIFY COLUMN pubDate TIMESTAMP;

 

     ③ 添加新列

1
ALTER TABLE author ADD COLUMN annual DOUBLE;

 

     ④ 删除列

1
ALTER TABLE book DROP COLUMN annual;

 

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

1
ALTER TABLE author RENAME TO book_author;

 

    ⑥ 修改表的字符集

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

 

  3、表的删除

    语法格式:

1
drop table 【IF EXISTS】 表名;

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

1
2
3
4
5
6
7
DROP DATABASE IF EXISTS 旧库名;
 
CREATE DATABASE 新库名;
 
DROP TABLE IF EXISTS 旧表名;
 
CREATE TABLE 表名();

    表的删除:

    ① 数据和结构都被删除;

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

    ③ 所有相关索引被删除;

    ④ DROP Table 语句不能回滚;

  4、查看表

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

 

1
show tables;

 

  

 

    查看表结构:

1
DESC 表名

  

    查看表全部数据:

1
select * from 表名;

     查看创建表的 SQL 语句:

1
show create table 表名;

  

  5、复制表

    语法格式:

1
CREATE TABLE 新表名 LIKE 表名;

    

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

1
CREATE TABLE copy_book LIKE book;

  

    ② 复制表结构 + 表数据

1
2
CREATE TABLE copy_book2
SELECT * FROM book;

  

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

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

  

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

      方式一:

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

  

      方式二:

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

  

二、案例

  1、创建表

    表 book:

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

  

    表:author

1
2
3
4
5
6
CREATE TABLE author (
    id INT,
    au_name VARCHAR(20),
    nation VARCHAR(10)
 
);

  

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

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

  

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

1
ALTER TABLE emp5 MODIFY COLUMN last_name VARCHAR(50);

  

  4、根据表employees创建employees2

1
CREATE TABLE employees2 LIKE myemployees.employees;

  

  5、将表employees2重命名为emp5

1
ALTER TABLE employees2 RENAME TO emp5;

  

  6、在表emp5中添加新列test_column

1
ALTER TABLE emp5 ADD COLUMN test_column INT;

  

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

1
ALTER TABLE emp5 DROP COLUMN test_column;

  

 

posted on   格物致知_Tony  阅读(90)  评论(0编辑  收藏  举报
编辑推荐:
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
阅读排行:
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· 没有源码,如何修改代码逻辑?
· NetPad:一个.NET开源、跨平台的C#编辑器
· 面试官:你是如何进行SQL调优的?
历史上的今天:
2019-06-25 02CSS用法和特性
2019-06-25 01CSS初识
点击右上角即可分享
微信分享提示

目录导航