Day 38 数据库基础2
Day38 数据库基础2
配置文件解析模块
只能包含setion和option
option必须包含在sectiong中
所有的值都是字符串类型不需要加引号
同一个分区不能用相同的option
同一个配置文件不能用相同的setion
#配置文件
[分区名]
内容
# 调用文件
import configparser
cfg=configparser.ConfigParser()
cfg.read('配置文件名',encoding=字符编码)
data= cfg.get(分区,内容) #拿到的类型都是str
cfg.getint()
cfg.getfolat()
cfg.getboolean()
mysql数据库基础
1. 配置文件的使用
添加客户端登录账号,密码,统一客户端与服务端的字符编码
客户端配置需要重新进去
服务端配置需要重启服务
#在数据库更目录赋值my-default.ini
#修改文件内容如下,mysqld默认读取my.ini文件作为配置文件
[mysqld]
character-set-server=utf8
[mysql]
user=root
password='密码'
default-character-set=utf8
[client]
user=root
password='密码'
default-character-set=utf8
2. 表的分类 数据库引擎
数据库引擎指的是真正负责存储数据的模块
不同的引擎不被不同的特点,需要根据实际的需求来选择最合适的
SQL全称是接收化查询语句,在关系型数据库中是通用的
查看支持的引擎
show engines;
创建表指定引擎
create table tablename (字段 类型) engine =引擎类型;
简单的增删改查 CRUD
#插入数据
insert into tablename values(v1,v2,...) #该方式必须保证插入的数据格式与表格字段一一对应
insert into tablename(字段1,字段2) values(v1,v2) #该方式必须保证插入的数据个数与指定的字段一一对应
insert into tablename values(v1,v2,...),(v1,v2,...) #插入多条数据
#查询
select * from tablename #表示查询所有记录
select * from tablename wherer 条件
#更新
update tablename set 字段名称=新的值,字段2=新的值 #修改所有记录
update tablename set 字段1=值,字段2=值 where 条件
#删除
delete from tablename #删除所有记录
delete from tablename where 条件 #删除满足条件的记录
#补充:
#修改数据库字符编码
alter database databasename charset utf8
#查看当前库
select database();
符号必须是英文,可以插入多条,中文乱码需要在创建库的时候指定编码,无法结束是因为缺少引号
3. 创建表的完整写法
create table 表名称(字段名称 字段类型[(长度整数) 约束] charset utf8
4. mysql中的数据类型
1. 整数
tinyint 1个字节 无符号8bit 最大255 有符号7个bit 127
smallint 2个字节
mefiumint 3个字节
int 4个字节 常用,如果数据超过10位使用bigint
bigint 8个字节 大于10位用(手机号)
注意:
-
默认情况整数是有符号的
设置为无符号模式 unsigned
alter table t2 modify age tinyint unsigned;
create table t2(age tinyint unsigned)
-
mysql5.6默认是非严格模式没如果数据超出范围会取最大值
查看当前的sql模式:
select @@ sql_mode @表示全局变量 @@ 表示会话级(局部)
临时设置sql_mode
set @@sql_mode='xxxx'
直接修改配置文件:
[mysqld]
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
指定长度
int(10) 如果你的数据不足10位,会自动用0来填充(需要添加zerofill这个约束 对于整数和小数而言,都是用控制显示填充的最小长度
2.浮点型
两种不精确的小数
float 可以精确到大约5位
double 比float更精确
如果对精确度要求比较高,需要使用decimal类型
decimal需要制定位数如下:位数不包括小数点
decimal(65,30) 总位数65,小数位数30
3.字符串
char 定长字符串
carchar 可变长字符串
char(10) 存储固定占用10个字符长度
优点:读取速度快与varchar
缺点:浪费磁盘空间
varchar(10) 存几个字符在加一个字符长度
优点:节省空间
缺点:速度慢于char类型
如果字符长度不大,建议使用char类型.反之则选择varchar
char最大范围255
varchar最大65535
如果不够就采用text,.最大可以存储2的32次方
text
具有编码的大字符串
blob
没有编码的大数据,可以用来存储多媒体数据,视频 音频,一般不会这样存储,会建立一个文件服务器,数据库只存储文件的地址
mysql会自动将字符串后面的空格删掉,所以数据在存储前应该先把两端空格处理掉
4.枚举和集合
枚举就是提前规定一个范围 你的值只能是其中之一 多选一
集合就是提前规定一个范围 你的值可以是其中的多个 多选多
集合在插入数据时,多个值之间用逗号隔开,但他们必须包含在同一个字符串内
5.日期和时间
year
date
time
datetime
datestamp
year date time都可以用字符串或者数字两种方式输入值;datetime和datestamp只能用字符串输入值
这些类型年费可以是两位数,00-69翻译为2000-2069,70-99翻译为1970-1999
时间相关的函数和常量
CURRENT_TIME 获取当前时间
now() 获取当前时间