mysql创建表text_MySQL基础-2
配置⽂件的使⽤
⼤家发现每次进⼊mysql都需要进⾏登录操作,⽽且服务器的编码为Latin1,客户端的编码为GBK,这样就很容易造成乱码,所以我们就需要进⾏⼀个统⼀
在根⽬录(程序安装的路径)下创建⼀个配置⽂件,名称为my.ini
内容为cfg格式,即section+option
[mysqld] 分区为服务器端配置,修改后需要重启服务器
[mysql] 分区为客户端配置,修改后需要进⾏重连
统⼀编码⽅式配置⽂件:
# 客户端配置
[client]
user = root
password = 你的密码
default-character-set = utf8
# 服务器端配置 需要重启服务器
[mysqld]
character-set-server = utf8
表的分类——数据库引擎
数据库引擎是数据库最核⼼的部分,地位相当于⼈类的⼼脏,它是负责存储数据的模块
可以通过 show engines; 查看引擎
可以看到,mysql⾥⾯有好⼏个引擎,但到底那个好呢?
这个是没有定论的,每个引擎有不同的作⽤,我们要根据实际需求来选择合适的引擎
Mysql数据库默认引擎为InnoDB
创建表指定引擎
create table 名称(字段 类型 ) engine = XXXX;
简单的表的增删改查(CRUD)
# 插⼊数据
insert into 表名 values(数据1,数据2,……); # 该⽅式必须保证插⼊的数据个数和表格字段数量⼀样
# 选择部分字段插⼊
insert into 表名(字段名称1,字段名称2) values(数据1,数据2); # 该⽅式必须保证插⼊的数据个数与指定的字段数量⼀样# 同时插⼊多个记录
insert into 表名(字段名称1,字段名称2) values(数据1,数据2),(数据1,数据2);
# 查询所有记录
select * from 表名;
# 查询符合条件的字段
select 字段 from 表名 where 条件;
# 更新所有的记录
uptade 表名 set 字段1=新的值1,字段2=新的值2;
# 更新符合条件的记录
update 表名 set 字段1=新的值1,字段2=新的值2 where 条件;
# 删除所有记录
delete from 表名;
# 删除满⾜条件的记录
delete from 表名 where 条件;
创建表的完整写法
create table 表名(字段名称1 字段类型[(长度) 约束],字段名称1 字段类型[(长度) 约束]……) charset utf8;
Mysql中的数据类型
数字类型
注意:
整型:
默认情况下为有符号的,需要设置为⽆符号要在增加unsigned约束
alter table 表名 modify 字段 数据类型 unsigned;
create table 表名(字段 数据类型 unsigned)
mysql 5.6 版本在默认情况下,为⾮加严模式,如果数据类型超过范围,就会⾃动取最⼤值,这样就不能保证数据的安全,所以可以在配置中设置为加严模式,或者临时设置sql_mode,但退出后⼜会恢复⾮加严模式
# 查看当前的sql模式
select @@sql_model # @ 表⽰全局变量 @@ 表⽰局部变量
+---------------------+
| @@sql_mode |
+---------------------+
| STRICT_TRANS_TABLES | # 当前为⾮加严模式
+---------------------+
# 1.临时设置
set @@sql_mode = " STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION"
select @@sql_model
+--------------------------------------------+
| @@sql_mode |
+--------------------------------------------+
| STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION | # 加严模式
+--------------------------------------------+
varchar2最大长度# 2.修改配置,永久有效
[mysqld]
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
指定长度
⽐如int(5),表⽰数据最⼩长度为5,如果数据不⾜5位,默认⽤空填充,如果要⽤0填充,需要增加zerofill约束
create table test(x int(5) zerofill);
insert into test values(2);
insert into test values(201780); # 证明5并不是限制最⼤长度的
select *from test;
+--------+
| x |
+--------+
| 201780 |
+--------+
浮点型
数据类型(M,D) 表⽰整数位最⼤长度为M-D,超出则会报错,⼩数位最⼤长度为D,如果⼩数位超过了,则会⾃动进⾏四舍五⼊create table test(x float(5,3));
insert into test values(2.56789);
Query OK, 1 row affected (0.21 sec)
select *from test;
+-------+
| x |
+-------+
| 2.568 |
+-------+
insert into test values(100); # 报错,最⼤只能为99.999
ERROR 1264 (22003): Out of range value for column 'x' at row 1
float类型 不需要指定位数,最⼤只能精确到⼩数点后5位
double类型 不需要指定位数,最⼤只能精确到⼩数点后15位
decimal类型 必须指定位数,长度最⼤为65,⼩数点后⾯最长为30
字符串类型
类型
⼤⼩
⽤途
CHAR
0-255字节
定长字符串
VARCHAR
0-65535 字节
变长字符串
TINYBLOB
0-255字节
不超过 255 个字符的⼆进制字符串
TINYTEXT
0-255字节
BLOB
0-65 535字节
⼆进制形式的长⽂本数据
TEXT
0-65 535字节
长⽂本数据
MEDIUMBLOB
0-16 777 215字节
⼆进制形式的中等长度⽂本数据
MEDIUMTEXT
0-16 777 215字节
中等长度⽂本数据
LONGBLOB
0-4 294 967 295字节
⼆进制形式的极⼤⽂本数据
LONGTEXT
0-4 294 967 295字节
极⼤⽂本数据
char
定义时需要指定字符串长度,默认为1,⽐如char(10),表⽰最⼤只能有10个字符,超出长度⾃动取前10个字符,⽽少于10个字符的⾃动在前⾯补⾜空格
优点:读取速度快
缺点:浪费空间
varchar
定义时也需要指定字符串长度,但是和char的区别就是varchar不会⾃动补空格,⽽且varcher最终占⽤的空间为实际内容所占字节数+1,因为需要⼀个bit 存储字符长度
优点:节省空间
存取速度慢⼀些
值
char(4)
存储需求
varcher(4)
存储需求
‘’
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论