Mysql 整数类型的字段的属性设置及常用的函数
数据类型
二、MySQL支持的数据类型
数值类型、日期类型、字符串类型
1.数值类型
1)整数类型
tinyint、smallint、mediumint、int和bigint
2)zerofill属性
配合int(数字)来用,表示显示的时候一个显示宽度
3)主键
主键可以唯一标识某条记录的一个字段或者多个字段
create table 表名(字段名称 类型 primary key,....);
create table 表名(字段名称1 类型,....,primary key(字段名称1));
删除:
alter table 表名 drop primary key;
注意:如果字段具有auto_increment属性必须先删除auto_increment属性
4)小数的表示
①浮点数
单精度(float):单精度的浮点数精确到大约7位小数位(整数部分加上小数部分的位数)
双精度精度(double):双精度的浮点数精确到大约15位小数位(整数部分加上小数部分的位数)
②定点数
decimal(7,2)
2.日期类型
DATETIME是常用的日期类型
create table t1(dt datetime);
insert into t1 values(now());
3.字符串类型
CHAR(M) M为0~255之间的整数,表示可以存M个字符(不管是中文还是英文字符总共个数是M个就OK)
VARCHAR(M) M为0~65535之间的整数,表示可以存M个字符,具体M最大多大和字符集有密切关系
注意varchar列的最大的存储空间是65,532字节,如果是英文字符集(一个英文字符占1个字节)就是可以放65532个英文字符
自己在实际开发的过程中M设置的值,应该从自己的实际需求去考虑,而不是最大能存多少个字符,因为超过最大能设定的字符数会自动报错或者警告!
TINYTEXT 允许长度0~255字符
TEXT 允许长度0~65535字符
MEDIUMTEXT 允许长度0~16,777,215字符
LONGTEXT 允许长度0~4,294,967,295字符
注意点:
char与varchar列的区别
char类型的字符所占的存储空间是固定,不管你用的时候存了几个字符,它所占的空间都是你当初设定的字符空间
比如char(255) 哪怕你存的只是1个a,那么它也是站255个字符长度的空间!
varchar列所占的存储空间是可变的,根据存入的字符长度来确定实际占多少的空间!
varchar(255) 实际所占的空间就是实际字符的长度+1个字节!
varchar(超过255) 实际所占的空间就是实际字符的长度+2个字节!
更节省空间!
在检索时,char列删除尾部的空格,而varchar则保留这些空格。
选择:由于char是固定长度,所以它的处理速度比varchar快,但是缺点是浪费存储空间。所以对于那些长度变化不大的数据可以选择此列
enum类型
create table t1(flag enum('a','b','c','d'));
insert into t1 values('a'),('a'),('f');
set类型
里面可以包含0~64个成员
create table t1(flag set('a','b','c','d'));
insert into t1 values('a,b'),('a,d,a');
字段属性
1.UNSIGNED 无符号
2.auto_increment
自增(默认从1开始),用于整数类型和带索引的字段,比如:配合主键使用(其他类型的索引我们以后再说)
3.主键:
主键可以唯一标识某条记录的一个字段或者多个字段
一个字段设为主键
多个字段组合设为主键
注意点:
1)主键最好不要设置在某个与实际信息相关的字段上,主键的作用应该明确且单一
2)主键最好设置在整数类型的字段上面(处理或查询起来效率较高)
3)主键必须不同,并且不能为null
4)既然主键必须不同所以我们会配合 auto_increment属性
5)一个表只能有一个主键,最好只设置在一个字段上
6)根据主键的值来查询记录时可以获得极快的速度(因为设置了主键的字段已经创建了索引)!
设置方法:
在创建表的时候
primary key(字段)
primary key(字段1,字段2)
也可以直接写在需要创建主键的字段后面
如果忘了设置可以
alter table 表名 add primary key(字段名);
删除:
alter table 表名 drop primary key;
注意:如果字段具有auto_increment属性必须先删除auto_increment属性
4.规定字段的值是否可以为null not null即不可以为null,该属性也可用于其他类型的字段
5.设置默认值 default 值,该属性也可用于其他类型的字段
四、MySQL中的常见运算符
MySQL提供了一些运算符号供我们在SQL语句中使用,比如我们需要对SQL语句中的某个值,或者某个字段做运算操作的时候,就可以使用这些运算符
五、常用函数
函数用于SQL语句中
1.字符串函数
CONCAT(S1,S2,...Sn) 连接S1,S2,...Sn为一个字符串
INSERT(str,x,y,instr) 将字符串str从第x位置开始,y个字符长的字符串换位字符串instr
LOWER(str) 将字符串str中所有字符变为小写
UPPER(str) 将字符串str中所有字符变为大写
LEFT(str,x) 返回字符串str最右边的x个字符
RIGHT(str,x) 返回字符串str最右边的x个字符
LPAD(str,n,pad) 用字符串pad对str最左边进行填充,直到长度为n个字符长度
RPAD(str,n,pad) 用字符串pad对str最右边进行填充,直到长度为n个字符长度
LTRIM(str) 去掉字符串str左侧的空格
RTRIM(str) 去掉字符串str行尾的空格
REPEAT(str,x) 返回str重复x次的结果
REPLACE(str,a,b) 用字符串b替换字符串str中所有出现的字符串a
STRCMP(s1,s2) 比较字符串s1和s2
TRIM(str) 去掉字符串行尾和行头的空格
SUBSTRING(str,x,y) 返回从字符串str x位置起y个字符长度的字符串
LENGTH(str) 返回字符串长度
2.数值函数
ABS(x) 返回x的绝对值
CEIL(x) 返回大于x的最小整数值
FLOOR(x) 返回小于x的最大整数值
MOD(x,y) 返回x/y的模
RAND() 返回0-1内的随机值
ROUND(x,y) 返回参数x的四舍五入的有y位小数的值
TRUNCATE(x,y) 返回数字x截断为y位小数的结果
3.日期和时间函数
CURDATE() 返回当前日期
CURTIME() 返回当前时间
NOW() 返回当前的日期和时间
UNIX_TIMESTAMP(date) 返回日期date的UNIX时间戳
FROM_UNIXTIME() 返回UNIX时间戳的日期值
WEEK(date) 返回日期date为一年中的第几周
YEAR(date) 返回日期date的年份
HOUR(time) 返回time的小时值
MINUTE(time) 返回time的分钟值
MONTHNAME(date) 返回date的月份名
DATE_FORMAT(date,fmt) 返回按字符串fmt格式化日期date值
DATE_ADD(add,INTERVAL expr type) 返回一个日期或时间值加上一个时间间隔的时间值
DATEDIFF(expr,expr2) 返回起始时间expr和结束时间expr2之间的天数
4.流程函数
1)IF(value,t,f) 如果value是真,返回t,否则返回f
select if(field1>1000,'高薪','低薪');
2)IFNULL(value1,value2) 如果value1不为null,返回value1,否则value1该是什么还是什么
select ifnull(name,'无名');
3)CASE WHEN [value1] THEN [result1]...ELSE[default]END 如果value1是真,返回result1,否则返回default
select case when 100>10 then '真' else '假' end;
和if语句比较像
4)CASE [expr] WHEN [value1] THEN[result1]...ELSE[default]END 如果expr等于value1,返回result1,否则返回default
select case 1 when 1 then '一' when 2 then '二' when 3 then '三' else '未知数字'end;
和switch语句比较像
5.其他常用函数
DATABASE() 返回当前数据库名
VERSION() 返回当前数据库版本
USER() 返回当前登录用户名
INET_ATON(IP) 返回IP地址的数字表示
INET_NTOA(num) 返回数字代表的IP地址
PASSWORD(str) 返回字符串str的加密版本
MD5() 返回字符串str的MD5值
Mysql 整数类型的字段的属性设置及常用的函数的更多相关文章
- Mysql - 整数类型的存储字节数和范围
MySQL 整数类型的存储字节数和范围 type 存储字节数 有符号最小值 无符号最小值 有符号最大值 无符号最大值 TINYINT 1 -128 0 127 255 SMALLINT 2 -3276 ...
- 学习计划 mysql 整数类型后面的数字,是什么意思?
Mysql中定义整数类型的数字,是指定这个字段的长度么? 比如 INT(10) 10代表10个字节么?还是只能存储10为长度的数字内容? 今天本来想学习下字符类型,一下子发现了这个,感觉好有趣. -- ...
- MySQL整数类型说明 int(11) vs int(20)
整数类型后面跟的是显示的宽度.M指示最大显示宽度.最大有效显示宽度是255.显示宽度与存储大小或类型包含的值的范围无关. 实践出真知: mysql> create table test2 ( a ...
- mysql 整数类型 数值类型 tinyint
1.整数类型 整数类型:TINYINT SMALLINT MEDIUMINT INT BIGINT 作用:存储年龄,等级,id,各种号码等 ============================== ...
- mysql整数类型
数值类型 1.整数类型 整型类型的后面的宽度,不是存储宽度,是显示宽度,不够位数用0添加,够位数使用原数据 整数类型:TINYINT SMALLINT MEDIUMINT INT BIGINT 作用: ...
- mysql整数类型int后面的长度有什么意义
int 的 SQL-92 同义字为 integer.SQL-92 是数据库的一个标准. int类型的存储大小为4个字节 unsigned(无符号) int 存储范围是 2^4*8 int(M) 中的M ...
- 如何为一个类型为Color的属性设置默认值
最近在研究GDI+的时候,用winform来写自定义控件遇到需要为控件的属性设置默认值,但这个属性的类型是System.Drawing.Color.本文只是总结一下各种设置的方法. Example [ ...
- MySQL枚举类型enum字段在插入不在指定范围的值时, 是否是"插入了enum的第一个值"?
刚刚在看<<深入浅出MySQL>>一书的"ENUM类型"一节, 以下面的代码举例, 得出结论: "还可以看出对于不在ENUM指定范围内的值时, 并 ...
- DevExpress的TreeList的常用属性设置以及常用事件
场景 Winform控件-DevExpress18下载安装注册以及在VS中使用: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/1 ...
随机推荐
- ospf的路由更新和撤销总结
首先ospf 的报文有:hello报文,主要作用ospf 邻居建立及维护.dd报文,主要作用主从选举,序列号主从的确认,mtu的协商(可选).lsr 报文,主要作用向邻居请求lsa.lsu报文,主要作 ...
- 浅入深出ETCD之【raft原理】
前言 这次我们来说说,有关于etcd原理的一些事情.之前我们已经了解到了etcd是一个分布式的k-v存储,那么它究竟是如何保证数据是如何复制到每个节点上面去的呢?又是如何保证在网络分区的情况下能正常工 ...
- 查找算法(1)--Sequential search--顺序查找
1. 顺序查找 (1)说明 顺序查找适合于存储结构为顺序存储或链接存储的线性表. (2)基本思想 顺序查找也称为线形查找,属于无序查找算法.从数据结构线形表的一端开始,顺序扫描,依次将扫描到的 ...
- [整理]如何撤销远程的git提交?
确保你在你想要撤销的分支上. 第一步,本地使用 get reset --hard ,切换到特定的commit. 第二部,使用 --force推送到远程分支. git reset --hard cedc ...
- tomcat安全基线
为了符合tomcat安全基线,需要做一下加固: 1.管理用户的密码加密:<摘要算法加密tomcat登录密码> 管理用户在conf/tomcat-users.xml中配置,密码一般是明文形式 ...
- Redis常用运维命令
1.启动命令 按照我其他博客的按照方法,启动命令为/etc/init.d/redis_6379 start 2.查看内存统计信息 [root@bogon ~]# redis-cli > info ...
- dockerfile的常用基础镜像——java镜像
1. java镜像使用Java镜像的最直接方法是把它作为基础镜像或运行时环境. 1.1 镜像tagjava:<version>如果你不确定你需要什么,那么请用这个tag.它可以作为一个运行 ...
- ufw防火墙规则不生效
正式站系统是Ubuntu 16.04.6 一.今天一个项目有百度爬出,在nginx中封掉还在一直爬取,都403还不停爬取 二.在uwf封掉爬出ip,想封掉80端口没有用,然后封掉整个网段还是没有用,尴 ...
- 使用Mysql中的concat函数或正则匹配来快速批量生成用于执行的sql语句
背景介绍 今天需要给一张表里面补数据,需要按照行的维度进行update,如果是个别数据那么直接写update语句就可以了,但是场景要求的是将整表的数据进行update,要实现这个需求就不能只靠蛮力了, ...
- Vue(七)整合vue-router&Vuex&Axios
整合vue-router&Vuex 先创建工程 vue create vue-axios 然后选择 勾选 回车,出现是否使用history mode?选择y,代表URL地址里面不会出现#.选择 ...