SQL语法知识回顾

一、SQL****语言的分类

由于数据库管理系统(数据库软件)功能非常多,不仅仅是存储数据,还要包含:数据的管理、表的管理、库的管理、账户管理、权限管理等等。所以,操作数据库的SQL语言,也基于功能,可以划分为4类:

数据定义:DDL(Data Definition Language)

  • 库的创建删除、表的创建删除等

数据操纵:DML(Data Manipulation Language)

  • 新增数据、删除数据、修改数据等

数据控制:DCL(Data Control Language)新增用户、删除用户、密码修改、权限管理等

  • 数据查询:DQL(Data Query Language)基于需求查询和计算数据

• SQL 语言,大小写不敏感
• SQL 可以单行或多行书写,最后以 ; 号结束
• SQL 支持注释:
• 单行注释: -- 注释内容( -- 后面一定要有一个空格)
• 单行注释: # 注释内容( # 后面可以不加空格,推荐加上)
• 多行注释: /* 注释内容 */

二、DDL****库管理

三、DDL表管理

四、DML语言

DML是指数据操作语言,英文全称是Data Manipulation Language,用来对数据库中表的数据记录进行更新。

关键字:插入INSERT、删除DELETE 、更新UPDATE

数据插入 INSERT

数据删除****DELETE

数据更新 UPDATE

五、DQL语言

基础查询

|--------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------|
| 基础数据查询 | 基础数据过滤 |
| | |

分组聚合

结果排序

可以对查询的结果,使用ORDER BY 关键字,指定某个列进行排序,语法:

六、Python执行SQL语句操作MySQL数据库软件

除了使用图形化工具以外,我们也可以使用编程语言来执行SQL从而操作数据库。在Python中,使用第三方库:pymysql 来完成对MySQL数据库的操作。

安装:pip install pymysql

创建到MySQL的数据库链接

python 复制代码
"""
演示使用pymysql库进行数据插入的操作
"""
from pymysql import Connection

# 构建到MySQL数据库的链接
conn = Connection(
    host="localhost",   # 主机名(IP)
    port=3306,          # 端口
    user="root",        # 账户
    password="123456",  # 密码
    autocommit=True     # 自动提交(确认)
)

# print(conn.get_server_info())
# 执行非查询性质SQL
cursor = conn.cursor()      # 获取到游标对象
# 选择数据库
conn.select_db("world")
# 执行sql
cursor.execute("insert into student values(10002, '林俊节', 31, '男')")
# # 通过commit确认
# conn.commit()
# 关闭链接
conn.close()

如何获取链接对象?

  • from pymysql import Connection 导包
  • Connection(主机,端口,账户,密码)即可得到链接对象
  • 链接对象.close() 关闭和MySQL数据库的连接

如何执行SQL查询?

  • 通过连接对象调用cursor()方法,得到游标对象
  • 游标对象.execute()执行SQL语句
  • 游标对象.fetchall()得到全部的查询结果封装入元组内

自动****commit

如果不想手动commit确认,可以在构建链接对象的时候,设置自动commit的属性。

如图代码进行设置,即可自动提交无需手动commit了。

相关推荐
书院门前细致的苹果10 分钟前
MySQL 中的 B+树和 B树的区别详解
数据结构·数据库·mysql
十六点五18 分钟前
Java NIO的底层原理
java·开发语言·python
跟橙姐学代码26 分钟前
不要再用 print() 了!Python logging 库才是调试的终极武器
前端·python
用户763399009082037 分钟前
MongoDB数据库
数据库
boonya1 小时前
数据库分库分表是考虑ShardingSphere 还是Mycat?
数据库
扶尔魔ocy1 小时前
【qml入门】在qml项目上加入用户登录qml页面(包含源码)
数据库
沢田纲吉1 小时前
MySQL 学习二:数据库的操作
数据库·后端·mysql
小叶lr1 小时前
python 从pycharm部署到新环境
开发语言·python·pycharm
大白的编程日记.1 小时前
【MySQL】表的操作和数据类型
android·数据库·mysql
2301_763471031 小时前
Python单元测试(unittest)实战指南
python