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位用(手机号)

注意:

  1. 默认情况整数是有符号的

    设置为无符号模式 unsigned

    alter table t2 modify age tinyint unsigned;

    create table t2(age tinyint unsigned)

  2. 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() 获取当前时间

posted @ 2019-07-11 16:01  萨萌萌  阅读(162)  评论(0编辑  收藏  举报