文章目录
一些笔记和链接
更加详细的请看 我的 云笔记
我看的那本漫画书写的笔记。常用 操作 是够了的。
我的看书笔记 写的非常详细,有需要的可以自己去看看。
最后是此文章帮我解决了问题
mysql cmd 常用命令 (一般登录都是直接打开 sql自带的命令行工具登录就可以了)
命令行登录方式
前提是 需要配置环境变量
C:\Program Files\MySQL\MySQL Server 8.0\bin
mysql -u root -p
然后输入密码就行了
工具
- navicat可视化工具(mysql)
连接 数据库
import pymysql
con=pymysql.connect(host='localhost',user='用户名',password='密码',database='数据库名字',port=3306)
cursor = conn.cursor() # 创建一个 游标
cursor.execute("select 1") # 加载一个选择 1 等他返回 说明 连接成功
result = cursor.fetchone()
print(result) # 返回一个 1 就代表连接上了
conn.close()
创建表
# 创建表
#导入pymysql
import pymysql
#创建连接
con=pymysql.connect(host='localhost',user='用户名',password='密码',database='数据库名字',port=3306)
#创建游标对象
cur=con.cursor()
#编写创建表的sql
# sql 语句
sql="""
create table t_student(
sno int primary key auto_increment,
sname varchar(30) not null,
age int(2),
score float(3,1)
)
"""
try:
# 执行创建表的sql
cur.execute(sql)
print('创建表成功')
except Exception as e:
print(e)
print('创建表失败')
finally:
#关闭连接
con.close()
创建表成功
建表
CREATE TABLE `出口国信息` (
`出口国编码` INT ( 255 ) NOT NULL,
`出口国名称` VARCHAR ( 255 ) DEFAULT NULL,
`人口` INT ( 11 ) DEFAULT NULL,
PRIMARY KEY ( `出口国编码` )
) ENGINE = INNODB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci;
可以看见 navicat软件的 sql 代码
python mysql数据库插入数据
插入一条
# 插入数据
#导入模块
import pymysql
#创建连接
con=pymysql.connect(host='localhost',user='用户名',password='密码',database='数据库名字',port=3306)
#创建游标对象
cur=con.cursor()
#编写插入数据的sql
sql='insert into t_student(sname,age,score) values(%s,%s,%s)'
try:
# 执行sql
cur.execute(sql, ('小强', 18, 99.9))
#提交事务
con.commit()
print('插入成功')
except Exception as e:
print(e)
con.rollback()
print('插入失败')
finally:
#关闭连接
con.close()
插入一条
import pymysql
con=pymysql.connect(host='localhost',user='用户名',password='密码',database='数据库名字',port=3306)
cursor = conn.cursor() # 创建一个 游标
cursor.execute("select 1")
result = cursor.fetchone()
# insert into user(id,username,age,password) values(2,'bbb',20,'111111') 这里是插入数据
# sql = """
# insert into user(id,username,age,password) values(2,'bbb',20,'111111')
# """
# cursor.execute(sql) # 映射到数据库
# conn.commit() # 提交到数据库
sql = """
insert into user(id,username,age,password) values(null,%s,%s,%s)
"""
# id指定为null,因为数据库里面已经设置为 自增长,所以就会自动增长了,%s占位字符串,这里全部都要 设置为%s 占位,因为数据库 把他作为 字符串处理
username = 'spider'
age = 21
password = '123456'
cursor.execute(sql, (username, age, password)) # 传一个元组进去,插入数据
conn.commit() # 提交数据
conn.close() # 关闭连接
插入多条数据
# 插入多条数据
#导入模块
import pymysql
#创建连接
con=pymysql.connect(host='localhost',user='用户名',password='密码',database='数据库名字',port=3306)
#创建游标对象
cur=con.cursor()
#编写插入数据的sql
sql='insert into t_student(sname,age,score) values(%s,%s,%s)'
try:
# 执行sql
cur.executemany(sql,[('小明',19,99.8),('小红',18,99.9),('晓丽',18,99.8),('小花',19,99.6)])
#提交事务
con.commit()
print('插入成功')
except Exception as e:
print(e)
con.rollback()
print('插入失败')
finally:
#关闭连接
con.close()
查询数据
import pymysql
con=pymysql.connect(host='localhost',user='用户名',password='密码',database='数据库名字',port=3306)
cursor = conn.cursor() # 创建一个 游标
# select username,age from user where id=1
# from 从 user查找 指定条件 where id=1 where 当id=1 的 username 和age
# 另外一种查找方法
# select * from user
# *代表所有的4个字段
# 这种方法第一次调用,就返回第一条数据
# 第二次调用就 返回第二条数据 ,依次往下
# sql = """
# select username,age from user where id=2
# """
# #################### fetchone ################
# 查询一条数据
# sql = """
# select * from user
# """
# cursor.execute(sql)
# # 这里是 所有数据打印出来
# while True:
# result = cursor.fetchone()
# if result: # 加条件 如果 获取到result数据 就继续 ,没有就说明取到 最后一条数据了,就结束
# print(result)
# else:
# break
# conn.close()
# ################### fetchall ##############
# 查询所有数据
# sql = """
# select * from user
# """
# cursor.execute(sql)
# results = cursor.fetchall()
# for result in results:
# print(result)
# conn.close()
# ################# fetchmany ###########
sql = """
select * from user
"""
cursor.execute(sql)
results = cursor.fetchmany(3) # 数字几就是查询 几条数据
for result in results:
print(result)
conn.close()
查询所有数据
# 查询所有数据
#导入pymysql
import pymysql
#创建连接
con=pymysql.connect(host='localhost',user='用户名',password='密码',database='数据库名字',port=3306)
#创建游标对象
cur=con.cursor()
#编写查询的sql
sql='select * from t_student where age=18'
#执行sql
try:
cur.execute(sql)
#处理结果集
students=cur.fetchall()
for student in students:
sno=student[0]
sname=student[1]
age=student[2]
score=student[3]
print('sno:',sno,'sname:',sname,'age:',age,'score:',score)
except Exception as e:
print(e)
print('查询所有数据失败')
finally:
#关闭连接
con.close()
查询一条数据
# 查询一条数据
#导入pymysql
import pymysql
#创建连接
con=pymysql.connect(host='localhost',user='用户名',password='密码',database='数据库名字',port=3306)
#创建游标对象
cur=con.cursor()
#编写查询的sql
sql='select * from t_student where age=18'
#执行sql
try:
cur.execute(sql)
#处理结果集
student=cur.fetchone()
print(student)
sno=student[0]
sname=student[1]
age=student[2]
score=student[3]
print('sno:',sno,'sname:',sname,'age:',age,'score:',score)
except Exception as e:
print(e)
print('查询所有数据失败')
finally:
#关闭连接
con.close()
(2, '小红', 18, 99.9)
sno: 2 sname: 小红 age: 18 score: 99.9
删除数据
import pymysql
con=pymysql.connect(host='localhost',user='用户名',password='密码',database='数据库名字',port=3306)
cursor = conn.cursor() # 创建一个 游标
sql = """
delete from user where id=1 # 删除 id =1 的数据
"""
cursor.execute(sql) # 加载命令 ,传如命令
# 插入.删除.更新
# 都需要执行commit操作
conn.commit()
conn.close()
# 删除数据
#导入模块
import pymysql
#创建连接
con=pymysql.connect(host='localhost',user='用户名',password='密码',database='数据库名字',port=3306)
#创建游标对象
cur=con.cursor()
#编写删除的sql
sql='delete from t_student where sname=%s'
#执行sql语句
try:
cur.execute(sql,('张三丰'))
con.commit()
print('删除成功')
except Exception as e:
print(e)
con.rollback()
print('删除失败')
finally:
#关闭连接
con.close()
修改数据
# 修改数据
#导入模块
import pymysql
#创建连接
con=pymysql.connect(host='localhost',user='用户名',password='密码',database='数据库名字',port=3306)
#创建游标对象
cur=con.cursor()
#编写修改的sql
sql='update t_student set sname=%s where sno=%s'
#执行sql语句
try:
cur.execute(sql,('张三丰',1))
con.commit()
print('修改成功')
except Exception as e:
print(e)
con.rollback()
print('修改失败')
finally:
#关闭连接
con.close()
更新数据库
import pymysql
con=pymysql.connect(host='localhost',user='用户名',password='密码',database='数据库名字',port=3306)
cursor = conn.cursor() # 创建一个 游标
# 不加 where 会把 所有的 数据 改为bbb
sql = """
update user set username='bbb' where id=2
"""
cursor.execute(sql) # 加载命令 ,传如命令
# 插入.删除.更新
# 都需要执行commit操作
conn.commit()
conn.close()
mysql命令行
具体可以看python 代码里面的 查询sql查询语句
建表
create table userinfoList(
username varchar(100) ,
password varchar(100)
);
插入
insert into userinfolist(username,password) values('pis','123456')
删除
delete from userinfolist where username='lili'
查询
select userName from userinfolist where password='333'
修改
set 代表要修改的值
where 代表修改哪里
# 语句1
update userinfoList set password='66666' where username='frank'
# 语句2
update userinfolist set userName='frank',password='666' where userName='frank'
简写
如果针对所有字段的话可以 不需要写字段
例如:
insert into userinfolist values('pis','123456')
tips
字段不需要加引号但是value需要加 引号