MySQL-DDL篇

一.DDL

查看所有数据库

成功连接数据库后 就会如下图一般

MySQL-DDL篇_第1张图片

无论是否是第一次使用,查看当前所有数据库肯定是您的第一步

SHOW DATABASES //show 显示的意思 database是数据库的意思 加上s就是复数 一般来说大神都是用的大写 感觉用小写的都是些新手 前期如果不习惯 可以慢慢来适应

MySQL-DDL篇_第2张图片

这下就会显示所有数据库的名称 最后的9 rows in set是9行被影响的意思 后面是所用时间

在这里我先解释下 有些数据库是最初就存在的 不过不同版本的数据库 拥有的自带数据库是不同的 5.6版本的时候有四个自带数据库 下图红色方框就是

MySQL-DDL篇_第3张图片

5.7版本后又多了个自带数据库 sys 以后我们会来详解这几个数据库的作用

选择(要操作的)数据库

看到了当前所有的数据库 接下来肯定要选择要操作的数据库

USE 要操作的数据库名//USE是进入的意思

MySQL-DDL篇_第4张图片

成功后系统后给出如上反应 当然选择要操作的数据库可以在进入其他数据库中使用

MySQL-DDL篇_第5张图片

创建数据库

竟然我们明白了进入数据库 那么我们也应该知道怎么创建新的数据库

CREATE DATABASE 数据库名;//create是创建的意思 DATABASE是数据库 

比如我们要创建一个名为mysql1的数据库

MySQL-DDL篇_第6张图片

创建成功后 系统打印了1 row affected(1行受影响)

再输入查看所有数据库的语句发现有10条记录 多了一个mysql1的数据库

这里需要注意:不能创建名字已经存在的数据库

这里写图片描述

可以查看错误代码1007 是数据库已存在

删除数据库

删除数据库和创建相似 只是把前面的创建改成删除

DROP DATABASE 数据库表名;

我们把刚创建的数据库mysql1删除吧

删除成功会显示0 rows affected(0行受影响) 很多人都不解 删除怎么不影响呢?其实很多删除操作都是显示的0 rows affected

MySQL-DDL篇_第7张图片

再显示所有数据库 mysql1确实被删除了

这里需要注意:不能删除不存在的数据库

这里mysql1已经不存在 如果再次删除mysql1

这里写图片描述

查看错误代码1008 是数据库数据库不存在

修改数据库的编码方式

ALTER DATABASE 数据库名 CHARACTER SET 编码方式;//ALTER是改变的意思 SET是设置的意思

对创建后的数据库mysql1修改其编码方式

MySQL-DDL篇_第8张图片

对MySQL的编码的方式后面会仔细讲

在创建表的时候先说下MySQL当中的数据类型

MySQL常见的数据类型

int:整型 默认11位

注意:int(3)和int(6)存储的都是4字节无符号整数, 也就是0~2^32 但是,当数字不足3位或6位时,前面会用0补齐。

MySQL-DDL篇_第9张图片

float:浮点型 单精度浮点数值
double:浮点型 double(5,2)表示最多5位 其中必须有2位小数 即最大值为999.99
decimal:浮点型 定点数 在表单钱方面使用该类型 因为不会出现精度缺失问题

建议尽量使用定点数 浮点数相对于定点数的优点是在长度一定的情况下,浮点数能够表示更大的数据范围,它的缺点是会引起精度问题。如下图插入的131072.32因为精度丢失变成了131072.31

MySQL-DDL篇_第10张图片

char:固定长度字符串类型 char(255) 数据的长度不足指定长度 补足到指定长度 表示时间 2016-xx-xx
varchar:可变长度字符串类型: varchar(65535),zhangSan 应该依据情况选择使用哪个

注意:下面我们来说一说mysql在varchar和char对于空格的处理问题

MySQL-DDL篇_第11张图片

我们先创建一个数据表test 四个字段 之后再向这个数据表中插入含有左右空格含字的(如上图所示) 之后我们用查询语句来查看mysql中varchar,char对空格的处理是否相同

MySQL-DDL篇_第12张图片

相信这里也并不用多说CONCAT函数了 大家应该清楚 就是字符串的拼接

从这个查询得出char对空格的处理是仅保留左边的空格
而varchar是保留左右两端的空格

text(clob):字符串类型 mysql特有
很小 小 中 大
blob:字节类型: 很小 小 中 大

DATE 字节数4 年月日
DATETIME 字节数8 年月日时分秒
TIMESTAMP 字节数4 年月日时分秒 不过2038年某日GG
TIME 字节数3 时分秒
YEAR 字节数1 年

BINARY 和 VARBINARY:只保存二进制字符串

ENUM类型:只允许从值集合中选取单个值 而不能一次取多个

SET类型:和ENUM类型差不多 就是可以一次操作多个 而ENUM一次只能取一个

查看当前数据库中所有表

当你选择中某个数据库的时候 对于一个陌生的数据库 你当然是查看这个数据库下有哪些表

SHOW TABLES;//table是表的意思 加s是复数

我们查看数据库名为mysql下的所有表 首先先选择这个数据库

MySQL-DDL篇_第13张图片

因为表太多并没有截全

创建表

CREATE TABLE  表名(
       列名1 列类型1,
       列名2 列类型2,
           ...
       列名3 列类型3
);

这里我们创建一个表test 表中列名1为a 列类型为int(10),列名2为b 列类型为varchar(10) 再查看所有表

MySQL-DDL篇_第14张图片

查看指定表的创建语句

如果你想详细查看某个表的结构

SHOW CREATE TABLE 指定表;

这里进入了一个新的数据库mydb1 查看了表emp的创建语句

MySQL-DDL篇_第15张图片

查看指定表结构

如果你仅仅想查看指定表的结构则采用

DESC 表名;

MySQL-DDL篇_第16张图片

这里我们查看了表的actor的结构

删除指定表

DROP TABLE 表名;

这里写图片描述

MySQL-DDL篇_第17张图片

这里我们把表emp删除了 因为是删除操作 所以是0 rows affected 再查看当前数据库中下的所有表发现emp已经被删除

注意:不能删除不存在的表

这里写图片描述

因为表emp已删除 返回错误码1051 查阅错误码 说明是表不存在

修改表的前缀

ALTER TABLE 表名;

修改表之添加列

若想在创建好的表添加列

添加单列:ALTER TABLE 表名 ADD 列名 字段类型
添加多列:ALTER TABLE 表名 ADD 列名1 字段类型1,ADD 列名2 字段类型2...

MySQL-DDL篇_第18张图片

这里我们是在表test中添加了新的列c 类型是DATETIME

修改表之修改列

一般修改列名 有两种方法

ALTER TABLE 表名 CHANGE 原列名 新列名 新类型;//这种可以修改类型和列名
ALTER TABLE 表名 MODIFY 原列名 新类型;//这种只能修改类型 不能修改列名

用MODIFY把列c类型改成了TIME

MySQL-DDL篇_第19张图片

修改表之删除列

删除列,删除表,删除库都差不多

ALTER TABLE 表名 DROP 列名;//当然如果你删除的列名不存在可能会返回个错误码

删除列c

MySQL-DDL篇_第20张图片

修改表名称

假如你感觉表名不好 你可以换一个

ALTER TABLE 表名 RENAME 新表名;

把表名test改成student

这里写图片描述

MySQL-DDL篇_第21张图片

修改表指定位置添加字段

MySQL-DDL篇_第22张图片

若你想添加字段指定位置 就可以使用这个

ALTER TABLE 表名 ADD 列名 列类型 AFTER 存在的列名;//添加新列在存在的列名之下

添加了个列名为c类型为DATETIME 在a下面

MySQL-DDL篇_第23张图片

修改表之修改头顺序

上面的添加了列名为c类型为DATETIME在a下面 最前面是列名a 类型为int(10)

若想把b varchar(10)放在最前面 就要使用此

ALTER TABLE 表名  MODIFY 要修改的列名 要修改的列类型 first;

MySQL-DDL篇_第24张图片

DDL篇介绍也差不多 有什么不对的 各位可以留下言!!!毕竟水平有限 多谢了!!!

END!!!!!

你可能感兴趣的:(MySQL)