一、表的管理
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; |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题: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初识