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

宣化网站建设正规的网店培训机构有哪些

宣化网站建设,正规的网店培训机构有哪些,市住房城乡建设委门户网站,财税营销型网站目录 sqlite3学习——数据类型 SQL语句的功能 SQL语法 SQL命令 SQL数据类型 数字类型 整型 浮点型 定点型decimal 浮点型 VS decimal 日期类型 字符串类型 CHAR和VARCHAR BLOB和TEXT SQLite 数据类型 SQLite 存储类 SQLite 亲和类型(Affinity)及类型名称 Boo…

目录

sqlite3学习——数据类型

SQL语句的功能

SQL语法

SQL命令

SQL数据类型

数字类型

整型

浮点型

定点型decimal

浮点型 VS decimal

日期类型

字符串类型

CHAR和VARCHAR

BLOB和TEXT

SQLite 数据类型

SQLite 存储类

SQLite 亲和类型(Affinity)及类型名称

Boolean 数据类型

Date 与 Time 数据类型


sqlite3学习——数据类型

SQL语句的功能

SQL语句的功能包括以下:

  • 数据定义(DDL):用户定义、删除和修改数据模式
  • 数据查询(DQL):用于查询数据
  • 数据操纵(DML):用于增、删、改数据
  • 数据控制(DCL):用于控制数据访问权限

SQL语法

SQL命令

SQL语句中关键字既可以小写也可以大写

SQL数据类型

数字类型

整型

浮点型

float(M,D),double(M、D)

  • D表示浮点型数据小数点之后的精度,假如超过D位则四舍五入,即1.233四舍五入为1.23,1.237四舍五入为1.24
  • M表示浮点型数据总共的位数,D=2则表示总共支持五位,即小数点前只支持三位数
drop table if exists test_float;
create table test_float (num float(5, 2)
) engine=innodb charset=utf8;insert into test_float values(1.233);
insert into test_float values(1.237);
insert into test_float values(10.233);
insert into test_float values(100.233);
insert into test_float values(1000.233);
insert into test_float values(10000.233);
insert into test_float values(100000.233);select * from test_float;

以上程序在MySQL中运行结果会报错,提示数据溢出(以下为SQLyog下运行结果):

但在SQLite3中运行不会提示错误,但实际已经发生溢出

首先创建一个数据库,类型为.db

执行上述程序,发现报错,这是因为sqlite中不支持engine=innodb charset=utf8;(显式进行引擎选择和编码选择)

删除engine=innodb charset=utf8;后运行

结果如下

定点型decimal

当数据精度很大的时候我们可以使用定点型

decimal在不指定M、D时默认为decimal(10, 0)

drop table if exists test_decimal;
create table test_decimal (float_num float(10, 2),double_num double(20, 2),decimal_num decimal(20, 2)
) ;insert into test_decimal values(1234567.66, 1234567899000000.66, 1234567899000000.66);
insert into test_decimal values(1234567.66, 12345678990000000.66, 12345678990000000.66);

浮点型 VS decimal

  • float、double类型存在精度丢失问题,即写入数据库的数据未必是插入数据库的数据
  • decimal无论写入数据中的数据是多少,都不会存在精度丢失问题,decimal类型常见于银行系统、互联网金融系统等对小数点后的数字比较敏感的系统中

日期类型

drop table if exists test_time;
create table test_time (date_value date,time_value time,year_value year,datetime_value datetime,timestamp_value timestamp
);insert into test_time values(now(), now(), now(), now(), now());

运行发现报错,这是因为now()是MySQL的内置函数

我们重新写一个

drop table if exists test_time;
create table test_time (date_value date,time_value time,year_value year,datetime_value datetime
);
insert into test_time values("2023-8-26","2:00","2023","2023-8-26 2:00");

运行成功:

字符串类型

CHAR和VARCHAR

  • char是固定长度字符串,其长度范围为0~255且与编码方式无关,无论字符实际长度是多少,都会按照指定长度存储,不够的用空格补足
  • varchar为可变长度字符串,在utf8编码的数据库中其长度范围为0~21844,如varchar(1024)表示字符串长度最长为1024
  • char实际占用的字节数即存储的字符所占用的字节数,varchar实际占用的字节数为存储的字符+1或+2或+3
  • MySQL处理char类型数据时会将结尾的所有空格处理掉而varchar类型数据则不会
DROP TABLE IF EXISTS test_string;
CREATE TABLE test_string (char_value CHAR(5),varchar_value VARCHAR(5)
);INSERT INTO test_string VALUES('a', 'a');
INSERT INTO test_string VALUES(' a', ' a');
INSERT INTO test_string VALUES('a ', 'a ');
INSERT INTO test_string VALUES(' a ', ' a ');SELECT LENGTH(char_value), LENGTH(varchar_value) FROM test_string;

BLOB和TEXT

text和blob两种数据类型,它们的设计初衷是为了存储大数据使用的

MySql单行最大数据量为64K

当varchar(M)的M大于某些数值时,varchar会自动转为text:

  • M>255时转为tinytext
  • M>500时转为text
  • M>20000时转为mediumtext

SQLite 数据类型

一般数据采用固定的静态数据类型, 而 SQLite 采用的是动态数据类型, 会根据存入值自动判断,这样做是为了和标准的SQL语句相兼容。

SQLite 数据类型是一个用来指定任何对象的数据类型的属性。SQLite 中的每一列,每个变量和表达式都有相关的数据类型。

可以在创建表的同时使用这些数据类型。SQLite 使用一个更普遍的动态类型系统。在 SQLite 中,值的数据类型与值本身是相关的,而不是与它的容器相关。

SQLite 存储类

每个存储在 SQLite 数据库中的值都具有以下存储类之一:

存储类

描述

NULL

值是一个 NULL 值。

INTEGER

值是一个带符号的整数,根据值的大小存储在 1、2、3、4、6 或 8 字节中。

REAL

值是一个浮点值,存储为 8 字节的 IEEE 浮点数字。

TEXT

值是一个文本字符串,使用数据库编码(UTF-8、UTF-16BE 或 UTF-16LE)存储。

BLOB

值是一个 blob 数据,完全根据它的输入存储。

SQLite 的存储类稍微比数据类型更普遍。INTEGER 存储类,例如,包含 6 种不同的不同长度的整数数据类型。

SQLite 亲和类型(Affinity)及类型名称

下表列出了当创建 SQLite3 表时可使用的各种数据类型名称,同时也显示了相应的亲和类型:

数据类型

亲和类型

  • INT
  • INTEGER
  • TINYINT
  • SMALLINT
  • MEDIUMINT
  • BIGINT
  • UNSIGNED BIG INT
  • INT2
  • INT8

INTEGER

  • CHARACTER(20)
  • VARCHAR(255)
  • VARYING CHARACTER(255)
  • NCHAR(55)
  • NATIVE CHARACTER(70)
  • NVARCHAR(100)
  • TEXT
  • CLOB

TEXT

  • BLOB
  • 未指定类型

BLOB

  • REAL
  • DOUBLE
  • DOUBLE PRECISION
  • FLOAT

REAL

  • NUMERIC
  • DECIMAL(10,5)
  • BOOLEAN
  • DATE
  • DATETIME

NUMERIC

Boolean 数据类型

SQLite 没有单独的 Boolean 存储类。相反,布尔值被存储为整数 0(false)和 1(true)。

Date 与 Time 数据类型

SQLite 没有一个单独的用于存储日期和/或时间的存储类,但 SQLite 能够把日期和时间存储为 TEXT、REAL 或 INTEGER 值。

存储类

日期格式

TEXT

格式为 "YYYY-MM-DD HH:MM:SS.SSS" 的日期。

REAL

从公元前 4714 年 11 月 24 日格林尼治时间的正午开始算起的天数。

INTEGER

从 1970-01-01 00:00:00 UTC 算起的秒数。

对于时间的使用在实际开发中比较常见,我们需要好好掌握。

SQLite 支持以下五个日期和时间函数:

序号

函数

实例

1

date(timestring, modifier, modifier, ...)

以 YYYY-MM-DD 格式返回日期。

2

time(timestring, modifier, modifier, ...)

以 HH:MM:SS 格式返回时间。

3

datetime(timestring, modifier, modifier, ...)

以 YYYY-MM-DD HH:MM:SS 格式返回。

4

julianday(timestring, modifier, modifier, ...)

这将返回从格林尼治时间的公元前 4714 年 11 月 24 日正午算起的天数。

5

strftime(format, timestring, modifier, modifier, ...)

这将根据第一个参数指定的格式字符串返回格式化的日期。具体格式见下边讲解。

上述五个日期和时间函数把时间字符串作为参数。时间字符串后跟零个或多个 modifier 修饰符。strftime() 函数也可以把格式字符串 format 作为其第一个参数。

因此对于上面日期类型中举的例子,我们可以使用sqlite提供的函数

drop table if exists test_time;
create table test_time (date_value date,time_value time,year_value year,datetime_value datetime
);
insert into test_time values(date('now'),time('now','localtime'),datetime('now','localtime'),datetime('now','localtime'));

具体使用可查看:SQLite 日期 & 时间

SQLite 日期 & 时间 | 菜鸟教程

http://www.hkea.cn/news/170206/

相关文章:

  • 一个网站的主题和设计风格最好用的免费建站平台
  • 网站开发主页手机优化游戏性能的软件
  • 怎么做属于自己的域名网站网络策划方案
  • destoon做的网站百度商务合作联系
  • 金山区网站制作网络营销策划书1500字
  • 厦门网站建设制作工具熊猫关键词挖掘工具
  • 徐州网站建设 网站推广百度首页快速排名系统
  • 在线转格式网站怎么做拼多多seo 优化软件
  • 成都理工疫情最新消息贵港seo
  • 网站如何防止攻击怎么自己做一个小程序
  • 企业网站建设英文百度收录
  • wordpress查版本sem和seo的区别
  • 网站设计说明书怎么写网站建设平台官网
  • 有建网站的软件阿里云域名注册万网
  • 站长工具排名分析怎么创建公司网站
  • 网站建设标书四川seo哪里有
  • 接网站开发做多少钱建一个外贸独立站大约多少钱
  • wordpress表单录入seo报告
  • python做网站显示表格星巴克seo网络推广
  • 一个com的网站多少钱管理微信软件
  • 蒙阴网站建设软文代写网
  • 用python做一旅游网站南昌seo计费管理
  • 湖北省建设厅win10优化软件哪个好
  • 湖南企业建站系统平台软文有哪些发布平台
  • 南通 网络 公司网站真正免费建站
  • 做图骂人的图片网站网络服务
  • wordpress主标题副标题seo基础
  • 淮安做网站优化百度竞价排名是什么方式
  • 食品公司网站源码谷歌网页
  • 做网站用哪种代码比较好推广seo发贴软件