深入浅出MYSQL笔记——DDL语句

最近时间比较充裕,所以就买了本《深入浅出MySQL》学一学,一方面准备系统地梳理一下MySQL的相关知识,另一方面也强化一下自身的能力,查缺补漏。
这篇文章的目的是结合书上所说的内容,简单的回顾一下SQL基础,看看有什么地方是自己还未了解清楚的。

  1. SQL分类
    关于SQL分类这方面,下面准备了一张图让大家直观的去了解和认识:
    在这里插入图片描述
    下面就通过实际操作去观察一下上面这三种SQL语句!注意:这里不使用Navicat等工具去连接数据库,而是使用原生的命令窗口。因为有一些东西在命令窗口才可以看到。

  2. DDL语句
    DDL就是对数据库内部的对象进行创建、删除、修改等操作的语言。它和DML最大的区别就是DML只是操作表内部的数据,而不涉及表的定义、结构的修改,更不会涉及其他对象。DDL语句更多地是由数据库管理员(DBA)使用,开发人员一般很少使用。

既然是SQL基础的复习那自然要从连接数据库开始:
在这里插入图片描述
创建数据库之前,我们需要先看一下MySQL中自带的数据库有哪些?

show databases;

在这里插入图片描述
下面对着四个自带的数据库做一下介绍:

information_schema: 主要存储系统中的一些数据库对象信息,比如用户表信息、列信息、权限信息、字符集信息、分区信息等。每个用户都可以查看这个数据库,但根据权限的不同看到的内容不同。

在这里插入图片描述
performance_schema: MySQL5.5引入的系统库,用于存储系统性能相关的动态参数表。

mysql 5.5 版本 新增了一个性能优化的引擎: PERFORMANCE_SCHEMA这个功能默认是关闭的:
需要设置参数: performance_schema 才可以启动该功能,这个参数是静态参数,只能写在my.ini 中 不能动态修改。
这里的数据表分为几类:
1) setup table : 设置表,配置监控选项。
2) current events table : 记录当前那些thread 正在发生什么事情。
3) history table 发生的各种事件的历史记录表
4) summary table 对各种事件的统计表
5) 杂项表,乱七八糟表。
setup_consumers 描述各种事件
setup_instruments 描述这个数据库下的表名以及是否开启监控
setup_timers 描述监控选项已经采样频率的时间间隔

sys: MySQL5.7引入的系统库,本身不记录系统数据,基于information_schema和performance_schema之上,封装了一层更加易于调优和诊断的系统视图。

mysql: 存储系统的用户权限信息。
这个是mysql的核心数据库,类似于sql server中的master表,主要负责存储数据库的用户、权限设置、关键字等mysql自己需要使用的控制和管理信息。
不可以删除,如果对mysql不是很了解,也不要轻易修改这个数据库里面的表信息。

下面是创建数据库和数据表的流程:

create database test1;

在这里插入图片描述
对于下面这个Query OK 需要额外解释一下:有人可能会纳闷,没有执行查询操作为什么会显示查询成功呢?其实呢 也不用去纠结,这是MySQL的一个特点:所有的DDL和DML(不包含SELECT)操作执行成功后都显示“Query OK”。

接下来就是在test1中创建一个数据表去操作操作了。

-- 首先呢,需要指定数据表创建的数据库
use test1;

在这里插入图片描述
– 创建表 create table tablename(
– column_name_1 column_type_1 constraints,
– column_name_2 column_type_2 constraints,
– …
– column_name_n column_type_n constraints)
– 因为MySQL的表名是以文件的形式保存在磁盘上的,所以表名的字符可以用任何文件名允许的字符。
– column_name:列的名字;column_type:列的数据类型;constraints:列的约束条件

在这里插入图片描述

-- 查看当前数据库中有哪些数据表
show tables;

在这里插入图片描述
创建完数据表之后,在这种黑窗口中,我们首先想要干的事情就是查看表结构。有两种方式可以查看表结构:

--1.desc + 表名
desc emp;

在这里插入图片描述
这种方式很方便,但是更详细的信息却看不到。下面的这一种可以获得表定义的相关信息:

-- show create table + 表名 + \G; \G的含义是让记录按照字段竖向排列
show create table emp \G;

在这里插入图片描述
从上图可以看出,在MYSQL8.0中,创建表时的引擎默认是InnoDB 字符集是utf8mb4。

修改表结构:

--语法 alter table + tablename + modify + [column] column_definition [FIRST|AFTER]
-- alter table + tablename + change [column] old_col_name column_definition [FIRST|AFTER col_name]

①、从最简单的开始:修改已存在的某个字段:这就包括修改字段的[数据类型和字段名]
在这里插入图片描述
下面要注意:修改已存在字段的名字,不能使用modify而是需要使用change。
在这里插入图片描述
②、增加新字段:
在这里插入图片描述
③、修改已经差不多了,剩下的就是删除字段了
在这里插入图片描述
最后简单总结一下modify和change的区别:二者都可以修改表定义,但是change需要在后面写两次列名,而modify不需要;但是change的优点是可以修改字段的名字,modify却做不到这一点。
在这里插入图片描述
DDL最后的结尾:
修改表名、删除表、删库跑路😄。
在这里插入图片描述

到这里,篇幅也不短了,那么剩下的两个语句,在下次的文章中再介绍吧。毕竟人的注意力集中的时间是有限的,如果文章长了的话,就没法专心看完了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值