当前位置:网站首页>梅科尔工作室-DjangoWeb 应用框架+MySQL数据库第二次培训

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

2022-08-11 05:23:00 C_yyy89

前言

本文是记录DjangoWeb 应用框架+MySQL数据库第二次培训的笔记,包含SQL语句学习笔记,Python连接MySQL数据库和Django连接数据库。

感谢梅姐的教学!


一、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连接数据库

参考下方教程链接进行

(8条消息) Python3用Django连接Mysql-很详细的亲测过程(Mac或者Windows)_一心精通Java的靓仔程序员的博客-CSDN博客_django连接mysql

原网站

版权声明
本文为[C_yyy89]所创,转载请带上原文链接,感谢
https://blog.csdn.net/ayaxx1314/article/details/125691582