当前位置: 首页 > news >正文

免费手机网站建站平台中国电信备案网站

免费手机网站建站平台,中国电信备案网站,百度收录提交网址,开发公司移交给物业的资料说明数据类型 1.数据类型分类2.数值类型介绍2.1tinyint类型2.2bit类型介绍2.3小数类型介绍2.3.1 float2.3.2decimal 3.字符串类型介绍3.1char3.2varchar面试#xff1a;char和varchar的区别 4.日期和时间类型5.enum和set 1.数据类型分类 2.数值类型介绍 2.1tinyint类型 数值越界测… 数据类型 1.数据类型分类2.数值类型介绍2.1tinyint类型2.2bit类型介绍2.3小数类型介绍2.3.1 float2.3.2decimal 3.字符串类型介绍3.1char3.2varchar面试char和varchar的区别 4.日期和时间类型5.enum和set 1.数据类型分类 2.数值类型介绍 2.1tinyint类型 数值越界测试 说明: 在MySQL中整型可以指定是有符号的和无符号的默认是有符号的。 可以通过UNSIGNED来说明某个字段是无符号的 无符号案例 mysql create table tt2(num tinyint unsigned); mysql insert into tt2 values(-1); -- 无符号范围是 0 - 255 ERROR 1264 (22003): Out of range value for column num at row 1 mysql insert into tt2 values(255); Query OK, 1 row affected (0.02 sec) mysql select * from tt2; ------ | num | ------ | 255 | ------ 1 row in set (0.00 sec)注意 注意尽量不使用unsigned对于int类型可能存放不下的数据int unsigned同样可能存放不下与其如此还不如设计时将int类型提升为bigint类型。 2.2bit类型介绍 基本语法 bit[(M)] : 位字段类型。M表示每个值的位数范围从1到64。如果M被忽略默认为1。举例 mysql create table tt4 ( id int, a bit(8)); Query OK, 0 rows affected (0.01 sec) mysql insert into tt4 values(10, 10); Query OK, 1 row affected (0.01 sec) mysql select * from tt4; #发现很怪异的现象a的数据10没有出现 ------------ | id | a | ------------ | 10 | | ------------ 1 row in set (0.00 sec)bit字段在显示时是按照ASCII码对应的值显示。如果我们有这样的值只存放0或1这时可以定义bit(1)。这样可以节省空间。 mysql create table tt5(gender bit(1)); mysql insert into tt5 values(0); Query OK, 1 row affected (0.00 sec) mysql insert into tt5 values(1); Query OK, 1 row affected (0.00 sec) mysql insert into tt5 values(2); -- 当插入2时已经越界了 ERROR 1406 (22001): Data too long for column gender at row 12.3小数类型介绍 2.3.1 float float[(m, d)] [unsigned] : M指定显示长度d指定小数位数占用空间4个字节案例 小数float(4,2)表示的范围是-99.99 ~ 99.99MySQL在保存值时会进行四舍五入。 在插入第二个数-99.991时0.001被舍弃掉了… 如果定义的是float(4,2) unsigned 这时因为把它指定为无符号的数范围是 0 ~ 99.99 2.3.2decimal decimal(m, d) [unsigned] : 定点数m指定长度d表示小数点的位数decimal(5,2) 表示的范围是 -999.99 ~ 999.99 decimal(5,2) unsigned 表示的范围 0 ~ 999.99 decimal和float很像但是有区别: float和decimal表示的精度不一样 mysql create table tt8 ( id int, salary float(10,8), salary2 decimal(10,8)); mysql insert into tt8 values(100,23.12345612, 23.12345612); Query OK, 1 row affected (0.00 sec) mysql select * from tt8; -------------------------------- | id | salary | salary2 | -------------------------------- | 100 | 23.12345695 | 23.12345612 | # 发现decimal的精度更准确因此如果我们希望某 个数据表示高精度选择decimal --------------------------------所以在涉及到小数的使用时推荐使用decimal 3.字符串类型介绍 3.1char 语法 char(L): 固定长度字符串L是可以存储的长度单位为字符最大长度值可以为255案例 mysql create table tt9(id int, name char(2)); Query OK, 0 rows affected (0.00 sec) mysql insert into tt9 values(100, ab); Query OK, 1 row affected (0.00 sec) mysql insert into tt9 values(101, 中国); Query OK, 1 row affected (0.00 sec) mysql select * from tt9; -------------- | id | name | -------------- | 100 | ab | | 101 | 中国 | --------------char(2) 表示可以存放两个字符可以是字母或汉字但是不能超过2个 最多只能是255 3.2varchar 语法 varchar(L): 可变长度字符串L表示字符长度最大长度65535个字节案例 mysql create table tt10(id int ,name varchar(6)); --表示这里可以存放6个字符 mysql insert into tt10 values(100, hello); mysql insert into tt10 values(100, 我爱你中国); mysql select * from tt10; -------------------------- | id | name | -------------------------- | 100 | hello | | 100 | 我爱你中国 | --------------------------说明 关于varchar(len),len到底是多大这个len值和表的编码密切相关 varchar长度可以指定为0到65535之间的值但是有1 - 3 个字节用于记录数据大小所以说有效字节数是65532。 当我们的表的编码是utf8时varchar(n)的参数n最大值是65532/321844[因为utf中一个字符占用3个字节]如果编码是gbkvarchar(n)的参数n最大是65532/232766因为gbk中一个字符占用2字节。 如何选择定长或变长字符串 如果数据确定长度都一样就使用定长char比如身份证手机号md5 如果数据长度有变化,就使用变长(varchar), 比如名字地址但是你要保证最长的能存的进去。 定长的磁盘空间比较浪费但是效率高。 变长的磁盘空间比较节省但是效率低。 定长的意义是直接开辟好对应的空间 变长的意义是在不超过自定义范围的情况下用多少开辟多少。 面试char和varchar的区别 区别一定长和变长 char 表示定长长度固定varchar表示变长即长度可变。char如果插入的长度小于定义长度时则用空格填充varchar小于定义长度时还是按实际长度存储插入多长就存多长。 因为其长度固定char的存取速度还是要比varchar要快得多方便程序的存储与查找但是char也为此付出的是空间的代价因为其长度固定所以会占据多余的空间可谓是以空间换取时间效率。varchar则刚好相反以时间换空间。 区别之二存储的容量不同 对 char 来说最多能存放的字符个数 255和编码无关。 而 varchar 呢最多能存放 65532 个字符。varchar的最大有效长度由最大行大小和使用的字符集确定。整体最大长度是 65,532字节。 4.日期和时间类型 常用的日期有如下三个 date :日期 ‘yyyy-mm-dd’ 占用三字节datetime 时间日期格式 ‘yyyy-mm-dd HH:ii:ss’ 表示范围从 1000 到 9999 占用八字节 t3. imestamp 时间戳从1970年开始的 yyyy-mm-dd HH:ii:ss 格式和 datetime 完全一致占用四字节 案例 //创建表 mysql create table birthday (t1 date, t2 datetime, t3 timestamp); Query OK, 0 rows affected (0.01 sec) //插入数据 mysql insert into birthday(t1,t2) values(1997-7-1,2008-8-8 12:1:1); --插入两 种时间 Query OK, 1 row affected (0.00 sec) mysql select * from birthday; ------------------------------------------------------ | t1 | t2 | t3 | ------------------------------------------------------ | 1997-07-01 | 2008-08-08 12:01:01 | 2017-11-12 18:28:55 | --添加数据时时间戳自动补 上当前时间 ------------------------------------------------------ //更新数据 mysql update birthday set t12000-1-1; Query OK, 1 row affected (0.00 sec) Rows matched: 1 Changed: 1 Warnings: 0 mysql select * from birthday; ------------------------------------------------------ | t1 | t2 | t3 | ------------------------------------------------------ | 2000-01-01 | 2008-08-08 12:01:01 | 2017-11-12 18:32:09 | -- 更新数据时间戳会更新 成当前时间 ------------------------------------------------------5.enum和set 语法 enum枚举“单选”类型 enum(‘选项1’,‘选项2’,‘选项3’,…); 该设定只是提供了若干个选项的值最终一个单元格中实际只存储了其中一个值而且出于效率考虑这些值实际存储的是“数字”因为这些选项的每个选项值依次对应如下数字1,2,3,…最多65535个当我们添加枚举值时也可以添加对应的数字编号。 set集合“多选”类型 set(‘选项值1’,‘选项值2’,‘选项值3’, …); 该设定只是提供了若干个选项的值最终一个单元格中设计可存储了其中任意多个值而且出于效率考虑这些值实际存储的是“数字”因为这些选项的每个选项值依次对应如下数字1,2,4,8,16,32…最多64个。 案例 有一个调查表votes需要调查人的喜好 比如登山游泳篮球武术中去选择(可以多选) 男女[单选] mysql create table votes(- username varchar(30),- hobby set(登山,游泳,篮球,武术), --注意使用数字标识每个爱好的时候想想 Linux权限采用比特位位置来个set中的爱好对应起来- gender enum(男,女)); --注意使用数字标识的时候就是正常的数组下标 Query OK, 0 rows affected (0.02 sec)插入数据 insert into votes values(雷锋, 登山,武术, 男); insert into votes values(Juse,登山,武术,2); select * from votes where gender2; --------------------------------- | username | hobby | gender | --------------------------------- | Juse | 登山,武术 |女 | ---------------------------------有如下数据想查找所有喜欢登山的人 ---------------------------------- | username | hobby | gender | ---------------------------------- | 雷锋 | 登山,武术 | 男 | | Juse | 登山,武术 | 女 | | LiLei | 登山 | 男 | | LiLei | 篮球 | 男 | | HanMeiMei | 游泳 | 女 | ----------------------------------使用如下查询语句 mysql select * from votes where hobby登山; -------------------------- | username | hobby | gender | -------------------------- | LiLei | 登山 | 男 | --------------------------不能查询出所有爱好为登山的人。 集合查询使用find_ in_ set函数 find_in_set(sub,str_list) 如果 sub 在 str_list 中则返回下标如果不在返回0str_list 用逗号分隔的字符串。 mysql select find_in_set(a, a,b,c); --------------------------- | find_in_set(a, a,b,c) | --------------------------- | 1 | --------------------------- mysql select find_in_set(d, a,b,c); --------------------------- | find_in_set(d, a,b,c) | --------------------------- | 0 | ---------------------------查询爱好登山的人 mysql select * from votes where find_in_set(登山, hobby); --------------------------------- | username | hobby | gender | --------------------------------- | 雷锋 | 登山,武术 | 男 | | Juse | 登山,武术 | 女 | | LiLei | 登山 | 男 | ---------------------------------
http://www.pierceye.com/news/157019/

相关文章:

  • 网站后台登陆破解哪里有网站模板下载
  • 网站制作器软件下载建站备案
  • 网页模板下载网站站长素材音效网
  • 青岛网站建设要多少钱关键词优化是怎样收费的
  • 网站国际联网备案WordPress文章分页伪静态
  • 电子商务网站开发的任务书东莞seo关键词搜索关键词
  • 宁乡网站建设在哪小天才电话手表网站
  • 中文响应式网站搜搜网站提交
  • 华为官方网站手机商城首页大淘客网站商品做淘口令
  • 建站公司网站的关键词怎么设置
  • 上海二手房网站制作游戏需要什么技术
  • 湖州市城市建设档案馆网站电子商务网站怎么建
  • 网站超级外链做企业网站大约多少钱
  • 中国网站建设市场分析桂林公司网站搭建
  • 阿里云 企业网站选哪种洞窝app是谁开发的
  • ppt模板做的好的网站有哪些wordpress 多站点设置
  • ui作品集 网站怎么做网站制作加我
  • 自助做网站wordpress更换本地主题
  • 凡科网多页网站怎样做一线城市做网站工资有多少
  • .asp网站怎么做需要一个网站
  • 免费网站代码大全网站开发费入什么费用
  • 网站域名注册多少钱搜索引擎优化工具深圳
  • 学建设网站去哪里学建网站要大约多少钱
  • 网站正则表达式怎么做网站维护一般需要多久
  • 北京网站优化价格有没有做花卉种子的网站啊
  • 资源型网站建设 需要多大硬盘vi设计方案模板
  • 网站怎么做图片放映效果代码怎么生成网站
  • 怎么写代码做网站建投商务网官网
  • 江西那家做网站公司好各类网站建设
  • 做网站和服务器的大小有关吗it培训课程