SQL的语法大体可以分为四类,分别是DDL、DML、DQL和DCL语句。
DDL:全称为Data Definition Languages,即数据定义语言,用来定义数据库的对象(数据库,表,字段);
DML:全称为Data Manipulation Languages,即数据操作语言,用来对数据库表中的数据进行增删改;
DQL:全称为Data Query Language,即数据查询语言,用来查询数据库中表的记录。
DCL:全称为Data Control Language,即数据控制语言,用来创建数据库用户、控制数据库的访问权限。
本篇笔记主要包括DDL和DML语言的使用。
在介绍DDL和DML语言之前,我们先了解一下MySQL的数据类型。
MySQL中的数据类型可以分为三类:数值类型、字符串类型和日期时间类型。
首先是第一种类型,数值类型:大体分为整型和浮点型。
其中整形包括TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT,字节大小由1依次递增到5;
浮点型包括FLOAT和DOUBLE,字节大小分别是4和8;
其次是字符串类型,主要使用的是char类型和varchar类型,前者是定长字符串,后者是变长字符串。varchar定义的时候可以指定其最大长度,如果实际数据小于其最大长度,那么varchar就会自动调整其长度和数据数据大小一致。
在使用char和varchar后,需要在后面指定其大小,例如char(10)。
字符串类型还有BLOB和TXT类型,BLOB类型用于存储二进制数据,TXT类型则用于存储文本字符串。
最后是日期时间类型,其实质上还是一个字符串。
日期时间类型主要由5种。
1.DATE,3字节,表示格式为YYYY-MM-DD,即年-月-日。
2.TIME,3字节,表示格式为HH:MM:SS,即时:分:秒。
3.YEAR,1字节,表示格式为 YYYY,表示年份,范围为1901至2155。
4.DATETIME,8字节,表示格式为YYYY-MM-DD HH:MM:SS,即DATE和TIME类型的组合。
5.TIMESTAMP,4字节,表示格式也为YYYY-MM-DD HH:MM:SS,但是范围小。
接下类就正式开始介绍DDL语句了。
DDL语句可以根据操作对象分成两类,第一类是对数据库的操作,第二类是对表的操作。
首先介绍DDL语句对数据库的操作,主要分为四种:查询,创建,删除和使用。
# 查询
-- 查询所有数据库
show databases;
-- 查询当前数据库
select database();
# 创建
create database [数据库名];
# 删除
drop database [数据库名];
# 使用
use [数据库名];
查询所有数据库:
当前计算机的所有数据库就显示出来了。
接下来我们选中系统数据库sys,使用use [数据库名]选择。
出现Database changed就表示我们以及选中/切换了数据库了。
通过select database()这个函数方法可以查询当前数据库的名称。
接着我们试着创建一个新数据库newdatabase
可以看到newdatabase已经创建完成了。
此时如果再创建同名数据库newdatabase会报错。
原因是newdatabase已经存在了,数据库的名称不能重复。
为了避免这种情况发生,可以再创建数据库时加上一条限制语句 if not exists
没有报错。
接着将这个新建的数据库删除,使用drop语句。
newdatabase已经被删除了。
同样,此时再次使用删除语句MySQL就会报错,需要添加一个限制条件if exists
接下来时DDL的表操作语句,包括创建、查询、修改删除
#创建
create table [表名](
字段1 类型 [comment 注释],
字段2 类型 [comment 注释],
字段3 类型 [comment 注释],
........
字段n 类型 [comment 注释]
)[comment 表注释];
# 查询
-- 查询当前数据库的所有表
show tables;
-- 查询表结构
desc [表名];
-- 查询指定表的建表语句
show create table [表名]
#修改
-- 添加字段
alter table [表名] add [字段名] [类型(长度)];
-- 修改数据类型
alter table [表名] modify [字段名] [新数据类型(长度)];
-- 修改字段名和字段类型
alter table [表名] change [旧字段名] [新字段名] [类型(长度)];
-- 删除字段
alter table [表名] drop [字段名];
-- 修改表名
alter table [表名] rename to [新表名];
#删除
-- 删除表
drop table [表名];
-- 重新创建表
truncate table [表名];
首先使用create table语句创建一个表user
此时newbase数据库中有了一张表,可以用show tables查询。
利用desc语句可以查询表的结构。
最后使用show create table可以查看建表过程。
添加一个字段info
修改info的数据类型
修改info的字段名
修改表名
删除表
最后是DML语言,用来对数据库中表的数据记录进行增删改操作,主要关键字是insert,update和delete.
# 添加数据
-- 给指定字段添加数据
insert into [表名] (字段1,字段2,...) values (值1,值2,...) [,(值1,值2,...)];
-- 给全部字段添加数据
insert into [表名] values (值1,值2,...)[,(值1,值2,...)];
# 修改数据
update [表名] set [字段名1] = [值1],[字段名2] = [值2],... [where 条件];
# 删除数据
delete from [表名] [where 条件];
添加数据
修改数据
删除数据