一.字符编码和配置文件

1.为了统一编码格式,防止乱码,需要在配置文件中进行编码配置

2.步骤:

  • 1.复制原有的配置文件:my-default.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
    user='root'
    password=666
    default-character-set=utf8
    
  • 4.如果想免密登录的话,在上述配置文件中的mysql下面加上用户名和密码即可

3.小贴士:查看mysql信息的指令:\c

二:存储引擎

1.Innodb:MYSQL5.5版本之后默认的存储引擎
支持事务 行锁 外键 数据更加的安全
创建表会生成2个文件 表结构文件和表数据文件

2.MyIsam:MYSQL5.5版本之前默认的存储引擎
数据安全上不如Innodb可靠,但是查询速度上更快
创建表会生成3个文件 表结构文件 表数据文件 表索引文件

3.memory:内存引擎
临时数据存储
创建表只会生成一个文件 表结构文件

blackhole:黑洞
创建表只会生成一个文件 表结构文件

三:创建表的完整语法

1.完整语法

create table 表名(

​ 字段名1 字段类型(数字) 约束条件,

​ 字段名2 字段类型(数字) 约束条件,

​ 字段名3 字段类型(数字) 约束条件

)engine=存储引擎;

2.条件

​ 1.字段名和字段类型是必须的(至少写一个)
​ 2.数字跟约束条件是可选的(可有可无)
​ 3.约束条件可以写多个 空格隔开即可
​ 4.最后一个字段的结尾千万不能加逗号

四:字段类型

1.整型

1.分类:

  • tinyint 1bytes
  • smallint 2bytes
  • int 4bytes
  • bigint 8bytes

2.特点:上述所有的整型类型默认都会带有负号

3.自动移除负号:unsigned

  • create table t7(id tinyint unsigned);

4.插入的数据值超出了数据类型的范围 不应该让其插入并自动修改 没有意义 数据库应该直接报错

  • 方法1:命令临时修改

    • set session sql_mode=‘strict_trans_tables’ 当前客户端操作界面有效
  • 方法2:
    • set global sql_mode=‘STRICT_TRANS_TABLES’ 服务端不重启永久有效
  • 方法3:配置文件永久修改
    • [mysqld]
      sql_mode=‘STRICT_TRANS_TABLES’
2.浮点型

1.分类:

  • 1.float
  • double
  • decimal

2.精确度:float<double<decimal

3.使用方式

  • float(255,30) # 第一个数表示总共多少位 第二个数表示小数占多少位
  • double(255,30)
  • decimal(255,30)
3.字符类型

1.分类:

  • 1.char 定长
  • 2.varchar 变长

2.特点:

  • char(4) 最大只能存储四个字符 如果超过范围则直接报错 如果不超出范围 则用空格填充至四个字符
  • 默认情况下char在存储的时候针对没有满足固定位数的字符会自动填充空格 然后在读取的时候又会自动将填充的空格移除 如果想取消该机制
  • sql_mode=‘strict_trans_tables,pad_char_to_full_length’;
  • sql_global=‘strict_trans_tables,pad_char_to_full_length’;
  • varchar(4) 最大只能存储四个字符 如果超过范围则直接报错 如果不超出范围 则有几位就存几位

3.验证两者的区别:

  • create table t11(id int, name char(4));
  • create table t12(id int, name varchar(4));
  • 1.结果验证 超出范围两者都会报错
  • 2.验证定长和变长特性
    char_length() # 统计字段数据的长度

4.char和varchar对比

  • char
    整存整取 速度快 浪费存储空间
  • varchar
    节省存储空间 存取数据的速度慢于char
4.数字的含义
  • 1.数字大部分情况下都是用来限制字段的存储长度 但是整型除外!!! 不是用来限制存储的长度 而是展示的长度

    • create table t13(id int(3));
    • create table t14(id int(3) zerofill);
  • 2.总结
    • 以后涉及到整型字段的定义 类型后面不需要加括号写数字 除非有业务需求必须固定位数
5.枚举
  • 枚举 enum
    多选一
    eg:性别(男 女 其他)

    create table t15(
    id int,
    name varchar(32),
    gender enum(‘male’,‘female’,‘others’)
    );

  • 集合 set
    多选多(包含多选一)
    eg:爱好(唱 跳 rap)
    create table t16(
    id int,
    name varchar(32),
    hobbies set(‘read’,‘run’,‘music’,‘rap’)
    );

6.日期类型

1.分类

  • date 年月日
  • datetime 年月日时分秒
  • time 时分秒
  • year 年份

2.练习

create table t17(id int,name varchar(32),birth date,reg_time datetime,study_time time,join_time year
);insert into t17 values(1,'jason','2022-11-11','2000-11-11 11:11:11','11:11:11','1995');
7.字段约束条件

1.两种添加数据的方式

  • insert into 表名 vlaues() # 默认按照创建表的字段顺序添加
  • insert into 表名(字段) vlaues() # 可以自定义字段顺序

2.几种常见的约束条件

1.unsigned   无负号id int unsigned
2.zerofill  零填充id int zerofill
3.not null  非空name varchar(32) not null
4.default   默认值name varchar(32) default 'jason'
5.unique    唯一值id int unique   单列唯一host varchar(32)
port int
unique(host,port)  联合唯一

mysql数据库之字段类型相关推荐

  1. MySQL数据库中有字段类型是日期,时间的插入语句处理

    MySQL数据库中有字段类型是日期,时间的插入语句处理 什么是时间戳? TIMESTAMP是一种类型,具体的值:19990717080000 CURRENT_TIMESTAMP是什么意思? on up ...

  2. Mysql数据库的字段类型:

    数据库的数据类型和字段属性: 1.数值 ①tinyint     十分小的数据          1个字节 ②smallint    较小的数据            2个字节 ③mediumint ...

  3. linux下查看mysql数据库的字段类型_系统运维|[小白技巧]如何在Linux上检查MySQL数据表的存储引擎类型...

    提问: 我想要知道我的MySQL数据库是MyISAM还是Innodb类型.我该如何检查MySQL数据库表的类型? MySQl主要使用两种存储引擎:MyISAM 和 Innodb.MyISAM是非事务的 ...

  4. MySQL数据库中字段类型与设计原则

    字段类型的设计和选择 1.单表字段不宜过多 建议最多30个以内 字段越多,会导致性能下降,并且增加开发难度 2.使用小而简单的合适数据类型 a.字符串类型 固定长度使用char,非定长使用varcha ...

  5. Mysql数据库的字段类型

    一.主要分了三大类 1. 数值类型:整数类型.浮点数类型和定点数类型 2. 日期/时间类型 3. 字符串类型:文本字符串.二进制字符串 类型 存储 对应Java类型 范围(有符号) 无符号 数值 整数 ...

  6. mysql数据库常用字段类型_快速了解MySQL数据库常用字段类型

    数字列类型 int.bigint.smallint.tinyint 数字列类型用于储存各种数字数据,如价格.年龄或者数量.数字列类型主要分为两种:整数型和浮点型.所有的数字列类型都允许有两个选 项:U ...

  7. 数据库mysql表常见字段大小_常用的数据库的字段类型及大小

    Oracle/MSSQL/Mysql 常用数据库的字段类型及大小 ORACLE的数据类型 常用的数据库字段类型如下: 字段类型 中文说明 限制条件 其它说明 CHAR 固定长度字符串 最大长度2000 ...

  8. Oracle/MSSQL/Mysql 常用数据库的字段类型及大小

    Oracle/MSSQL/Mysql 常用数据库的字段类型及大小 ORACLE的数据类型 常用的数据库字段类型如下:   字段类型   中文说明   限制条件   其它说明   CHAR  固定长度字 ...

  9. mysql java datetime_Java向mysql数据库插入datetime类型数据实例(精)

    在Mysql数据库中日期跟时间有两种: 1.date类型,date类型也就是我们常见的储存yyyy-MM-dd类型的日期,它不能储存时间,也就是只能储存日期, 2.dateitme就是可以储存日期同时 ...

最新文章

  1. HDU2665 求区间第K大 主席树
  2. 刪數 (Standard IO)
  3. 使用JavaScriptSerializer进行序列化日期类型应该注意时区的问题
  4. 帝国cms录入表单模板php,帝国cms7.5在线表单提交制作教程
  5. 史上最全的技术手册整理总结,编程小白都从这篇文章迅速成为大牛
  6. 太想成功了--成功之前,你是否养成了这些习惯?
  7. Java7并发编程指南——第四章:线程执行器
  8. HDU-一个人的旅行(最短路)
  9. crsctl stop crs 与 crsctl stop resources的区别
  10. 使用回溯算法结合递归树+备忘录解决01背包问题
  11. (Python语法篇)1.Python简介
  12. yum安装docker指定版本
  13. 非参数中的秩和检验到底怎么做的?
  14. 使用APICloud AVM多端组件快速实现app中的搜索功能
  15. 网络文章(摘录)_顺序
  16. zblog php 安装,Zblog安装教程 zblogphp程序特色和环境要求_徐果萍博客
  17. Windows debugging tools
  18. 如何优雅地在Stack OverFlow 上进行编程问题搜索
  19. 18位身份证号码编码标准
  20. JAVA语法基础之运算符

热门文章

  1. [RK3568 Android11] 开发之开发者选项中添加USB OTG模式切换(一)
  2. 如何使用BeaconEye监控CobaltStrike的Beacon
  3. 拆解诺基亚E71,解决莫名其妙重启的问题,以及GPS无法搜星的问题
  4. 【Datawhale】之LeetCode分类练习(分治)
  5. Dubbo从入门到实战
  6. cmd命令创建文件文件夹
  7. 重庆java培训机构排名榜
  8. Focus事件与blur事件
  9. csp2015-03
  10. UEditor上传漏洞修复