基础命令
SQL语言分类:
- DDL (Data Definition Language)数据定义
- DML (Data Manipulation Language)数据操作
- DCL(Data Control Language)数据控制
- DQL (Data Query Language)数据查询
MySQL命令行环境下的基础命令:
| SQL命令 |
结果 |
| mysql -uroot -p |
以root用户,通过密码进行登录 |
| show databases; |
查看有哪些数据库 |
| use 数据库名; |
使用某个数据库 |
| show tables; |
查看数据库内有哪些表 |
| exit |
退出MySQL的命令行环境 |
SQL的语法特征
- 大小写不敏感
- 可以单行或多行书写,最后以
;号结束
- SQL支持注释:
- 单行注释:– 注释内容(–后面一定要有一个空格)
- 单行注释:# 注释内容(#后面可以不加空格,推荐加上)
- 多行注释:
/* 注释内容 */
DDL-数据定义
库管理
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| SHOW DATABASES;
USE 数据库名称;
CREATE DATABASE 数据库名称[CHARSET UTF8];
DROP DATABASE 数据库名称;
SELECT DATABASE();
|
表管理
1 2 3 4 5 6 7 8 9 10 11 12 13
| SHOW TABLES;
CREATE TABLE 表名称( 列名称 列类型, 列名称 列类型, ...... );
DROP TABLE 表名称; DROP TABLE IF EXISTS 表名称;
|
列类型:
| 列名称 |
列类型 |
| int |
整数 |
| float |
浮点数 |
| varchar(长度) |
文本,长度为数字,做最大长度限制,最大可填255 |
| date |
日期类型 |
| timestamp |
时间戳类型 |
DML-数据操作
INSERT数据插入
1 2
| # []代表可以省略的内容 INSERT INTO 表[(列1, 列2, ..., 列N)] VALUES(值1, 值2, ..., 值N)[, (值1, 值2, ..., 值N),...,(值1, 值2, ..., 值N)]
|
DELETE数据删除
1 2 3 4 5 6 7 8
| # []代表可以省略的内容 DELETE FROM 表名称 [WHERE条件判断]
|
UPDATE 数据更新
1
| UPDATE 表名 SET 列=值 [WHERE 条件判断]
|
注意:字符串的值出现在SQL语句中,必须要用单引号包围起来。
DCL-数据控制
DQL-数据查询
基础查询
1 2 3 4
| # 基础查询的语法 SELECT 字段列表|*FROM 表 # 过滤查询的语法 SELECT 字段列表|*FROM 表 WHERE 条件判断
|
分组聚合
1 2 3 4 5 6 7
| SELECT 字段|聚合函数 FROM 表 [WHERE 条件] GROUP BY 列 聚合函数有: - SUM(列) 求和 - AVG(列) 求平均值 - MIN(列) 求最小值 - MAX(列) 求最大值 - COUNT(列|*) 求数量
|
注意:
- 一个SQL中可以写多个聚合
- GROUP BY中出现了哪个列,哪个列才能出现在SELECT中的非聚合中
排序分页
1 2 3 4 5 6 7
| # 只写n表示:只显示几条数据 # n和m都写表示:跳过前n行,从第n + 1条开始往下取m条 SELECT 列|聚合函数|* FROM 表 WHERE ... GROUP BY ... ORDER BY ... [ASC | DESC] LIMIT n[, m]
|
注意:
- WHERE、GROUP BY、ORDER BY、LIMIT均可按需求省略
- SELECT和FROM是必写的
- 执行顺序:FROM ->WHERE ->GROUP BY和聚合函数 ->SELECT ->ORDER BY ->LIMIT
Python操作MySQL
基础使用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| from pymysql import Connection
链接对象 = Connection(主机,端口,账户,密码)
游标对象 = 链接对象.cursor() 链接对象.select_db("")
游标对象.execute("")
results = 游标对象.fetchall()
链接对象.close()
|
数据插入
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| from pymysql import Connection
链接对象 = Connection(主机,端口,账户,密码)
游标对象 = conn.cursor() 链接对象.select_db("")
游标对象.execute("")
链接对象.commit()
链接对象.close()
|
也可以通过代码设置自动提交,无需手动commit
1 2 3 4 5 6 7
| 链接对象 = Connection( 主机, 端口, 账户, 密码 autocommit = True )
|
Repository
本章示例代码已归档至 GitHub,可用于本地复现、调试与扩展。
查看本章源码