ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

5.4python笔记

2022-05-30 00:34:14  阅读:165  来源: 互联网

标签:11 varchar python create 笔记 int table 5.4 id


MySQL字符编码配置及字段

字符编码与配置文件

#查看MySQL默认字符编码
 如果是5.x系列,显示的编码又多种>>>:latin1、gbk
 如果是8.x系列,显示的统一是>>>:utf8mb4(utf8优化版本,支持存储表情)

统一字符编码

# MySQL安装列表中找到配置文件
my-default.ini  # 配置文件

# 更改配置文件
步骤1:拷贝一份该配置文件并修改名称为my.ini
步骤2:清空my.ini文件内的内容
步骤3:添加固定的配置信息如下:
    [mysqld]
    character-set-server=utf8
    collation-server=utf8_general_ci
    [client]
    default-character-set=utf8
    [mysql]
    default-character-set=utf8
步骤4:保存并重启服务端即可生效
    net stop mysql  # 关闭服务端
    net start mysql  # 打开服务端

存储引擎

可以理解为处理数据的不同方式,不同的存储引擎存储的特点各不相同;
#查看存储引擎
	show engines;
#需要了解的引擎
MyISAM:
	5.1之前版本MySQL默认的存储引擎;

	特点:存取数据速度快,但功能很少,安全性较低;

InnoDB:
	5.1之后版本MySQL”默认“的存储引擎;

	特点:有诸多功能,安全性较高,但存取速度没有MyISAM快;

BlackHole:
	任何写入的数据都会立刻消失(类似于垃圾回收站);

Memory:
	以内存作为数据存储地,速度快但是断电立刻丢失;

创建表的完整语法

create table 表名(
    	字段名1 字段类型(数字) 约束条件,
    	字段名2 字段类型(数字) 约束条件,
            字段名3 字段类型(数字) 约束条件
    );
    '''
    1.字段名和字段类型是必须的
    2.数字和约束条件是可选的
    3.约束条件可以写多个 空格隔开即可
    	字段名1 字段类型(数字) 约束条件1 约束条件2 约束条件3
    4.最后一行字段结尾不能加逗号
    	极其容易被忽略!!!
    '''

字段类型之整型:

tinyint				1bytes		 小整数值
smallint			2bytes  	 大整数值
int				4bytes			大整数值
bigint				8bytes		极大整数值

浮点型

float    4个字节  单精度浮点数值
double   8个字节  双精度浮点数值
decimal  对DECIMAL(M,D),如果M>D,为M+2字节否则为D+2字节  精确小数值
上述浮点型从上往下精确度越来越高
    float(255,30)   总共255位 小数位占30位
    double(255,30)  总共255位 小数位占30位
    decimal(65,30)  总共65位 小数位占30位

对于声明语法 DECIMAL(M,D) ,自变量的值范围如下:

M是最大位数(精度),范围是1到65。可不指定,默认值是10。

D是小数点右边的位数(小数位)。范围是0到30,并且不能大于M,可不指定,默认值是0。

例如字段 salary DECIMAL(5,2),能够存储具有五位数字和两位小数的任何值,因此可以存储在salary列中
的值的范围是从-999.99到999.99。

字符类型

	
    char 和 varchar 是最常用到的。char 类型是定长的,MySQL 总是根据定义的字符串长度分配足够的空间
当保存 char 值时,在它们的右边填充空格以达到指定的长度,当检索到 char 值时,尾部的空格被删除掉。varchar 类型用于存储可变长字符串,存储时,如果字符没有达到定义的位数,也不会在后面补空格。如果字符超出了定义的位数,会报错。

    char(M) 与 varchar(M) 中的的 M 表示保存的最大字符数,单个字母、数字、中文等都是占用一个字符。
# 工作中使用char还是varchar?
	char
    整存整取,速度快;但会造成一定的资源浪费;
    varchar
    节省存储空间;取数据速度没有char块且不知道数据的精确长度
    '''
    varchar在存数据的时候会生成一个1bytes的报头 记录数据长度
    varchar在取数据的时候先会读取1bytes的报头 从中获取真实数据长度
 	  1bytesjason1bytes+kevin1bytes+tony
    '''
    使用场景>>>:
        针对统一中国人的姓名,应该采取那个类型?
        >>> varchar
        规模较小,数据量相对固定的字典?
        >>> char

字段类型括号内数字的含义

(1)字段类型括号内的数字大部分情况下是用来限制存储的长度;
(2)但是在整型中并不是用来限制长度,而是用来控制展示长度;
	
 # 验证int类型括号内数字的作用
	create table t12(id int(3));
    insert into t12 values(1111);  # 不会报错
    select * from t12;  # id 1111
    
    create table t13(id int(3) zerofill);  # 使用约束条件zerofill>>>:数据不够用0填充
    insert into t13 values(1),(1111);
    select * from t13;  # id 001 1111

字段类型之枚举与集合

#枚举:
	​ 多选一
    作用:给某字段设置指定选项,针对某字段只能添加指定的选项
create table t14(gender enum('male','female','others'));
insert into t14 values('jason');  # 报错,Data truncated for column 'gender' at row 1

#集合:
	​ 多选多(也可多选一)
    作用:给某字段设置多个可选选项,同时可以选取多个或一个
create table t15(name varchar(32),
                 hobby set('篮球','足球','排球'));
insert into t15 values('jason','篮球,排球');  # 给某字段添加多个值

日期类型

date						年月日
datetime					年月日时分秒
time						时分秒
year						年
# 创建带日期字段的表
create table t16(
	id int,
  	name varchar(32),
  	reg_time datetime,
  	birth date,
  	study_time time,
  	join_time year
);
# 针对时间数据一般都是通过代码自动获取并添加,我们可以手动模拟
insert into t16 values(1,'jason','2000-11-11','2002-01-21','11:11:11','2015');
#  1 | jason | 2000-11-11 00:00:00 | 2002-01-21 | 11:11:11   |      2015

约束条件

#无需正负号
	unsigned
#零填充
	zerofill
#非空
	not null 
#默认值
	default
	create table t19(id int,name varchar(32) default '1111');
	插入数据时该字段给了值,就用输入的值,没给值则使用默认值。
#唯一值
	unique
create table t1(
    id int unique,
);
该字段的值是唯一的,不可重复。

'''多列唯一:多个字段下对应的数据组合到一起的结果不能重复 是唯一的'''
create table t1(
    id int,
    name varchar(32),
    unique(id,name)
  );
id和name组合在一起的值唯一。
(1,'张三')(1,'李四') (2,'张三')可以
#主键
primary key(非空且唯一)
create table t1(
    id int primary key,
    name varchar(32)
  );
将id字段设置为主键,那么id不能为空且值不能重复。
#自增:
auto_increment 自动增加
专门配合主键一起使用 用户以后在添加数据的时候就不需要自己记忆主键值
create table t1(
    id int primary key auto_increment,
    name varchar(32)
  );
之后我们添加数据就不需要写id的值,它会自动增长。

标签:11,varchar,python,create,笔记,int,table,5.4,id
来源: https://www.cnblogs.com/zq0408/p/16325413.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有