我在此使用的是MySQL8.0版本和Navicat Premium 12。
什么是DDL
DDL(Data Definition Language):数据定义语言,用来定义数据库对象:库、表、列等;
DDL 操作
首先我们先登录,可以通过命令mysql -u root -p
,再输入密码登录,登录成功页面如下:
也可以打开Navicat,点击连接,然后输入密码,连接名自取
之后打开数据库,打开后页面为:
它有四个基础数据库,其中我还建立了一个info数据库。
接下来我们来学习一下具体操作吧。
基本操作
先介绍两个最基本的操作:
1、查看所有数据库:show databases;
2、切换数据库:use info;
,切换到info数据库;
后面我所演示都用Navicat,当然在命令窗口也能得到同样的结果。
操作数据库
1、创建数据库:CREATE DATABASE IF NOT EXISTS 数据库名;
或者CREATE DATABASE 数据库名;
。
CREATE DATABASE xuan;
,创建一个名为xuan的数据库。如果这个数据已经存在,那么会报错。
我们创建后将数据库刷新一下就可以看见我们常见的数据库"xuan"。
如果我们创建一个已经存在的数据库会怎么样呢?
由此可知如果数据库存在,使用CREATE DATABASE xuan;
创建会报错。
CREATE DATABASE IF NOT EXISTS xuan;
,在名为xuan的数据库不存在时创建该库,这样可以避免报错。
我们再次使用CREATE DATABASE IF NOT EXISTS xuan;
创建发现它不会报错。所以在创建数据库我推荐使用这种方式能够避免报错。
2、删除数据库:DROP DATABASE IF EXISTS 数据库名;
或者DROP DATABASE 数据库名;
DROP DATABASE mydb1,删除名为mydb1
的数据库。如果这个数据库不存在,那么会报错。
DROP DATABASE IF EXISTS mydb1,就算mydb1
不存在,也不会的报错。
3、修改数据库编码:ALTER DATABASE 数据库名 CHARACTER SET utf8;
点击xuan数据库,右键编辑数据库可以查看。
常见数据类型
int:整型;
double:浮点型,例如double(5,2)表示最多5位,其中必须有2位小数,即最大值为999.99;
decimal:泛型型,在表单线方面使用该类型,因为不会出现精度缺失问题;
char:固定长度字符串类型;(当输入的字符不够长度时会补空格);
varchar:固定长度字符串类型(当输入的字符不够长度时不会补空格);
text:字符串类型;
blob:字节类型;
date:日期类型,格式为:yyyy-MM-dd;
time:时间类型,格式为:hh:mm:ss
timestamp:时间戳类型;
操作表
1、创建表
CREATE TABLE 表名(
列名 列类型,
列名 列类型,
......
);
先切换到xuan数据库,然后创建一张stu表如下:
2、查看表结构: DESC 表名;
查看stu的表结构:DESC stu;
3、删除表:DROP TABLE 表名;
删除stu表:DROP TABLE stu;
,删除后刷新表就会在数据库下消失。
4、修改表
4.1 添加列: ALTER TABLE 表名 ADD (classname varchar(100));
现在创建一张stu表,给stu表添加classname列:
我们查看表结构后发现多了一列(classname列)。
4.2 修改列的数据类型:ALTER TABLE 表名 MODIFY 列名 CHAR(2);
修改stu表的gender列类型为CHAR(2)。
4.3 修改列名:ALTER TABLE 表名 change 需要修改的列名 目标列名 数据类型;
修改stu表的gender列名为sex。
4.4 删除列:ALTER TABLE 表名 DROP 列名;
删除stu表的classname列。
4.5 修改表名称:ALTER TABLE 原表名 RENAME TO 修改后表名;
修改stu表名称为student。刷新会发现表名改为student。