1. 初识网站
默认编写的静态的效果,如果想要动态就需要用到Web框架的功能。
数据的存储:txt文件、excel文件、专业的软件:数据库管理系统(MySQL、Oracle、SQLServer、DB2...)
2.安装Mysql
网址:https://dev.mysql.com/downloads/mysql/
3.MySQL指令
3.1数据库管理
查看已有的数据库
show databases;
创建数据库
create database 数据库名字 DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
删除数据库
drop database 数据库名字;
进入数据库
use 数据库名字;
查看数据库中所有的数据表
show tables;
删除表
drop table 表名称;
3.2 数据表的管理
创建表,是否允许为空需要提前标注上,可以为空就在类型后面加上null,不能为空就在类型后面加上 not null,主键一般用来表示当前行的数据的编号,auto_increment是自增的意思。
create table 表名称( 列名称 类型, 列名称 类型, 列名称 类型 )default charset=utf8;
create table tb1( id int auto_increment primary key, --主键(不允许为空,不允许重复) name varchar(16) not null, --不允许为空 age int default 3 --插入数据时,默认值为3 ) default charset=utf8;
查看表行列名、是否为空等信息
desc 表名;
常用数据类型:
tinyint
tinyint — 有符号,取值范围:-128 ~ 127(有正有负)
unsigned — 无符号,取值范围:0 ~255(只有正)
int
int 表示有符号,取值范围:-2147483648 ~ 2147483647
int unsigned 表示无符号,取值范围:0 ~ 4294967295
bigint
有符号,取值范围:-9223372036854775808 ~ 9223372036854775807
无符号,取值范围:0 ~ 18446744073709551615
表示小数的数据类型:float、double、decimal(精准)
语法格式“DECIMAL(M,D)”。
M是数字的最大数(精度),其范围为“1~65”,默认值是10;
D是小数点右侧数字的数目(标度),其范围是“0~30”,但不得超过M。类型说明 取值范围(MySQL < 3.23) 取值范围(MySQL >= 3.23)
字符串:
char:只给所固定的长度的空间,查询速度快
定长字符串,固定长度字符串,L是可以存储的长度,单位为字符,最大长度值可以为255
varchar:要多少给多少长度空间,节省空间
变长字符串,可变长度字符串,L表示字符长度,最大长度65535个字节
text
text数据类型用于保存变长的大字符串,可以组多到65535(2的16次方减1)个字符.一般情况下,长文本会用text类型,例如:文章、新闻等
mediumtext:最大长度为16777215(2的24次方减1)
longtext:最大长度为4294967295(2的32次方减1)
datatime YYYY-MM-DD hh:mm:ss '1000-01-01 00:00:00' 到 '9999-12-31 23:59:59'
date YYYY-MM-DD 1000-01-01/9999-12-31
往表里插入数据
--单行插入 insert into 表名(列名) values(值); --多行插入 insert into 表名(列名) values(值),(值);
查看表中所有数据
select * from 表名;
3.3 数据行操作
删除数据
delete from 表名; delete from 表名 where 条件; delete from tb1 where id=3;
修改数据
update 表名 set 列=值; update 表名 set 列=值,列=值; update 表名 set 列=值 where 条件; update tb1 set age=age+10 where id>5;
查询数据
select * from 表名称; select 列名称,列名称 from 表名称; select 列名称,列名称 from 表名称 where 条件; select id,name from tb1 where id>5;
4. Python操作Mysql
用python代码连接Mysql并发送指令:pip install pymysql
cursor相当于一个通道,连接之后通过cursor输发数据
#创建表 create table addd( id int not null auto_increment primary key, username varchar(16) not null, mobile char(11) not null )default charset=utf8;
#用python代码连接 import pymysql #1.连接MySQL conn = pymysql.connect(host="127.0.0.1", port=3306, user='root', passwd="123456", charset='utf8', db='unicom') cursor = conn.cursor(cursor=pymysql.cursors.DictCursor) # 2.发送指令 cursor.execute("insert into addd(username,mobile) values('abc', 12345678999)") conn.commit() #3.关闭 cursor.close() conn.close()
#查询数据 import pymysql # 1.连接MySQL conn = pymysql.connect(host="127.0.0.1", port=3306, user='root', passwd="root123", charset='utf8', db='unicom') cursor = conn.cursor(cursor=pymysql.cursors.DictCursor) # 2.发送指令(删除是delete、修改是update 表名 set...) cursor.execute("select * from admin where id > %s", [2, ]) # 获取符合条件的第一条数据 res = cursor.fetchone() print(res) # {'id': 3, 'username': 'ddd','mobile': '98765432199'} # 3.关闭连接 cursor.close() conn.close()
注意:
在进行新增、删除、修改的时候,不能忘记conn.commit,不然数据库没有数据;
在查询时,不需要commit,执行fetchall(查询所有数据)/fetchone(查询第一条数据)