基础SQL笔记

一、SQL语言分类和基本语法

SQL语言分类

SQL语言可以根据功能基本分为四类:
1、数据定义:DDL
2、数据操纵:DML
3、数据控制:DCL
4、数据查询:DQL

SQL语言基本语法

SQL语言大小写不敏感
代码可以多行书写,以;结尾
支持三种注释方式:

	-- 单行注释方式1(符号后面一定要有空格)
	# 单行注释方式2(符号后面不必须加空格,但建议添加)
	/* 多行注释方式 */

二、SQL基本操作

1、DDL

库管理有关语法:

show databases; # 查看数据库
create database student charset utf8; 
# 创建名为student的数据库,charset utf8为可选项,含义为字符集选用utf8编码
use student; # 使用名为student的数据库
drop database student; # 删除名为student的数据库
select database(); # 查看当前使用的数据库

表管理有关语法:

create table student(
	name varchar(10),
	age int
); # 创建student表,其中有name和age列,分别为varchar和int类型
drop table student; # 删除student表
drop table student if exists; # 删除student表
show tables; # 展示表

其中一些简单的列类型:
int 整数,float 浮点数, varchar(长度) 文本、长度用于最大长度限制、最大值为255
date 日期类型, timestamp 时间戳类型

2、DML

# 1、数据插入
create table student(
	name varchar(10),
	age int,
	id int
);
insert into student(name, age, id) values("zs", 18, 100),("ls", 18, 101);
# student后面写要插入的列,values后面依次写每个的值

# 2、数据删除
delete from student where name="zs";
# 删除student表中 name列值为“zs”所在的行
# 条件判断包括 = > < <= >= != 等类型
# 如果不写where 条件判断,则删除整个表的所有数据

# 3、数据更新
update student set age=19 where id=101;
# 把student表中 id=101 的行中的age列数据改为19

3、DQL

# 1、基本查询
select id, name from student; # 查询student表中的id和name列
select * from student where age > 20; # 查询student表中的所有列其中满足age>20的行

# 2、分组聚合
select gender, avg(age) from student group by gender;
# 以gender作为分组依据,分别对每组的age求平均值
# 其中select之后出现的列名只能用group by中出现过的
# 错误示例:select gender, name, avg(age) from student group by gender;
# 其中name未在group by中出现,为非法操作

# 3、排序分页
select gender, avg(age) from student group by gender order by age asc limit 10, 5;
# 表示以age的升序为排序依据展示
# asc表示升序排列,desc表示降序排列
# limit表示从第十条开始向后取五条如果只写limit 5则从头开始取五条

聚合函数有以下几种:
1、avg(列):求平均值
2、sum(列):求和
3、min(列):求最小值
4、max(列):求最大值
5、count(列/*):求数量

语句需要按select from,where,group by,order by,limit的顺序写,其中只有第一项是必须,剩下四项均为按需添加即可

三、python操作SQL

1、导入包

使用python操作MySQL数据库需要提前导入包
cmd执行操作:pip install pymysql

2、操作

from pymysql import Connection
conn = Connection(
	host = "localhost", # 主机名(ip) localhost表示自己的电脑
	port = 3306, # 端口
	user = "root", # 账户
	password = "123456" # 密码
	autocommit = True # 是否自动确认(见下文)
) # 与数据库连接并登录

# 非查询操作
cursor = conn.cursor() # 获取游标对象
conn.select_db("test") # 选择数据库
cursor.execute("create table student(name varchar(10), age int);") # 写操作语句
# 在python中写SQL语句时;可以省略不写

# 查询操作
cursor = conn.cursor() # 获取游标对象
conn.select_db("test") # 选择数据库
cursor.execute("select * from student;") # 写操作语句
result : tuple = cursor.fetchall() # 获取查询结果
for i in result:
	print(i) # 输出查询结果

# 增删改操作
cursor = conn.cursor() # 获取游标对象
conn.select_db("test") # 选择数据库
cursor.execute("insert into student values('zs', 18, 100);") # 写操作语句
conn.commit() # 进行确定对数据的修改 如果认为在操作时确认较麻烦可以打开自动确认
# 即在连接数据库时加入参数autocommit = True(见上文)


conn.close() # 全部操作完成后,断开与数据库的连接
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值