MYSQL基础
确保MySQL已经安装完成
启动
windows下进入cmd的管理运行模式
启动net start mysql80
停止net stop mysql80
连接
客户端连接
注意这里使用的命令行既然在所有目录下都可行,那么必然要改环境变量
数据模型
SQL
DDL
DDL-数据库操作
- 查询
查询所有数据库SHOW DATABASES;
查询当前数据库SELECT DATABASE();
- 创建
CREATE DATABASE[IF NOT EXISTS]数据库名[DEFAULT CHARSET字符集][COLLATE 排序规则];
- 删除
DROP DATABASE[IF EXISTS]数据库名;
- 使用
USE 数据库名;
DDL-数据表操作
查询
- 查询当前数据库所有表
SHOW TABLES;
- 查询表结构
DESC 表名;
- 查询指定表的建表语句
SHOW CREATE TABLE 表名;
DDL-数据类型
DDL-表操作-修改&删除
- 添加
ALTER TABLE表明 ADD 字段名 类型(长度) [COMMENT注释][约束];
- 修改
修改数据类型
ALTER TABLE 表名 MODIFY 字段名 新数据类型(长度);
修改字段名和字段类型
ALTER TABLE 表名 CHANGE 旧字段名 新字段名 类型(长度)[comment 注释][约束];
修改表名
ALTER TABLE 表名 RENAME TO 新表名;
- 删除
删除字段ALTER TABLE 表名 DROP 字段名;
删除表DROP TABLE [IF EXISTS] 表名;
删除指定表,并重新创建该表TRUNCATE TABLE 表名;
小结
DataGrip
创建数据库
DML (数据操作语言)
-
添加
给指定字段添加数据
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,...);
-
更新和删除
修改数据
UPDATE 表名 SET 字段名1 = 值1,字段名2= 值2,....[ WHERE 条件];
不加where就是全局
删除
DELETE FROM 表名 [WHERE 条件]
DQL(数据查询语言)
DQL语法
基础查询
- 查询多个字段
SELECT 字段1,字段2,字段3 ... FROM 表名;
SELECT *FROM 表名;
全部查询 - 设置别名
SELECT 字段1 [AS 别名1],字段2 [AS 别名2] ... FROM 表名;
- 去除重复记录(例如一个表里头的记录很多一样)
SELECT DISTINCT 字段列表 FROM 表名
条件查询
语法
聚合函数
- 语法
select 聚合函数 from 表明;
分组查询
- 语法
SELECT 字段列表 FROM 表名[WHERE 条件] GROUP BY 分组字段名[HAVING 分组后过滤条件];
执行时机不同:where是分组之前进行过滤,不满足where条件,不参与分组而having是分组之后对结果进行过滤。
判断条件不同:where不能对聚合函数进行判断,而having可以。
注意这里搜索出来的不再是记录了,而是一个分组,这也是groupby的作用
排序查询
- 语法
SELECT 字段列表 FROM 表名 ORDER BY 字段1 排序方式1字段2 排序方式2;
asc升序 desc降序
分页查询
- 语法
SELECT 字段列表 FROM 表名 LIMIT 起始索引查询记录数;
- 注意
案例练习
执行顺序
小结
DCL(数据控制语言)
用户管理
- 用户
USE mysql; SELECT* FROM user;
- 创建用户
CREATE USER '用户名'@'主机名' IDENTIFIED BY'密码';
- 修改用户密码
ALTER USER '用户名'@'主机名'IDENTIFIED WITH mysql native password BY '新密码';
- 删除用户
DROP USER '用户名'@'主机名';
权限控制