一、SQL分类
SQL ,英文:Structured Query Language,结构化查询语言。是用于操作关系型数据库的编程语言。SQL定义操作所有关系型数据库的统一标准,可以使用SQL操作所有的关系型数据库管理系统,以后工作中如果使用到了其他的数据库管理系统,也同样的使用SQL来操作。
SQL的分类:
1). DDL(Data Definition Language) : 数据定义语言,用来定义数据库对象:数据库,表,列等。DDL简单理解就是用来操作数据库,表等
2). DML(Data Manipulation Language) 数据操作语言,用来对数据库中表的数据进行增删改
DML简单理解就对表中数据进行增删改
3). DQL(Data Query Language) 数据查询语言,用来查询数据库中表的记录(数据)
DQL简单理解就是对数据进行查询操作。从数据库表中查询到我们想要的数据。
4). DCL(Data Control Language) 数据控制语言,用来定义数据库的访问权限和安全级别,及创建用户。DML简单理解就是对数据库进行权限控制。比如我让某一个数据库表只能让某一个用户进行操作等。
> 注意: 以后我们最常操作的是 `DML` 和 `DQL` ,因为我们开发中最常操作的就是数据。
二、MySQL的DDL操作语法
(一)DDL操作数据库
DDL来操作数据库。而操作数据库主要就是对数据库的增删查操作。
1)查询所有的数据库
--查询所有的数据库 SHOW DATABASES;
2)创建数据库:
语法:
--创建数据库 CREATE DATABASE 数据库名称; CREATE DATABASE IF NOT EXISTS 数据库名称;
而在创建数据库的时候,我并不知道db1数据库有没有创建,直接再次创建名为db1的数据库就会出现错误。
从上面的效果可以看到虽然db1数据库已经存在,再创建db1也没有报错,而创建db2数据库则创建成功。
3)删除数据库
--删除数据库 DROP DATABASE 数据库名称; DROP DATABASE IF EXISTS 数据库名称; -- 删除数据库(判断,如果存在则删除)
4)使用数据库
数据库创建好了,要在数据库中创建表,得先明确在哪儿个数据库中操作,此时就需要使用数据库。
使用数据库 语法:
--使用数据库 USE 数据库名称;
5)查看当前使用的数据库
语法:
--查看当前使用的数据库 SELECT DATABASE();
SELECT DATABASE();
(二)操作表
操作表也就是对表进行增(Create)删(Retrieve)改(Update)查(Delete)。
1)查询当前数据库下所有表名称
--查询当前数据库下所有表名称 SHOW TABLES;
2查询表结构
--查询表结构 DESC 表名称;
3)创建表
语法:
CREATE TABLE 表名 ( 字段名1 数据类型1, 字段名2 数据类型2, … 字段名n 数据类型n ); --注意:最后一行末尾,不能加逗号 --demo: create table tb_user ( id int, username varchar(20), password varchar(32) );
4) 删除表
删除表语法:
--删除表 DROP TABLE 表名; --删除表时判断表是否存在 DROP TABLE IF EXISTS 表名;
5)修改表
修改表语法:
1.修改表名
-- 修改表名 ALTER TABLE 表名 RENAME TO 新的表名; -- 将表名student修改为stu alter table student rename to stu;
2.添加一列
-- 添加一列 ALTER TABLE 表名 ADD 列名 数据类型; -- 给stu表添加一列address,该字段类型是varchar(50) alter table stu add address varchar(50);
3.修改数据类型
-- 修改数据类型 ALTER TABLE 表名 MODIFY 列名 新数据类型; -- 将stu表中的address字段的类型改为 char(50) alter table stu modify address char(50);
4.修改列名和数据类型
-- 修改列名和数据类型 ALTER TABLE 表名 CHANGE 列名 新列名 新数据类型; -- 将stu表中的address字段名改为 addr,类型改为varchar(50) alter table stu change address addr varchar(50);
5.删除列
-- 删除列 ALTER TABLE 表名 DROP 列名; -- 将stu表中的addr字段 删除 alter table stu drop addr;
三、MySQL的DML操作语法
DML主要是对数据进行增(insert)删(delete)改(update)操作。
1)添加数据
语法:
--给指定列添加数据 语法: INSERT INTO 表名(列名1,列名2,…) VALUES(值1,值2,…); --给全部列添加数据 语法: INSERT INTO 表名 VALUES(值1,值2,…); --批量添加数据 语法: INSERT INTO 表名(列名1,列名2,…) VALUES(值1,值2,…),(值1,值2,…),(值1,值2,…)…; INSERT INTO 表名 VALUES(值1,值2,…),(值1,值2,…),(值1,值2,…)…;
Demo:
-- 给指定列添加数据 INSERT INTO stu (id, NAME) VALUES (1, '张三'); -- 给所有列添加数据,列名的列表可以省略的 INSERT INTO stu (id,NAME,sex,birthday,score,email,tel,STATUS) VALUES (2,'李四','男','1999-11-11',88.88,'[email protected]','13888888888',1); INSERT INTO stu VALUES (2,'李四','男','1999-11-11',88.88,'[email protected]','13888888888',1); -- 批量添加数据 INSERT INTO stu VALUES (2,'李四','男','1999-11-11',88.88,'[email protected]','13888888888',1), (2,'李四','男','1999-11-11',88.88,'[email protected]','13888888888',1), (2,'李四','男','1999-11-11',88.88,'[email protected]','13888888888',1);
2)修改数据
修改表数据 语法:
--修改表数据 UPDATE 表名 SET 列名1=值1,列名2=值2,… [WHERE 条件] ;
注意:
修改语句中如果不加条件,则将所有数据都修改!
Demo:
-- 将张三的生日改为 1999-12-12 分数改为99.99 update stu set birthday = '1999-12-12', score = 99.99 where name = '张三';
3) 删除数据
删除数据 语法:
--删除数据
DELETE FROM 表名 [WHERE 条件] ;
--删除数据 DELETE FROM 表名 [WHERE 条件] ;
Demo:
-- 删除张三记录 delete from stu where name = '张三'; -- 删除stu表中所有的数据 delete from stu;