有了云服务器怎么建设网站,中国工商黄页,个人单页网站,系统搭建1.SQL的概述
SQL的全称#xff1a;Structured Query Language#xff0c;结构化查询语言#xff0c;用于访问和处理数据库的标准计算机语言。
SQL语言1974年有Boyce和Chamberlin提出的#xff0c;并且首先在IBM公司研制的关系数据库系统SystemR上实现。
经过多年发展Structured Query Language结构化查询语言用于访问和处理数据库的标准计算机语言。
SQL语言1974年有Boyce和Chamberlin提出的并且首先在IBM公司研制的关系数据库系统SystemR上实现。
经过多年发展SQL已经成为数据库领域同意的数据操作标准语言可以说几乎市面上所有的数据库系统都支持使用SQL语言来操作。
SQL语言的分类
由于数据库管理系统数据库软件功能非常多不仅仅是存储数据还要包括数据的管理、表的管理、库的管理、账户管理、权限管理等等。
所以基于操作数据库的SQL语言也基于此功能划分为四类 数据定义DDLData Definition Language 库的创建删除、表的创建删除等 数据操控DMLData Manipulation Language 新增数据、删除数据、修改数据等 数据控制DCLData Control Language 新增用户、删除用户、密码修改、权限管理等 数据查询DQLData Query Language 基于需求查询和计算数据
SQL的语法特征
在学习DDL、DQL等之前我们先来了解SQL的语法特征。 SQL语言大小写不敏感 SQL可以单行或多行书写最后以号结束 SQL支持注释 单行注释--注释内容 (-- 后面一定要有一个空格) 单行注释# 注释内容 (#后面可以不加空格推荐加上) 多行注释/* 注释内容 */ show
-- 这是第一种注释方法
# 这是第二种注释方法
/* 多行注释 * */
databases; 2.SQL的DDL DDL是指数据定义语言用来对数据库中库表建立删除定义的。
创建库
# 查看数据库
SHOW DATABASES
# 使用数据库
USE 数据库名称
# 创建数据库
CREATE DATABASE数据库名称[CHARSET UTF8]:
# 删除数据库
DROP DATABASE数据库名称
# 查看当前使用的数据库
SELECT DATABASE();
创建表和删除表 # 查看有哪些表
SHOW TABLES; # 注意要先选择数据库
# 创建表
create table 表名称(列名称 列类型,列名称 列类型,……
);
drop table 表名称;
drop table if exists 表名称;
drop table where 条件判断; 列类型
-- 列类型
int -- 整数
float -- 浮点数
varchar(长度) -- 文本长度为数字做最大长度限制
date -- 日期类型
timestamp -- 时间戳类型
3.SQL的DML
DML是指数据操作语言用来对数据库中表的数据记录进行更新。
关键字 插入INSERT 删除DELETE 更新UPDATE
基础语法
insert into 表(列1,列2,列3,列4,……,列N) values(值1,值2,值3,……,值N)[(值1,值2,值3,……,值N),……,(值1,值2,值3,……,值N)]
示例
create table student(id int,name varchart(20),age int
);
# 仅插入id数据
insert into student(id) values(1000),(1002),(1003);
# 插入全部id列数据
insert into student(id, name, age) values(1001, 张三, 20),(1002, 李四, 19),(1003, 王五, 21);
# 插入全部列数据快捷写法
insert into student values(1001, 张三, 20),(1002, 李四, 19),(1003, 王五, 21);
数据删除DELETE
基础语法
DELETE FROM 表名称 WHERE 条件判断
条件判断列 操作符 值
操作符 ! 等 如
id 5
id 3
id 6
id ! 5
演示案例
CREATE TABLE student(id int,name varchar(10),age int
);
INSERT INTO student(id) values(1), (2), (3);
/** 等价于下面的代码* INSERT INTO student(id) values(1);* INSERT INTO student(id) values(2);* INSERT INTO student(id) values(3);
*/
insert into student(id, name, age) values(4, 张三, 31),(5, 李四,33);
delete from student where age 33;
4.SQL的DQL
1.基础查询
基础语法SELECT 字段列表|* FROM表
含义就是从(FROM)表中选择(SELECT)某些列进行展示
代码演示
select id, name from student;
select * from student;
select * from student where age 20;
select * from student where id 张三;
2.分组聚合
分组聚合应用场景如统计班级中男生和女生的人数。
这种需求就需要 按性别分组 统计各组的人数
这就称之为分组聚合。
基础语法
select 字段|聚合函数 from 表 [where 条件] group by 列
聚合函数:
sum(列) 求和
avg(列) 求平均值
min(列) 求最小值
max(列) 求最大值
count(列|*) 求数量
示例
select gender, avg(age), sum(age), min(age), max(age), count(avg) from student group by gender;
3.排序分页
结果排序
可以对查询结果使用order by关键字指定某个列进行排序语法
select 列|聚合函数|* from 表
where ……
group by ……
order by …… [ASC | DESC]
示例
select * from student where age 20 order by age asc;
select * from student where age 20 order by age desc;
结果分页限制
同样可以使用limit关键字对查询结果进行数量限制或分页显示语法
select 列|聚合函数|* from 表
where ……
group by ……
order by …… [asc | desc]
limit n[, m]
示例
select * from student limit 10; # 取10条信息
select * from student limit 10, 5; # 从第11条开始往后取5条
select * from student where age 20 group by age
order by age limit 3;
5.Python操作MySQL基础使用
1.基础使用
pymysql
除了使用图像化工具以外我们也可以使用编程编程语言来执行SQL从而操作数据库。
在Python中使用第三方库pymysql来完成对MySQL数据库的操作。
安装pip install pymysql but一开始在我的命令提示符里面怎么都下不下来这时候按照notice里面的To update run后面的绿色的代码粘贴到下面来进行操作 或者使用下列的方式 pip install pymysql -i http://pypi.douban.com/simple/ --trusted-host [pypi.douban.com](http://pypi.douban.com/) 创建到MySQL的数据库链接 代码如下
from pymysql import Connection
# 获取到MySQL数据库的连接对象
conn Connection(hostlocalhost, # 主机名或者IP地址port3306, # 端口默认3306userroot, # 账户名password123456 # 密码
)
# 打开MySQL数据库软件信息
print(conn.get_server_info())
# 关闭到数据库的链接
conn.close()
或者输入如下的代码
import pymysql
db pymysql.connect(hostlocalhost,port3306,userroot, #在这里输入用户名passwordqazwsxedc.2345, #在这里输入密码charsetutf8mb4) #连接数据库
cursor db.cursor() #创建游标对象
sql show databases #sql语句
cursor.execute(sql) #执行sql语句
one cursor.fetchone() #获取一条数据
print(one:,one)
many cursor.fetchmany(3) #获取指定条数的数据不写默认为1
print(many:,many)
all cursor.fetchall() #获取全部数据
print(all:,all)
cursor.close()
db.close() #关闭数据库的连接 出现上图界面就说明pymysql成功将pycharm和mysql连接起来了。 执行查询性质的SQL语句
from pymysql import Connection
# 获取到MySQL数据库的连接对象
conn Connection(hostlocalhost,port3306,userroot,password2345
)
# 获取游标对象
cursor conn.cursor()
conn.select_db(world)
# 使用游标对象执行sql语句
cursor.execute(SELECT * FROM student)
# 获取查询结果
results cursor.fetchall()
for r in results:print(r)
# 关闭到数据库的链接
conn.close()
2.数据插入
commit提交
pymysql在执行数据插入或其它产生数据更改的SQL语句时默认是需要提交更改的即需要通过代码“确认”这种更改行为。
通过链接对象.commit()即可确认此行为。
from pymysql import Connection
# 获取到MySQL数据库的连接对象
conn Connection(hostlocalhost,port3306,userroot,password2345
)
# 获取游标对象
cursor conn.cursor()
conn.select_db(world)
# 使用游标对象执行sql语句
cursor.execute(insert into student values(10001, 唐七, 19))
# 关闭到数据库的链接
conn.close()
6.综合案例
使用SQL语句和pymysql库完成综合案例的开发 DDL定义 本次需求开发我们需要新建一个数据库来使用数据库名称py_sql
基于数据结构可以得到建表语句
CREATE TABLE order(order_date DATE,order_id, VARCHAR(255),money INT,province VARCHAR(10)
);
实现步骤
读取数据 - 封装数据对象 - 构建数据库链接 - 写入数据库
import ..
text_file_reader TextFileReader(D:/2011年1月销售数据.txt)
json_file_reader JsonFileReader(0/2011年2月销售数据JS0N.txt)
jan_data:list[Record] text_file_reader.read_data()
feb_data:list[Record] json_file_reader.read_data()
# 将2个月份的数据合并list来存储
all_data:list[Record] jan_data feb_data# 构建MySQL链接对象
cursor conn.cursor()
conn.select_db(py_sql)
# 组织SQL语句
for record in all_data:sql finsert into orders(order_data, order_id, money, province) fvalues({record.date},{record.order_id){record.noney},{record.province})print(sql)cursor.excute(sql)
conn.close()