关系型数据库(RDBMS)
建立在关系模型基础上,由多张相互连接的二维表组成的数据库
SQL
SQL分类
DDL:数据定义语言,用来定义数据库对象
DML:数据操作语言,用来对数据库中的数据进行增删改
DQL:数据查询语言,用来查询数据库中表的记录
DCL:数据控制语言,用来创建数据库用户、控制数据库的访问权限
DDL-数据库操作
查询
查询所有数据库
show databasses;
查询当前数据库
SELECT DATABASE();
创建
CREATE DARABASE [IF NOT EXISTS] 数据库名 [DEFAULT CHARSE 字符集] [COLLATE 排序规则];
删除
DROP DATABASE [IF EXISTS] 名
DDL-表操作-查询
查询当前数据库所有表
SHOW TABLES;
查询表结构
DESC 表名;
查询指定表的建表语句
SHOW CREATE TABLE 表名;
DDL-表操作-创建
CREATE TABLE 表名(
? ? ? ? 字段1 字段1类型[COMMENT 字段1注释],
? ? ? ? 字段2 字段2类型[COMMENT 字段2注释],
? ? ? ? 字段3?字段3类型[COMMENT 字段3注释],
...
? ? ? ? 字段4?字段4类型[COMMENT 字段4注释]
)[COMMENT 表注释];
DDL-表操作-数据类型
主要分为三类:数值类型,字符串类型,日期时间类型
DDL-表操作-修改
添加字段
ALTER TABLE 表名 ADD 字段名 类型 [COMMENT 注释] [约束];
修改表中字段
修改数据类型
ALTER TABLE 表名 MODIFY 新数据类型();
修改字段名和字段类型
ALTER TABLE 表名 CHANGE 旧字段名 新字段名 类型(长度)[COMMENT 注释] [约束];
删除字段
ALTER TABLE 表名 DROP 字段名;
修改表名
ALTER TABLE 表名 RENAME TO 新表名;
删除表
DROP TABLE [IF EXISTS] 表名;
删除指定表,并重新创建该表
TRLINCATE TABLE 表名;
DML:数据操作语言
数据:INSERT
修改数据:UPDATE
删除数据:DELETE
DML-添加数据
给指定字段添加数据
INSERT INTO 表名(字段1,字段2)VALUES(值1,值2);
?给全部字段添加数据
INSERT INTO 表名 VALUES(值1,值2.。。);
批量添加数据
INSERT INTO 表名(字段名1,字段名2.。。)VALUES (值1,值2.。),(值1,值2);
INSERT INTO 表名 VALUES (值1,值2.。),(值1,值2);
DML-修改数据
UPDATE 表名 SET 字段名1=值1,字段名2=值2,。。。[WHERE 条件];
DML-删除数据
DELETE FROM 表名 [WHERE 条件];
DQL-数据查询语言
查询关键字:SELECT
DQL语法
SELECT
? ? ? ? ? ? ? ? 字段列表
FROM
? ? ? ? ? ? ? ? 表名列表
WHERE
? ? ? ? ? ? ? ? 条件列表
GROUP BY
? ? ? ? ? ? ? ? 分组字段列表
HAVING
? ? ? ? ? ? ? ? 分组后条件列表
ORDER BY
? ? ? ? ? ? ? ? 排序字段列表
LIMIT
? ? ? ? ? ? ? ? 分页参数
1.查询多个字段
SELECT 字段1,字段2,字段3.。。FROM 表名;
SELECT * FROM 表名;
2.设置别名
SELECT 字段1 [AS 别名1].。。FROM 表名;
3.去重
SELECT DISTINCT 字段列表 FROM 表名;
DQL-条件查询
SELECT 字段列表 FROM 表名 WHERE 条件列表;
DQL-聚合函数
将一列数据作为一个整体,进行纵向计算
常见聚合函数
count、max、min、avg、sum
DQL-分组查询
SELECT 字段列表 FROM 表名? [WHERE 条件] GROUP BY [HAVING 分组后过滤条件];
where 是分组前进行过滤
having 是分组后过滤
DQL-排序查询
SELECT * FROM 表名 ORDER BY 字段1 ,排序方式 ,自断2 ,排序方式;
排序方式:
ASC:升序
DESC:降序
DQL-分页查询
SELECT * FROM 表名 LIMIT 起始索引,查询记录数;
DCL-数据控制语言
管理数据库用户、控制数据库访问权限
DCL-管理用户
查询用户
USE mysql;
SELLECT * FROM user;
创建用户
CREATE USER ‘用户名’@'主机名' IDENTIFIED BY ‘密码’;
修改用户密码
ALTER USER? ‘用户名’@'主机名'? IDENTIFIED WITH password BY 新密码;
删除用户
DROP USER ‘用户名’@'主机名' ;