一、字符编码与配置文件
输入\s 可以看到一些信息
如果想要永久修改编码配置,可以在mysql的文件夹根目录下自己复制并改名一个my.ini去操作配置文件
[mysqld]
character-set-server=utf8mb4
collation-server=utf8_general_ci
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
[client]
default-character-set=utf8mb4
[mysql]
default-character-set=utf8mb4
# sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
# STRICT_TRANS_TABLES 这个为严格模式,输入数据时如果不符合规范数据库不接收
# 在数据库中可以输入show variables like '%mode%';来查看
mysqld 服务端
client 第三方客户端
mysql 自己写的客户端
utf8mb4 可以保存表情包
二、数据库存储引擎
show engines 查看存储引擎
my isam :
5.5版本之前默认的存储引擎,存取数据的速度快,但是功能较少,安全性较低
innoDB :
5.5之后默认的存储引擎,支持事物(能时光倒流),支持行锁(操作某一行时,别人不能操作),支持外键,存取速度没my isam快,但是安全性较高
memory:
基于内存存储数据,基本不用
blackhole:
黑洞,任何写进入的数据都会立刻被吞没
# 实操
create table mybiao2 (id int) engine=innoDB;
create table mybiao3 (id int) engine=myisam;
create table mybiao4 (id int) engine=blackhole;
______________________________________________
# 创好后可以每个都查看以下,看下是不是引擎改了
show create table mybiao2;
show create table mybiao3;
show create table mybiao4;
__________________________________________
# 然后就可以塞数据进入看看
insert into mybiao2 values(1);
insert into mybiao3 values(1);
insert into mybiao4 values(1);
select * from mybiao2;
select * from mybiao3;
select * from mybiao4; >>># Empty set (0.00 sec)
三、SQL创建表的完整语法
前提:create table 表名(
字段名 字段类型(数字) 约束条件,
字段名 字段类型(数字) 约束条件,
字段名 字段类型(数字) 约束条件
);
1.字段名和字段类型是必须的
2.数字和约束条件是可选的
3.约束条件也可以写多个 空格隔开即可
4.最后一行结尾不能加逗号
1.字段类型——整形
mysql默认自带正负号 可以在创建的时候 整形类型后跟 unsigned避开
整形后也可以加(),不过不是限制长度,只是控制展示长度
TINYINT :如果要存正负,最大到127最小到-128
如果要存全正,最大到255最小到0
INT:只能存十位
BIGINT:能存很多很多很多位
# 代码实操
# 先去改Mysql为严格模式,前面有说,不然存进去的数据如果不符合不会提醒而且会被篡改,就失去意义了
# 随便选一个自己创的库,把库清空最好,然后新建几个表
use myku
———————————————————————————————————————————
create table mybiao (id tinyint);
create table mybiao2 (id int);
create table mybiao3 (id big int);
___________________________________________
# 然后往表里添数据,观察下是否能添
insert into mybiao values(280); >>> # 报错 Out of range value
insert into mybiao2 values(280); # 不报错
2.字段类型——浮点型
创建表的时候可以跟(),括号内两位,前一位是总长,后一位是小数位,一般公司float形式的浮点类型够用了
float :
精确度不够,大概7.8位
double:
精确度15位左右
decimal:
精确度很强
3.字段类型——字符类型
char :
定长 >>> char() 括号内输入字符数,最多可以储存这个数,多了就报错,少了就填充,反正必须固定长度,某种意义上是浪费存储空间的
varchar:
变长 >>> varchar() 括号内输入字符数,最多可以储存这个数,多了就报错,少了不填充,更省存储空间
ps:char_lenght()统计某个字段存储的字符长度
pps:因为char是固定长,切起来好切,固定刀,所以速度快
varchar是非固定长,存数据是会添加一个报头在数据前,切的时候先切到报头获取真实长度,所以速度较char慢
# 代码实操
# 先建一个表吧,就用varchar
create table mybiao4 (id int ,name varchar(32));
______________________________________
# 添加数据进去
insert into mybiao4 values(1, 'jason');
_____________________________________
# 查看下数据
select * from mybiao4;
_____________________________________
# 查看某个字段数据字符长度
select char_lenght(name) from mybiao4;
4.字段类型——枚举与集合
枚举:多选一 enum 先设置好,填充数据时如果不在就报错
集合:多选多 set 先设置好,填充数据时如果有一个不在也报错
# 代码实操
# 创一个新的表
create table mybiao5(id int ,name varchar(16), city enum('beijing','shanghai','changsha'));
create table mybiao6(id int, name varchar(16), hobby set('music','football','basketball'));
————————————————————————————————————————————
# 往表里塞数据,看下行不行
insert into mybiao5 values(1, 'jack', 'beijing'); # OK
insert into mybiao5 values(1, 'jack', 'najing'); # 报错!
insert into mybiao6 values(1,'david', 'music,football');# OK
insert into mybiao6 values(2,'tom','music,baseball');# 报错
5.字段类型——日期
这个今天只是了解下,今天录入的形式还是按字符形式录入,以后数据库会有模板来搞
标签:insert,python,day37,create,id,values,mysql,table,into From: https://www.cnblogs.com/wznn125ml/p/16919791.html