(本文书写的初衷,大家想简单是使用数据库,而不想深入了解时,可以直接使用)
1.安装
# Ubuntu20以上版本适用
# 安装python包
pip install pymysql
# 安装数据库
sudo apt install mysql-server
# 设置密码
sudo mysql_secure_installation
# 如果设置密码错误
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'lihaitao';
# 测试
sudo systemctl status mysql
# 登陆
# 登录方式:mysql -u 用户名 -p 密码(lihaitao)
mysql -u root -p
# 启动MySQL服务
service mysql start
# 停止MySQL服务
service mysql stop
# 重启MySQL服务
service mysql restart
2.mysql常用命令
1. MYSQL常用命令
2. 1.导出整个数据库
3. mysqldump -u 用户名 -p –default-character-set=latin1 数据库名 > 导出的文件名(数据库默认编码是latin1)
4. mysqldump -u wcnc -p smgp_apps_wcnc > wcnc.sql
5. 2.导出一个表
6. mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名
7. mysqldump -u wcnc -p smgp_apps_wcnc users> wcnc_users.sql
8. 3.导出一个数据库结构
9. mysqldump -u wcnc -p -d –add-drop-table smgp_apps_wcnc >d:wcnc_db.sql
10. -d 没有数据 –add-drop-table 在每个create语句之前增加一个drop table
11. 4.导入数据库
12. A:常用source 命令
13. 进入mysql数据库控制台,
14. 如mysql -u root -p
15. mysql>use 数据库
16. 然后使用source命令,后面参数为脚本文件(如这里用到的.sql)
17. mysql>source wcnc_db.sql
18. B:使用mysqldump命令
19. mysqldump -u username -p dbname < filename.sql
20. C:使用mysql命令
21. mysql -u username -p -D dbname < filename.sql
22.
23. 一、启动与退出
24. 1、进入MySQL:启动MySQL Command Line Client(MySQL的DOS界面),直接输入安装时的密码即可。此时的提示符是:mysql>
25. 2、退出MySQL:quit或exit
26.
27. 二、库操作
28. 1、、创建数据库
29. 命令:create database <数据库名>
30. 例如:建立一个名为xhkdb的数据库
31. mysql> create database xhkdb;
32. 2、显示所有的数据库
33. 命令:show databases (注意:最后有个s)
34. mysql> show databases;
35. 3、删除数据库
36. 命令:drop database <数据库名>
37. 例如:删除名为 xhkdb的数据库
38. mysql> drop database xhkdb;
39. 4、连接数据库
40. 命令:use <数据库名>
41. 例如:如果xhkdb数据库存在,尝试存取它:
42. mysql> use xhkdb;
43. 屏幕提示:Database changed
44. 5、查看当前使用的数据库
45. mysql> select database();
46. 6、当前数据库包含的表信息:
47. mysql> show tables; (注意:最后有个s)
48.
49. 三、表操作,操作之前应连接某个数据库
50. 1、建表
51. 命令:create table <表名> ( <字段名> <类型> [,..<字段名n> <类型n>]);
52. mysql> create table MyClass(
53. > id int(4) not null primary key auto_increment,
54. > name char(20) not null,
55. > sex int(4) not null default ’′,
56. > degree double(16,2));
57. 2、获取表结构
58. 命令:desc 表名,或者show columns from 表名
59. mysql>DESCRIBE MyClass
60. mysql> desc MyClass;
61. mysql> show columns from MyClass;
62. 3、删除表
63. 命令:drop table <表名>
64. 例如:删除表名为 MyClass 的表
65. mysql> drop table MyClass;
66. 4、插入数据
67. 命令:insert into <表名> [( <字段名>[,..<字段名n > ])] values ( 值 )[, ( 值n )]
68. 例如,往表 MyClass中插入二条记录, 这二条记录表示:编号为的名为Tom的成绩为.45, 编号为 的名为Joan 的成绩为.99,编号为 的名为Wang 的成绩为.5.
69. mysql> insert into MyClass values(1,’Tom’,96.45),(2,’Joan’,82.99), (2,’Wang’, 96.59);
70. 5、查询表中的数据
71. 1)、查询所有行
72. 命令:select <字段,字段,…> from < 表名 > where < 表达式 >
73. 例如:查看表 MyClass 中所有数据
74. mysql> select from MyClass;
75. 2)、查询前几行数据
76. 例如:查看表 MyClass 中前行数据
77. mysql> select from MyClass order by id limit 0,2;
78. 或者:
79. mysql> select from MyClass limit 0,2;
80. 6、删除表中数据
81. 命令:delete from 表名 where 表达式
82. 例如:删除表 MyClass中编号为 的记录
83. mysql> delete from MyClass where id=1;
84. 7、修改表中数据:update 表名 set 字段=新值,…where 条件
85. mysql> update MyClass set name=’Mary’where id=1;
86. 7、在表中增加字段:
87. 命令:alter table 表名 add字段 类型 其他;
88. 例如:在表MyClass中添加了一个字段passtest,类型为int(4),默认值为
89. mysql> alter table MyClass add passtest int(4) default ’′
90. 8、更改表名:
91. 命令:rename table 原表名 to 新表名;
92. 例如:在表MyClass名字更改为YouClass
93. mysql> rename table MyClass to YouClass;
94. 更新字段内容
95. update 表名 set 字段名 = 新内容
96. update 表名 set 字段名 = replace(字段名,’旧内容’,’新内容’)
3.自定义数据库操作类,进行简单的操作。(复杂的操作大家可自行完善)
import pymysql
"""
mysql类
"""
class mysql_data():
def __init__(self, database):
try:
# 打开数据库连接,修改成自己的信息
self.conn = pymysql.connect(host='localhost',
port=3306,
user='root',
passwd='lihaitao',
charset = 'utf8'
)
# 使用 cursor() 方法创建一个游标对象 cursor
self.cursor = self.conn.cursor()
# 进入指定数据库
sql = "use "+database+";"
self.cursor.execute(sql)
except:
print("登陆失败")
def read(self, table):
# 查询语句
try:
sql = "select * from "+table
print(sql)
self.cursor.execute(sql)
return self.cursor.fetchall()
except:
print("查询失败")
def create(self, table, tables, style):
# 创建表
if len(tables) != len(style):
print("输入数据长度不一致")
try:
# sql="""CREATE TABLE test (
# FIRST_ CHAR(20) NOT NULL,
# SECOND_ CHAR(20),
# THIRD_ INT,
# FOURTH_ CHAR(1),
# FIFTH_ FLOAT )"""
sql = "CREATE TABLE "+table+" ("
i = 0
for num in tables:
if i == len(tables)-1:
sql = sql+num+" "+style[i]+")"
break
sql = sql+num+" "+style[i]+","
i = i+1
# 运行sql语句
print(sql)
self.cursor.execute(sql)
except:
print("数据库以创建")
def write(self, table, tables, data):
# 插入语句
if len(tables) != len(data):
print("输入数据长度不一致")
try:
# sql = "insert into test(FIRST_,SECOND_,THIRD_,FOURTH_,FIFTH_) values ('MAC1','MOTH1','20','M','2000')"
sql = "insert into "+table+"("
i = 0
for num in tables:
if i == len(tables)-1:
sql = sql+num+")"
break
sql = sql+num+","
i = i+1
sql = sql+" values ("
i = 0
for num in data:
if i == len(tables)-1:
sql = sql+"'"+num+"')"
break
sql = sql+"'"+num+"',"
i = i+1
print(sql)
# 运行sql语句
self.cursor.execute(sql)
# 修改
self.conn.commit()
except:
print("插入失败")
def delete(self, table, table_d, data):
# SQL 删除语句
# sql = "DELETE FROM test WHERE FIRST_='MAC'"
sql = "DELETE FROM "+table+" WHERE "+table_d+"='"+data+"'"
try:
# 执行SQL语句
print(sql)
self.cursor.execute(sql)
# 修改
self.conn.commit()
except:
# 发生错误时回滚
self.cursor.rollback()
print("删除失败")
def close(self):
self.cursor.close()
# 示例程序
test = mysql_data("django3lib")
table = "people"
result = test.read(table)
for data in result:
print(data)
table = "people"
tables = ["ID", "姓名", "密码", "年龄"]
style = ["CHAR(20)", "CHAR(20)", "CHAR(20)", "INT"]
test.create(table, tables, style)
data = ["3", "里斯三", "123456789", "19"]
test.write(table, tables, data)
test.delete(table, tables[0], "3")
result = test.read(table)
for data in result:
print(data)
test.close()