不要混日子,小心让日子把你给混了
数据库组织数据存储是按照库->表->数据这三个层级
数据库和SQL的关系:
使用数据库软件去获得库->表->数据,这种数据组织,存储的能力。
并借助SQL语言,完成对数据的增删改查等操作。
SQL语法特征:
SQL大小写不敏感
SQL可以单行或多行书写,最后以;号结束
SQL支持注释:
单行注释: — 注释内容(—后面一定要有一个空格)
单行注释: # 注释内容(# 后面可以不加空格)
DDL:数据定义(库的创建删除,表的创建删除)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| -- 针对库的操作 -- 查看数据库 SHOW DATABASES; -- 使用数据库 USE 数据库名称; -- 创建数据库 CREATE DATABASE 数据库名称 [CHARSET UTF8]; -- 删除数据库 DROP DATABASE 数据库名称; -- 查看当前使用的数据库 SELECT DATABASE(); -- ----------------------------------------- -- 针对表的管理 -- 需要先选择数据库 -- 查看有那些表 SHOW TABLES; -- 删除表 DROP TABLE 表名称; DROP TABLE IF EXISTS 表名称; -- 创建表 CREATE TABLE 表名称( 列名称 列类型, 列名称 列类型, .......... ); -- 列类型有 int -- 整数 float -- 浮点数 varchar(长度) -- 文本,长度为文字,做最大长度限制 date -- 日期类型 timetamp -- 时间戳类型
|
DML:数据操纵(新增数据,删除数据,修改数据)
SQL只支持单引号对字符串
INSERT数据插入:
1
| INSERT INTO 表[(列1,列2,列3....,列N)] VALUES(值1,值2,..,值N)[,(值1,值2,..,值N),(值1,值2,..,值N)] -- []表示可选
|
DELETE数据删除:
1 2 3
| DELETE FROM 表名称 [WHERE 条件判断] -- 条件判断: 列 操作符 值 -- 操作符:=,>, <,<=,>=,!=等等
|
UPDATE数据更新:
1 2 3
| UPDATE 表名 SET 列=值 [WHERE 条件判断]; -- 条件判断: 列 操作符 值 -- 操作符:=,>, <,<=,>=,!=等等
|
DCL:数据控制(新增用户,删除用户,密码修改,权限管理)
DQL:数据查询(基于需求查询和计算数据)
1 2
| SELECT 字段列表|* FROM 表 -- 从(FROM)表中,选择(SELECT)某些列进行展示 SELECT 字段列表|* FROM 表 WHERE 条件判断
|
分组聚合:
1 2 3 4 5 6 7
| SELECT 字段(与后面列有关)|聚合函数 FROM 表 [WHERE 条件] GROUP BY 列 -- 聚合函数有: -- SUM(列) 求和 -- AVG(列) 求平均值 -- MIN(列) 求最小值 -- MAX(列) 求最大值 -- COUNT(列|*) 求数量
|
GROUP BY 中出现了那个列,那个列才能出现在SELECT中的非聚合中。
排序分页:
1 2 3 4 5
| -- 结果排序 SELECT 列|聚合函数|* FROM 表 WHERE ... GROUP BY ... ORDER BY ...[ASC | DESC] -- ASC升 DESC降
|
1 2 3 4 5 6 7 8
| -- 结果分页限制 -- 可以使用LIMIT关键字,对查询结果进行数量限制或分页显示 SELECT 列|聚合函数|* FROM 表 WHERE ... GROUP BY ... ORDER BY ... [ASC|DESC] LIMIT n[,m] -- n,m 跳过n条取m条 -- 讲究顺序的
|
Python创建到MySQL的数据库链接:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| pip install pymysql
from pymysql import Connection conn = Connection( host='localhost', port=3306, user='root', password='123456' ) print(conn.get_server_info()) cursor=conn.cursor() conn.select_db("test") cursor.execute("create table test_pymysql(id int);") cursor=conn.cursor() conn.select_db("test") cursor.execute("select * from student") results:tuple=cursor.fetchall() for r in results: print(r) conn.close()
|
Python执行SQL语句插入数据到MySQL

1 2 3 4 5 6 7 8 9
| conn.commit
conn = Connection( host='localhost', port=3306, user='root', password='123456' autocommit=True )
|