写点什么

【数据库原理 | MySQL】一文打通 DDL 语句 - ARTS 打卡第 一 周

  • 2023-08-15
    广东
  • 本文字数:1867 字

    阅读完需:约 6 分钟


🤵‍♂️ 个人主页: @计算机魔术师👨‍💻 作者简介:CSDN 内容合伙人,全栈领域优质创作者。


书接上文介绍了数据库的前世今生,本文讲解 SQL 语句中的 DDL 语句


@[toc]

二、SQL

SQL 编程语言是对关系型数据库操作的一套统一标准的语言,全程:Structed Query Language,结构化查询语言

2.1 SQL 通用语法

  1. SQL 语句可以单行书写,也可以多行书写,以分号结尾

  2. SQL 语句可以用空格/缩进来增强语句可读性

  3. MySQL 数据库的语句不分大小写,使用关键字建议使用大写

  4. 注释:单行注释 : -- #多行注释 /* */

2.2 SQL 的分类

我们对 SQL 功能进行分类,主要分为四类


  • DDL(Defined) DML(Manipulation) DQL(Query) DCL(Contrl)


三、 SQL 之 DDL

Data Definition Language,数据定义语言,用来定义数据库对象(数据库,表,字段) 。

3.1 数据库操作

1)查询所有数据库

show databases;
复制代码


2) 查询当前数据库(select 等用法)

select 在其他编程语言类似于 print write 可以用于打印字符串、数字、数学表达式结果等


  • 查看 MySQL 版本


select version();  # version() 函数 返回版本号,select输出该字符串
复制代码



  • 输出当前时间


select now();  # now() 
复制代码



  • 查看当前数据库


select database();  # database() 不接受任何参数,返回默认或当前数据库的名称,没有则返回  NULL
复制代码



关于select更多操作(点击链接跳转)

3)查询创建数据库的建库语句

该语句一般很少用到


show create table 表名;
复制代码


4)创建数据库

create database [if not exists] 数据库名 [default charset utf8] [collate 排序规则];
复制代码


  • 案例: 创建一个数据库 命名为: myDatabase, 使用字符集 utf8mb4(这里的 utf8mb4 是四个字节的因为 utf8 中文是三个字节,且不能敲 utf-8mb4,会报错)


由于创建同名数据库会报错,我们往往添加 if not exists 语句判断是否以及存在同名


  • 实现代码


create database if not exists myDatabase charset utf8mb4
复制代码


5)删除数据库

drop database [if exists] 数据库名;
复制代码


6)切换数据库

如果想要操作一个数据库中的表,则需要切换到该数据库,不然是无法操作的


use 数据库名;
复制代码


可以看到当前数据库成功切换


3.2 表操作

3.2.1 查询创建

1)查询数据库所有表

show tables;
复制代码


我们切换到系统数据库sys查看表


2)查看表结构

descent(n. 下降)


desc table 表名;
复制代码


作用:



3) 查询指定表的建表语句

show create table 表名;
复制代码


作用(主要是查看建表语句):


部分参数建表时并未指定也能查询到,如存贮引擎,数据集等(因为这些都是数据库的默认值)

4)创建表结构

一个二维表基本结构就是



==注意!!==: 最后一个字段没有逗号


create table 表名(  字段1 字段1类型 [comment 字段注释],  字段2 字段2类型 [comment 字段注释],  字段3 字段3类型 [comment 字段注释],  字段4 字段4类型 [comment 字段注释],  ...  字段n 字段n类型 [comment 字段注释])[comment 表的注释]
复制代码


例如:建立如下表



  • 代码


create table  rivers_and_lakes(id int comment "id",name varchar(10) comment "name",age tinyint comment  "age",gender char(1) comment "gender")comment "江湖";
复制代码


实际中在表中,很少用男,女来存贮性别,一般都是用 0,1,节省内存。


3.2.2 表字段的数据类型

在上述创建表语句,我们用到了varchar,tinyint等,那么表究竟有哪些数据类型呢?

1) 数值类型


精度是指数字长度标度是小数位如:123.45 精度为 5 标度为 2|依赖于 M(精度)和 D(标度) 的值


其实可以看到无符号正数范围是有符号正数范围的两倍,是由于在二进制中无符号将第一个二进制数作为大小,幂加一


  • 可以看到 int 分为了五份,从1bytes8bytes, 分得这么细的原因显然是为了节省空间,数据库在面对大型数据才不会太浪费空间

2)字符类型

3) 时间类型

3.2.3 表操作-修改

1). 添加字段


ALTER TABLE 表名 ADD 字段名 类型 (长度) [ COMMENT 注释 ] [ 约束 ];
复制代码


2). 修改数据类型


ALTER TABLE 表名 MODIFY 字段名 新数据类型 (长度);
复制代码


3). 修改字段名和字段类型


ALTER TABLE 表名 CHANGE 旧字段名 新字段名 类型 (长度) [ COMMENT 注释 ] [ 约束 ]; 
复制代码


4). 删除字段


ALTER TABLE 表名 DROP 字段名;
复制代码


5). 修改表名


ALTER TABLE 表名 RENAME TO 新表名;
复制代码

3.2.3 表操作-删除

1). 删除表


DROP TABLE [ IF EXISTS ] 表名;
复制代码


2). 删除指定表, 并重新创建表(相当于清空数据)


TRUNCATE TABLE 表名;
复制代码

个人总结(选读*)

在以上的对数据库或者表操作中,方法其实都是有规律的,总结规律如下


动作 + 类 + 对象 [附加条件]
复制代码


如:


  1. 查询所有数据库 & 查询所有表


数据库: show databases;表: show tables;
复制代码


  1. 创建数据库


create database 数据库名称;create table 表名称
复制代码


等等诸如此类,都是比较语义化的代码


#ARTS 打卡计划#

发布于: 刚刚阅读数: 4
用户头像

还未添加个人签名 2022-08-13 加入

还未添加个人简介

评论

发布
暂无评论
【数据库原理 | MySQL】一文打通 DDL语句 - ARTS 打卡第 一 周_计算机魔术师_InfoQ写作社区