MySQL学习笔记——DDL(Data Define Language——数据定义语言)

概述

  • 作用:管理数据库与库中的
    • 库的管理:创建、修改、删除
    • 表的管理:创建、修改(不是修改表中的数据,而是修改表的结构)、删除(不是删除表中的数据,而是删除整个表,即删除后表不再存在,无法再向表中添加数据。DML语言中的删除表是指清空表中的数据
  • 关键字:(注意与DML语句的关键字区分
    • 创建:create
    • 修改:alter
    • 删除:drop

库的管理

库的创建

  • 语法:
create databaseif not exists】 库名;
  • 创建库books
    • 用以下方法创建时,如果books库已经存在,执行该语句时会报错
      在这里插入图片描述
    • 为了防止报错,我们可以添加一个判断条件。在添加条件后,如果books已经存在,再执行该语句时仅仅会抛出警告,提示books库没有创建成功。
      在这里插入图片描述

库的修改

  • 由于库一旦建立以后,会往库中存储数据,如果贸然对库进行修改的话,可能会出现一些意想不到的问题,从而造成数据的丢失,因此一般库一旦建立以后,不对库进行任何修改
  • 对库进行重命名MySQL1.7以后已经不再支持,只能通过在操作系统中直接修改文件夹名的方式来修改库名),不建议对库名进行修改
    rename database books to 新库名;
    
  • 更改库的字符集
    alter database 库名 character set 字符集;
    

库的删除

  • 语法(同样加上判断条件,否则库不存在时会报错)
drop databaseif exists】 库名;

表的管理

表的创建(重点)

  • 语法(【】中的内容为可选内容,但是if not exists建议都加上)
create tableif not exists】 表名(
	列名 列的类型 【(长度) 约束】,
	列名 列的类型 【(长度) 约束】,
	...
	列名 列的类型 【(长度) 约束】
)
  • 创建表book(包含书的编号、书名、价格、作者、出版日期)
    在这里插入图片描述

表的修改

  • 注意:对进行添加和删除时,不能加if not existsif exists

修改列名

  • 语法
alter table 表名 change column 旧列名 新列名 新的类型;	#类型必须写,如果不变就写原来的类型
#column可以省略,但是建议加上
  • 将book表中的publishdate改为pubDate
    在这里插入图片描述

修改表的类型或约束

  • 语法
alter table 表名 modify column 列名 类型或约束;
  • 将book表中的pubdate类型修改成timestamp(时间戳)
    在这里插入图片描述

添加新列

  • 语法
alter table 表名 add column 列名 类型 【first|after 字段名】; #可以设置添加列的位置,first表示添加到最前面一列,after表示添加到指定列的后面
  • 向author表中添加annual列,数据类型为double
    在这里插入图片描述

删除列

  • 语法
alter table 表名 drop column 列名;
  • 删除author表中的annual列
    在这里插入图片描述

修改表名

  • 语法
alter table 表名 rename to 新表名;
  • 将author表重命名为book_author

表的删除

  • 语法
drop tableif exists】 表名;
  • 删除book_author表
    在这里插入图片描述

表的复制

仅仅复制表的结构

在这里插入图片描述

复制表的结构+数据

在这里插入图片描述

只复制部分表的结构和数据

在这里插入图片描述

仅仅赋值部分表的结构,不复制数据

在这里插入图片描述

补充

  • 跨库创建表(即创建的表在库a,而需要的数据在库2)
    • 将表departments中的数据插入到新表dept2中
      在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值