一、字符编码与配置文件

输入\s 可以看到一些信息

mysql表新加字段_数据

如果想要永久修改编码配置,可以在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%';来查看

mysql表新加字段_mysql表新加字段_02

mysqld 服务端

client 第三方客户端

mysql 自己写的客户端

utf8mb4 可以保存表情包

二、数据库存储引擎

show engines 查看存储引擎

mysql表新加字段_mysql_03

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_length()统计某个字段存储的字符长度

pps:因为char是固定长,切起来好切,固定刀,所以速度快

varchar是非固定长,存数据是会添加一个报头在数据前,切的时候先切到报头获取真实长度,所以速度较char慢

# 代码实操
# 先建一个表吧,就用varchar
create table mybiao4 (id int ,name varchar(32));
______________________________________
# 添加数据进去
insert into mybiao4 values(1, 'jason');
_____________________________________
# 查看下数据
select * from mybiao4;
_____________________________________
# 查看某个字段数据字符长度
select char_length(字段名) from 表名;

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.字段类型——日期


mysql表新加字段_数据_04

这个今天只是了解下,今天录入的形式还是按字符形式录入,以后数据库会有模板来搞