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

响应式网站服务织梦搭建企业网站

响应式网站服务,织梦搭建企业网站,工程建设与设计期刊,域名建议网站阅读导航 引言一、数据类型分类二、数值类型取值范围三、tinyint 类型1. #x1f4bb;数值越界测试⭕有符号案例⭕无符号案例 四、bit 类型1. 基本语法2. 使用示例✅创建表并插入数据✅使用 BIT 存储多个设置✅查询和格式化 BIT 数据✅更新 BIT 数据 五、小数类型1. float数值越界测试⭕有符号案例⭕无符号案例 四、bit 类型1. 基本语法2. 使用示例✅创建表并插入数据✅使用 BIT 存储多个设置✅查询和格式化 BIT 数据✅更新 BIT 数据 五、小数类型1. float基本语法使用示例⭕有符号案例⭕无符号案例 2. decimal基本语法使用示例 引言 在上一篇文章里我们学习了MySQL中如何操作表比如怎么创建、修改和删除它们。但要想数据库真正发挥作用还得了解怎么存储数据这就涉及到了数据类型。数据类型决定了列里可以存什么类型的信息比如数字、文字还是日期等。 本篇文章我们就来聊聊MySQL中的数据类型看看它们是怎么帮助我们把数据存得既准确又高效的。准备好我们这就开始吧 一、数据类型分类 分类数据类型说明数值类型BIT(I)位类型。I指定位数默认值1范围1-64数值类型TINYINT [UNSIGNED]带符号的范围-128到127无符号范围0到255.默认有符号数值类型BOOL使用0和1表示真和假数值类型SMALLINT [UNSIGNED]带符号是-215到215-1无符号是216-1数值类型INT [UNSIGNED]带符号是-231到231-1无符号是232-1数值类型BIGINT [UNSIGNED]带符号是-263到263-1无符号是264-1数值类型FLOAT[(M,D)][UNSIGNED]指定显示长度d指定小数位数占用4字节数值类型DOUBLE[(M, D)][UNSIGNED]表示比float精度更大的小数占用空间8字节数值类型DECIMAL (M,D)[UNSIGNED]定点数指定长度D表示小数点的位数文本、二进制类型CHAR(size)固定长度字符串最大255文本、二进制类型VARCHAR(SIZE)可变长度字符串最大长度65535文本、二进制类型BLOB二进制数据文本、二进制类型TEXT大文本不支持全文索引不支持默认值时间日期日期类型DATEyyy-mm-dd/DATETIMEyyyy-mm-dd hh:mm:ss/TIMESTAMP时间戳ENUM类型ENUMENUM是一个字符串对象其值来自表创建时在列规定中显示枚举的一列值SET类型SETSET是一个字符串对象可以有零或多个值其值来自表创建时规定的允许的一列值。指定包括多个set成员的set列值时各成员之间用逗号间隔开。这样set成员值本身不能包含逗号。 二、数值类型取值范围 类型字节最小值带符号的最大值带符号的最大值无符号的TINYINT1-128127255SMALLINT2-327683276765535MEDIUMINT3-8388608838860716777215INT4-214748364821474836474294967295BIGINT8-9223372036854775808922337203685477580718446744073709551615 三、tinyint 类型 1. 数值越界测试 ⭕有符号案例 首先我们创建了一个名为t1的表该表包含一个名为num的列其数据类型为TINYINT。 mysql create table t1(num tinyint); Query OK, 0 rows affected (0.02 sec)接下来向t1表中插入了一个值1。 mysql insert into t1 values(1); Query OK, 1 row affected (0.00 sec)然后尝试向t1表中插入一个值128。但是128超出了TINYINT有符号的有效值域因此MySQL抛出了一个错误。 mysql insert into t1 values(128); -- 越界插入报错 ERROR 1264 (22003): Out of range value for column num at row 1通过SELECT查询来查看t1表中的所有数据。由于只有第一个INSERT操作成功所以查询结果将只包含第一个插入的值1。 mysql select * from t1; ----- | num | ----- | 1 | -----注意在MySQL中整型可以指定是有符号的和无符号的默认是有符号的可以通过UNSIGNED来说明某个字段是无符号的。 ⭕无符号案例 mysql create table t2(num tinyint unsigned);mysql insert into t2 values(-1); -- 无符号范围是 0 - 255 ERROR 1264 (22003): Out of range value for column num at row 1mysql insert into t2 values(255); Query OK, 1 row affected (0.02 sec)mysql select * from t2; ------ | num | ------ | 255 | ------ 1 row in set (0.00 sec)四、bit 类型 1. 基本语法 bit[(M)] : 位字段类型。M表示每个值的位数范围从1到64。如果M被忽略默认为1。2. 使用示例 BIT[(M)] 类型在 MySQL 中用于存储二进制数据其中 M 表示位字段的长度范围从 1 到 64。如果省略 M则默认为 1。 ✅创建表并插入数据 假设我们有一个表用于存储用户的ID和他们的某些二进制设置例如是否启用了某个功能。 create table user_settings (user_id INT AUTO_INCREMENT PRIMARY KEY,feature_enabled BIT(1) NOT NULL DEFAULT b0 );-- 插入数据 INSERT INTO user_settings (feature_enabled) VALUES (b1); -- 启用功能 INSERT INTO user_settings (feature_enabled) VALUES (b0); -- 禁用功能在这个例子中feature_enabled 列是一个 BIT(1) 类型的字段用于存储单个位的值0 或 1表示功能是否启用。 ✅使用 BIT 存储多个设置 如果你需要存储多个二进制设置可以使用更大的 BIT 字段。 create table user_profiles (user_id INT AUTO_INCREMENT PRIMARY KEY,settings BIT(8) NOT NULL DEFAULT b00000000 );-- 假设 settings 的每一位代表一个不同的设置 -- 例如第1位是邮件通知第2位是短信通知依此类推 INSERT INTO user_profiles (settings) VALUES (b10101010);✅查询和格式化 BIT 数据 当你从 BIT 类型的列中检索数据时你可能想要以更易于理解的方式查看这些数据。 -- 查询并格式化 BIT 数据 SELECT user_id, BIN(settings) AS binary_settings FROM user_profiles;-- 如果你只对某些位感兴趣可以使用位运算 -- 例如检查邮件通知是否启用假设它是第1位 SELECT user_id, (settings b00000001) AS mail_notifications FROM user_profiles; ✅更新 BIT 数据 你可以使用位运算符来更新 BIT 字段中的值。 -- 假设我们要启用用户ID为1的用户的邮件通知第1位 UPDATE user_profiles SET settings settings | b00000001 WHERE user_id 1;-- 禁用短信通知假设它是第2位 UPDATE user_profiles SET settings settings ~b00000010 WHERE user_id 1;五、小数类型 1. float 基本语法 float[(m, d)] [unsigned] : M指定显示长度d指定小数位数占用空间4个字节使用示例 ⭕有符号案例 小数float(4,2)表示的范围是-99.99 ~ 99.99MySQL在保存值时会进行四舍五入 mysql create table t6(id int, salary float(4,2)); Query OK, 0 rows affected (0.01 sec)mysql insert into t6 values(100, -99.99); Query OK, 1 row affected (0.00 sec)mysql insert into t6 values(101, -99.991); #多的这一点被拿掉了 Query OK, 1 row affected (0.00 sec)mysql select * from t6; -------------- | id | salary | -------------- | 100 | -99.99 | | 101 | -99.99 | -------------- 2 rows in set (0.00 sec)⭕无符号案例 如果定义的是float(4,2) unsigned 这时因为把它指定为无符号的数范围是 0 ~ 99.99 mysql create table t7(id int, salary float(4,2) unsigned); Query OK, 0 rows affected (0.01 sec)mysql insert into t7 values(100, -0.1); Query OK, 1 row affected, 1 warning (0.00 sec)mysql show warnings; ---------------------------------------------------------------- | Level | Code | Message | ---------------------------------------------------------------- | Warning | 1264 | Out of range value for column salary at row 1 | ---------------------------------------------------------------- 1 row in set (0.00 sec)mysql insert into t7 values(100, -0); Query OK, 1 row affected (0.00 sec)mysql insert into t7 values(100, 99.99); Query OK, 1 row affected (0.00 sec)2. decimal 基本语法 decimal(m, d) [unsigned] : 定点数m指定长度d表示小数点的位数decimal(5,2) 表示的范围是 -999.99 ~ 999.99decimal(5,2) unsigned 表示的范围 0 ~ 999.99decimal和float很像但是有区别float和decimal表示的精度不一样 使用示例 mysql create table t8 ( id int, salary float(10,8), salary2 decimal(10,8));mysql insert into t8 values(100,23.12345612, 23.12345612); Query OK, 1 row affected (0.00 sec)mysql select * from t8; -------------------------------- | id | salary | salary2 | -------------------------------- | 100 | 23.12345695 | 23.12345612 | # 发现decimal的精度更准确因此如果我们希望某个数据表示高精度选择decimal --------------------------------经过上面的例子可以发现decimal的精度更准确因此如果我们希望某个数据表示高精度就选择decimal。
http://www.hkea.cn/news/14353515/

相关文章:

  • ppt在线浏览网站源码电子系统设计网站
  • 网站制作怎样容易关键词排名优化
  • 宁波哪里有做网站的二手房网站建设书
  • 网站策划怎么做一个网站两个域名百度商桥安装方法
  • 做网站要不要交税网站定制制作
  • 做卷子的网站黄石网站制作公司
  • 网站备案名称规定有pc网站
  • 免费网站设计 优帮云个人承包工程合同范本
  • 海外建站推广网上订酒店 网站开发
  • 商城网站页面设计培训方案怎么做
  • 国外学校网站设计西安哪些做网站的公司好
  • 制作网站模板如何开发安卓app
  • 营销型网站开发公司电话dede我的网站
  • 深圳营销型网站建设 宝安西乡昆明seo网站建设费用
  • 网站后台点击添加图片没有反应wordpress 分页制作
  • 家乡网站建设策划书模板站长工具seo综合查询隐私查询
  • 网站的logo怎么上传网站 优化 件
  • 服装商城网站建设价格怎么找到php网站的首页面html
  • 做网络平台的网站有哪些广东省建设工程质量安全协会网站
  • wordpress如何添加网站地图百度云 编辑wordpress
  • 新桥专业网站建设wordpress写文章页面无法显示
  • 咸阳 网站建设文明农村建设网站
  • 用手机做自己的网站如何利用网站做淘宝客
  • 做众筹网站怎么赚钱兰州网站建设小程序
  • 青州网站建设优化推广苏州网站建设求职简历
  • 外贸网站品牌官网建设网站登录验证码不正确
  • 专注河南网站建设微信网页登录
  • 高新区做网站江苏住房和城乡建设局网站
  • 在线做网站视频在线观看三亚兼职网站
  • 网站建设人员配置是怎样的做网站可以盈利吗