命令行启动mysql服务器——net start mysql
命令行关闭mysql服务器——net stop mysql
命令行登录mysql数据库——mysql -u root -p 123 -h 192.168.1.31
-u:用户名
-p:密码
-h:IP地址(本地ip可以省略)
SQL:结构化查询语言
- DDL:数据定义语言,用来定义数据库对象:库、表、列等;
- DML:数据操作语言,用来定义数据库记录(数据);
- DCL:数据控制语言,用来定义访问权限和安全级别;
- DQL:数据查询语言,用来查询记录(数据)。
数据库操作: - 创建mydb数据库
CREATE DATABASE [IF NOT EXISTS] mydb;
- 查看所有数据库
SHOW DATABASES;
- 切换到mydb数据库
USE mydb;
- 删除mydb数据库
DROP DATABASE mydb;
数据表操作: - 创建mytb表
CREATE TABLE [IF NOT EXISTS] mytb(
username varchar(20),
password varchar(20),
age int
);
- 查看当前数据库所有表
SHOW TABLES;
- 查看mytb表结构
DESC mytb;
- 删除mytb表
DROP TABLE mytb;
- 添加test列
ALTER TABLE mytb ADD (test varchar(20));
- 修改test列为sex
ALTER TABLE mytb CHANGE test sex char(20);
- 删除test列
ALTER TABLE mytb DROP test;
- 修改表名称
ALTER TABLE mytb RENAME TO user;
数据操作: - 插入数据
INSERT INTO mytb(username, password, age) VALUES ('zsd', 'zsd123', 18);
- 修改数据
UPDATE mytb SET age = 20 WHERE username = 'zsd';
- 删除数据
DELETE FROM mytb WHERE username = 'zsd';
用户创建,权限操作 - 建dong用户
CREATE USER dong@'%' IDENTIFIED BY '123';
dong:用户名
%:代表所有主机都可连接数据库
123:密码 - 给dong用户授权——GRANT 权限1,…,权限n ON 数据库.* TO dong@’%’;
GRANT ALL ON *.* TO dong@'%';
第一个*:代表所有数据库
第二个*:代表所有表 - 显示用户权限
SHOW GRANTS FOR dong@'%';
- 删除用户
DROP USER dong@'%';
- 修改用户密码
UPDATE USER SET PASSWORD=PASSWORD('dong123') WHERE User='dong' and Host='%';
一定要刷新密码:
FLUSH PRIVILEGES;
数据查询语言(DQL):
\\查询mytb表的username列
SELECT username FROM mytb
\\分组前条件
WHERE username = 'zsd'
\\分组
GROUP BY username
\\分组后条件
HAVING password = 'zsd123'
\\排序
ORDER BY username ASC/DESC
\\分组,0为开始位置,5为5条数据
LIMIT 0, 5
WHERE 条件查询
- 在a跟b之间
BETWEEN a AND b;
- 满足a或b或c
IN(a,b,c);
- 为空
IS NULL;
- 否定
NOT;
LIKE模糊查询 - 查询username有3个字符
LIKE '___';
- 查询username第一个字符为z
LIKE 'z%';
- 查询username中间有一个字符为z
LIKE '%z%';
- 查询username最后一个字符为z
LIKE '%z';
- 将重复的username去掉
SELECT DISTINCT username FROM mytb;
- 将username的NULL换成dong显示
SELECT IFNULL(username,'dong') FROM mytb;
常用聚合函数 - 统计username列不为NULL的记录行数
COUNT(username);
- 计算username列的最大值,如果指定列是字符串类型,那么使用字符串排序运算
MAX(username);
- 计算username列的最小值,如果指定列是字符串类型,那么使用字符串排序运算
MIN(username);
- 计算username列的数值和,如果指定列类型不是数值类型,那么计算结果为0
SUM(username);
- 计算username列的平均值,如果指定列类型不是数值类型,那么计算结果为0
AVG(username);
- 合并结果集
UNION\\去除重复记录
- 合并结果集
UNION ALL\\不去除重复记录
- 内连接
[INNER] JOIN...ON
- 左外连接
LEFT [OUTER] JOIN...ON
- 右外连接
RIGHT [OUTER] JOIN...ON
自然连接(自动匹配主外键) - 内连接
NATURAL JOIN
- 左外连接
NATURAL LEFT JOIN
- 右外连接
NATURAL RIGHT JOIN
子查询 - 单行单列——用于条件
- 单行多列——用于条件
- 多行单列——用于条件
- 多行多列——用于表
WHERE关键字:ALL,ANY - 大于最大,小于最小
ALL
- 大于最小,小于最大
ANY