持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第13天
DCL(数据控制语言)
创建一个新用户
create user '用户名' @ 'ip地址(%可以表示任意地址,localhost表示本机)' identified by '密码';
授权
#把hrs底下的所有权限对用户开放
grant all privileges on hrs.* to '用户名' @ 'ip地址';
召回权限
# 召回insert,delete,update权限
revoke insert,delete,update from '用户名' @ 'ip地址';
事务(transaction)
把多个增删改的操作做成一个不可分割的原子性操作(要么全部都做,要么全都不做)
-- 开启事务(开启事务环境)
begin;(start transaction;)
-- 提交(事务中的所有操作全部生效)
commit;
-- 回滚(在事务还没有生效时将事务中的操作全部撤销)
rollback;
python下的数据库
安装第三方库
pip install pymysql==版本号
# 查看虚拟环境的库的清单(库的名称和版本)
pip freeze
#输出环境需求(重定项)
pip freeze > requirements.txt
#一键安装环境依赖项
pip install -r requirements.txt
通过python连接数据库
- 首先建一个连接,然后建一个客户端通过客户端把命令发给数据库去执行
import pymysql
def add():
conn = pymysql.connect(host='主机IP地址',port=3306,user='',password='',db='数据库名称',charset='utf8')
try:
#上下文语法
with conn.cursor() as cursor:
#执行SQL语句
result = cursor.execute(
'insert into tb_dept values(90,'销售2部','重庆')')
if result = 1:
print('添加成功')
#因为默认是事务模式所以我们得手动提交
conn.commit()
except pymysql.MySQLError as error:
print(error)
#回滚操作
conn.rollback
finally:
#关闭连接,释放资源
conn.close()
def delete():
no = int(input('要删除部门的编号:'))
conn = pymysql.connect(host='主机IP地址',port=3306,user='',password='',db='数据库名称',charset='utf8')
try:
#上下文语法
with conn.cursor() as cursor:
#执行SQL语句
result = cursor.execute(
'delete from tb_dept where dno=%s',(no,))
if result = 1:
print('删除成功')
#因为默认是事务模式所以我们得手动提交
conn.commit()
except pymysql.MySQLError as error:
print(error)
#回滚操作
conn.rollback
finally:
#关闭连接,释放资源
conn.close()
- 错误总结
- 由于ip地址的错误导致连不上!
- 由于端口错误导致的报错!
- 用户名或者密码写错报错!
4. 数据库的名字写错!
5. 编码写错!
- 删除和更新传参要的都是元组类型