当前位置:网站首页>Maykel Studio - Django Web Application Framework + MySQL Database Second Training
Maykel Studio - Django Web Application Framework + MySQL Database Second Training
2022-08-11 06:16:00 【C_yyy89】
前言
本文是记录DjangoWeb 应用框架+MySQLNotes from the second training of the database,包含SQL语句学习笔记,Python连接MySQL数据库和Django连接数据库.
Thanks for teaching Mrs.!
一、SQL语句学习笔记
1.1 SQL简介
SQL 是一种标准化的语言,它允许你在数据库上执行操作,如创建数据库、表等等,查询内容,更新内容,并删除条目等操作.Create, Read, Update, and Delete 通常称为CRUD操作.
SQL 对大小写不敏感:SELECT 与 select 是相同的.
1.2 SQL语句分类
DDL(Data Definition Language):数据定义语言,用来定义数据库对象:库、表、列等
DML(Data Manipulation Language):数据操作语言,用来定义数据库记录(数据)
DCL(Data Control Language):数据控制语言,用来定义访问权限和安全级别
DQL(Data Query Language):数据查询语言,用来查询记录(数据)
1.3 常用SQL语句
1.3.1 增、删、查、改
INSERT INTO <表名> VALUES (<值1>, <值2>, <值3>, …);
#增加指定数据表
DROP TABLE <表名>;
#删除指定数据表
SELECT * FROM 表名 WHERE 变量1='' AND 变量2>3;
SELECT * FROM 表名 ORDER BY 变量;
SELECT * FROM 表名 WHERE salary BETWEEN 50000 AND 100000;
#查找指定数据表
UPDATE <表名> SET <列名1> = <值1>, <列名2> = <值2>, ... WHERE <条件>;
#改变指定数据表的数据1.3.2 对数据库和数据表的操作总结
Show databases
Show tables
Insert into 表名() values()
Update 表名 set 字段=值 where ...
Delete from 表名 where ...
Select * from 表名 where 条件 order by ...
Desc/asc limit ...Group by ... Having ...
create database test1222; #创建数据库
show databases; #显示当前所有的数据库
alter database test1222 character set utf8; #修改当前数据库的字符编码为utf8
drop database if exists test122202; #删除数据库test122202,如果该数据库存在的话
# ---------------------------------
create table if not exists student(
id int primary key auto_increment, #主键约束,自动增长约束
`name` varchar(30) not null unique, #非空约束,唯一约束
age int,
address varchar(40),
heigh double(5,2), #这是浮点数类型,最多5位,其中必须有两位小数,即最大值为999.99
weight decimal(5,2), #这是精确数值类型,我们定义为:能够存储具有五位数和两位小数的任何值,存储范围为-999.99至999.99.
jianjie text, #这是大文本字符串类型,适合存储比较大的文本数据
photo blob, #这是二进制数据类型,适合存储图片、音频、视频等
birthday date, #日期类型,格式为:yyyy-mm-dd
ruxuetime datetime #日期时间类型 yyyy-mm-dd hh:mm:ss
)charset=utf8;
# ---------------------------------
drop table table_name; #删除某个表;
show tables; #显示当前的库中所有的数据表;
desc student; #查看数据表student中的所有字段;
alter table student add company varchar(50); #为student表增加一个字段;
#一次添加多条数据:
insert into student(id,`name`,age,address) values (4,'曹操',27,'北京海淀'),(5,'周瑜',28,'北京朝阳'),(6,'赵云',30,'北京大兴');
update student set age=24,address="河北保定" where id=1; #更新某条数据
update student set age=age+5; #将所有的年龄都加5岁;
# ---------------------------------
delete from student where `name`="zhangsan"; #删除表中的某个字段;
#对比:
drop table table_name; #删除某个表;1.3.3 其他命令总结
Mysql -uroot -p 回车 密码
#cmd进入mysql的命令
showdatabases;
#显示当前 mysql 中的所有数据库
show create database mysql;
#显示创建数据库的 sql 语句
show create table user;
#显示创建表的 sql 语句
desc user;
#查询 user 表的结构
explain select * from user;
#获取 select 相关信息
show processlist;
#显示哪些线程正在运行
SHOW VARIABLES;
#显示系统变量和值
SHOW VARIABLES like ’ %conn% ’
#显示系统变量名包含 conn 的值
二、Python连接MySQL数据库
2.1 连接数据库
2.1.1 下载安装pymysql库
在终端输入pip install pymysql即可.
2.1.2 导入库
import pymysql
2.1.3连接数据库
最好用try except捕获异常,例如:
DBHOST = 'localhost'
DBUSER = 'root'
DBPASS = 'root'
DBNAME = 'dbtest'
try:
db = pymysql.connect(host=DBHOST,user=DBUSER, password=DBPASS, database=DBNAME)
print('数据库连接成功!')
except pymysql.Error as e:
print('数据库连接失败'+str(e))2.2 创建新表
2.2.1 声明一个游标
cur = db.cursor()
2.2.2 创建表之前先检查是否存在,如果存在则删除
cur.execute('DROP TABLE IF EXISTS Student')
2.2.3 编辑SQL语句
sqlQuery = "CREATE TABLE Student(Name CHAR(20) NOT NULL ,Email CHAR(20),Age int )"
cur.execute(sqlQuery)
2.3 向表中插入一条数据
2.3.1 编辑sql语句
sqlQuery=" INSERT INTO Student (Name, Email, Age) VALUE (%s,%s,%s) "
2.3.2 编辑准备插入的值
value=('Mike','[email protected]',20)
2.3.3 执行sql语句
try:
cur.execute(sqlQuery,value)
db.commit()
print('数据插入成功!')
except pymysql.Error as e:
print("数据插入失败:"+e )
db.rollback()2.4 查询表中数据
2.4.1 编辑sql语句
sqlQuery = "SELECT * FROM Student"
2.4.2 使用fetchall()方法接收全部的返回结果行
try:
cur.execute(sqlQuery)
results=cur.fetchall()
for row in results:
name=row[0]
email=row[1]
age=row[2]
print('Name:%s,Email:%s,Age:%s'%(name,email,age))
except pymysql.Error as e:
print("数据查询失败:"+str(e))2.5 更新表中的数据
2.5.1 编辑sql语句
sqlQuery = "UPDATE Student SET Name= %s WHERE Name=%s"
2.5.2 编辑更新的信息
value = ('John', 'updated name')
2.5.3 提交修改
try:
cur.execute(sqlQuery, value)
db.commit()
print('数据更新成功!')
except pymysql.Error as e:
print("数据更新失败:"+str(e))
# 发生错误时回滚
db.rollback()2.6 删除表中的数据
2.6.1 编辑sql语句
sqlQuery = "DELETE FROM Student where Name=%s"
2.6.2 编辑更新的信息
value = ('John')
2.6.3 提交修改
try:
cur.execute(sqlQuery, value)
db.commit()
print('Date Deleted Successfully')
except pymysql.Error as e:
print("数据删除失败:"+str(e))
# 发生错误时回滚
db.rollback()2.7 删除一张表
2.7.1 编辑SQL语句
sqlQuery='DROP TABLE IF EXISTS Student'
2.7.2 提交修改
cur.execute(sqlQuery)
print('表删除成功!')
3 Django连接数据库
Refer to the tutorial link below
(8条消息) Python3用Django连接Mysql-很详细的亲测过程(Mac或者Windows)_一心精通Java的靓仔程序员的博客-CSDN博客_django连接mysql
边栏推荐
猜你喜欢

Reconstruction and Synthesis of Lidar Point Clouds of Spray

emqx创建规则引擎写入tDengine

《现代密码学》学习笔记——第三章 分组密码

TAMNet:A loss-balanced multi-task model for simultaneous detection and segmentation

第七届集美大学程序设计竞赛(个人赛)题解

azkaban集群部署

梅科尔工作室-DjangoWeb 应用框架+MySQL数据库第六次培训

order by注入,limit注入,宽字节注入

MGRE实验

Nodered系列—使用node-red-node-mysql写入mysql详细步骤
随机推荐
【OAuth2】授权机制
Androd 基本布局(其一)
GBASE数据库迁移(Oracle到GBase 8s的数据类型映射)
华为adb wifi调试断线问题解决
GBase 8s集中式企业级安全事务型数据库
Rethinking LiDAR Object Detection in adverse weather conditions
如何修改严格模式让MySQL5.7插入用户表的方式新建用户成功?delete和drop的不同
Robust 3D Object Detection in Cold Weather Conditions
websocket聊天通讯(全局封装)
动画(其二)
梅科尔工作室-DjangoWeb 应用框架+MySQL数据库第六次培训
GBase 8a MPP Cluster产品支撑的平台
《现代密码学》学习笔记——第四章 公钥密码
Mysql导入UTF8编码数据库命令总结
【mysql】查询不区分大小写(用户密码登录不区分大小写)
云计算学习笔记——第三章 计算虚拟化[一]
360°大视野安全帽识别系统-深度学习智能视频分析
GBase 8s共享内存中的常驻内存段
>>数据管理:DAMA简介
更新GreenDAO实体类导致的编译错误