上篇文章我们介绍了Mysql的安装,这篇文章我们介绍Mysql的操作语言SQL
1. 简介
sql全称(Structured Query Language)是结构化查询语言,操作关系型数据库的编程语言,定义了一套操作关系型数据库统一标准
2. sql分类
sql语句,根据其功能,主要分为四类:DDL、DML、DQL、DCL,具体说明如下表所示
简写 | 全称 | 说明 |
---|---|---|
DDL | Data Definition Language | 数据定义语言,定义数据库、数据表、数据字段 |
DML | Data Manipulation Language | 数据操作语言,对数据库表中的数据进行增删改 |
DQL | Data Query Language | 数据查询语言,查询数据库中表的记录 |
DCL | Data Control Language | 数据控制语言,创建数据库用户、控制数据库的访问权限 |
这篇文章先介绍数据库定义语言(DDL)
3. 数据库定义语言(DDL)
首先我们要知道数据是以数据表的形式存储在数据库中。而数据表需要挂存储在数据库中,如下图所示
上图1中可以清晰的看到mysql数据服下存在test数据库,test数据库下存在student数据表,学生数据就存放在数据表student中。
图2中student数据表共有四个字段,id、name、sex、age,分别存储学号、名字、性别、年龄。
那么创建数据库、数据表、数据字段就需要用到数据库定义语言(DDL)。
4. 数据库操作
4.1创建数据库
语法:
sql
create database [ if not exists ] 数据库名 [character set 字符集 ] [ collate 排序
规则 ] ;
说明:
1.[]中的内容是非必须的,可以省略
2.if not exists
表示当要创建的数据库不存在时,才进行创建,否则跳过
3.character set
用来设置数据库的字符集。
字符集规定了字符在数据库中的存储格式,比如占多少空间,支持哪些字符等等,例如如果字符集设置的不恰当就会造成中文字符乱码等问题,mysql中支持的字符集有很多,可以通过sql查询
sql
SHOW CHARSET;
4.collate
用来指定排序规则
案例:
创建一个数据库,名为schooldb,设置字符集为utf8mb4
,且如果数据库已经存在则跳过
1.打开Navicat,点击新建查询
在编辑器中输入sql语句,点击运行
sql
CREATE DATABASE IF NOT EXISTS `schooldb` CHARACTER SET 'utf8mb4';
这样数据库就创建成功了
4.2 删除数据库
语法:
sql
drop database [ if exists ] 数据库名 ;
案例:
删除上面创建的schooldb
sql
drop database if exists schooldb;
5.数据表操作
5.1 创建数据表
语法:
sql
CREATE TABLE 表名(
字段1 字段1类型 [ COMMENT 字段1注释 ],
字段2 字段2类型 [COMMENT 字段2注释 ],
字段3 字段3类型 [COMMENT 字段3注释 ],
......
字段n 字段n类型 [COMMENT 字段n注释 ]
) [ COMMENT 表注释 ] ;
说明:
[] 内为可选参数,最后一个字段后面没有逗号
案例
创建students表,包含学号,学生姓名,性别,年龄字段
sql
CREATE TABLE `students` (
`id` int COMMENT '学号',
`name` varchar(255) COMMENT '姓名',
`sex` varchar(2) COMMENT '性别',
`age` int COMMENT '年龄'
)COMMENT '学生表';
在Navicat中执行sql语句,即可创建成功数据表students。
5.2 修改数据表
在实际应用中经常会遇到给已经创建好的数据表中,修改、新增、删除字段,又或者修改某个字段的类型、长度等。
1.添加字段
sql
ALTER TABLE 表名 ADD 字段名 类型 (长度) [ COMMENT 注释 ] [ 约束 ];
案例:
给students表中添加班级字段
sql
ALTER TABLE `students` ADD COLUMN `class` varchar(100) COMMENT '班级';
2.修改数据类型
sql
ALTER TABLE 表名 MODIFY 字段名 新数据类型 (长度);
3.修改字段名称和字段类型
sql
ALTER TABLE 表名 CHANGE 旧字段名 新字段名 类型 (长度) [ COMMENT 注释 ] [ 约束 ];
案例:
将stutents表中的班级字段修改为学分字段,类型为int
sql
ALTER TABLE `students` CHANGE COLUMN `class` `credit` int COMMENT '学分' ;
4.删除字段
sql
ALTER TABLE 表名 DROP 字段名;
案例:
删除学分字段
sql
ALTER TABLE `students` DROP `credit`;
5.修改表名
sql
ALTER TABLE 表名 RENAME TO 新表名;
5.3 删除数据表
语法:
sql
DROP TABLE [ IF EXISTS ] 表名;
案例:
删除students表格
sql
DROP TABLE IF EXISTS students;
6 扩展
在熟悉sql语句操作数据库或数据表后,在实际应用中可以使用Navicat中使用可是化界面完成数据库的操作。
1.新建数据库
2.删除数据库
3.新建数据表
4.修改数据表
5.删除数据表