数据库sql语言学习(二)

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

数据库sql语言学习(二)

0_SQL的数据类型:来源于一篇文章的修改,但是已经很久了,忘记该文章的网站了,还希望该文章原作者能原谅!

一、 整数数据类型
整数数据类型是最常用的数据类型之一。
 
1、INT (INTEGER)
INT (或INTEGER)数据类型:每个INT 类型的数据按4 个字节存储,其中1 位表示整数值的正负号,其它31 位表示整数值的长度和大小。


2、SMALLINT

SMALLINT 数据类型:每个SMALLINT 类型的数据占用2 个字节的存储空间,其中1 位表示整数值的正负号,其它15 位表示整数值的长度和大小。


3、TINYINT
 TINYINT数据类型存储从0 到255 之间的所有正整数。每个TINYINT类型的数据占用1 个字节的存储空间。
 
4、BIGINT

BIGINT 数据类型:每个BIGINT 类型的数据占用8个字节的存储空间。


二、 浮点数据类型(和一般的编程语言稍稍有点不一样)
浮点数据类型用于存储十进制小数。浮点数值的数据在SQL Server 中采用上舍入(Round up 或称为只入不舍)方式进行存储。所谓上舍入是指,当(且仅当)要舍入的数是一个非零数时,对其保留数字部分的最低有效位上的数值加1 ,并进行必要的进位。若一个数是上舍入数,其绝对值不会减少。如:对3.14159265358979 分别进行2 位和12位舍入,结果为3.15 和3.141592653590。
 
1、REAL 数据类型
REAL数据类型可精确到第7 位小数, 每个REAL类型的数据占用4 个字节的存储空间。
2、FLOAT
FLOAT数据类型可精确到第15 位小数, 每个FLOAT 类型的数据占用8 个字节的存储空间。 FLOAT数据类型可写为FLOAT[ n ]的形式。n 指定FLOAT 数据的精度。n 为1到15 之间的整数值。当n 取1 到7 时,实际上是定义了一个REAL 类型的数据,系统用4 个字节存储它;当n 取8 到15 时,系统认为其是FLOAT 类型,用8 个字节存储它。
3、DECIMAL
DECIMAL数据类型可以提供小数所需要的实际存储空间,但也有一定的限制,您可以用2 到17 个字节来存储从-10的38次方-1 到10的38次方-1 之间的数值。可将其写为DECIMAL[ p [s] ]的形式,p 和s 确定了精确的比例和数位。其中p 表示可供存储的值的总位数(不包括小数点),缺省值为18; s 表示小数点后的位数,缺省值为0。 例如:decimal (15 5),表示共有15 位数,其中整数10 位,小数5。 位表4-3 列出了各精确度所需的字节数之间的关系。
4、NUMERIC
NUMERIC数据类型与DECIMAL数据类型完全相同。
注意:SQL Server 为了和前端的开发工具配合,其所支持的数据精度默认最大为28位。
 
三、 二进制数据类型

1、BINARY

BINARY 数据类型用于存储二进制数据。其定义形式为BINARY( n), n 表示数据的长度,取值为1 到8000 。在使用时必须指定BINARY 类型数据的大小,至少应为1 个字节。BINARY 类型数据占用n+4 个字节的存储空间。在输入数据时必须在数据前加上字符“0X” 作为二进制标识,如:要输入“abc ”则应输入“0xabc ”。若输入的数据过长将会截掉其超出部分。若输入的数据位数为奇数,则会在起始符号“0X ”后添加一个0,如上述的“0xabc ”会被系统自动变为“0x0abc”。


2、VARBINARY

VARBINARY数据类型的定义形式为VARBINARY(n)。 它与BINARY 类型相似,n 的取值也为1 到8000, 若输入的数据过长,将会截掉其超出部分。不同的是VARBINARY数据类型具有变动长度的特性,因为VARBINARY数据类型的存储长度为实际数值长度+4个字节。当BINARY数据类型允许NULL 值时,将被视为VARBINARY数据类型。

 
一般情况下,由于BINARY 数据类型长度固定,因此它比VARBINARY 类型的处理速度快。
四、 逻辑数据类型
BIT: BIT数据类型占用1 个字节的存储空间,其值为0 或1 。如果输入0 或1 以外的值,将被视为1。 BIT 类型不能定义为NULL 值(所谓NULL 值是指空值或无意义的值)。
 
五、 字符数据类型
字符数据类型是使用最多的数据类型。它可以用来存储各种字母、数字符号、特殊符号。一般情况下,使用字符类型数据时须在其前后加上单引号’或双引号” 。
 
1 CHAR
 
CHAR 数据类型的定义形式为CHAR[ (n) ]。 以CHAR 类型存储的每个字符和符号占一个字节的存储空间。n 表示所有字符所占的存储空间,n 的取值为1 到8000, 即可容纳8000 个ANSI 字符。若不指定n 值,则系统默认值为1。 若输入数据的字符数小于n,则系统自动在其后添加空格来填满设定好的空间。若输入的数据过长,将会截掉其超出部分。
 
2、NCHAR
NCHAR数据类型的定义形式为NCHAR[ (n) ]。 它与CHAR 类型相似。不同的是NCHAR数据类型n 的取值为1 到4000。 因为NCHAR 类型采用UNICODE 标准字符集(CharacterSet)。 UNICODE 标准规定每个字符占用两个字节的存储空间,所以它比非UNICODE 标准的数据类型多占用一倍的存储空间。使用UNICODE 标准的好处是因其使用两个字节做存储单位,其一个存储单位的容纳量就大大增加了,可以将全世界的语言文字都囊括在内,在一个数据列中就可以同时出现中文、英文、法文、德文等,而不会出现编码冲突。
3、VARCHAR
VARCHAR数据类型的定义形式为VARCHAR [ (n) ]。 它与CHAR 类型相似,n 的取值也为1 到8000, 若输入的数据过长,将会截掉其超出部分。不同的是,VARCHAR数据类型具有变动长度的特性,因为VARCHAR数据类型的存储长度为实际数值长度,若输入数据的字符数小于n ,则系统不会在其后添加空格来填满设定好的空间。
一般情况下,由于CHAR 数据类型长度固定,因此它比VARCHAR 类型的处理速度快。
4、NVARCHAR
NVARCHAR数据类型的定义形式为NVARCHAR[ (n) ]。 它与VARCHAR 类型相似。不同的是,NVARCHAR数据类型采用UNICODE 标准字符集(Character Set), n 的取值为1 到4000。
六、文本和图形数据类型
这类数据类型用于存储大量的字符或二进制数据。
1、TEXT
TEXT数据类型用于存储大量文本数据,其容量理论上为1 到2的31次方-1 (2, 147, 483, 647)个字节,在实际应用时需要视硬盘的存储空间而定。
SQL Server 2000 以前的版本中,数据库中一个TEXT 对象存储的实际上是一个指针,它指向一个个以8KB (8192 个字节)为单位的数据页(Data Page)。 这些数据页是动态增加并被逻辑链接起来的。在SQL Server 2000 中,则将TEXT 和IMAGE 类型的数据直接存放到表的数据行中,而不是存放到不同的数据页中。 这就减少了用于存储TEXT 和IMA- GE 类型的空间,并相应减少了磁盘处理这类数据的I/O 数量。
 
2 NTEXT
NTEXT数据类型与TEXT.类型相似不同的,是NTEXT 类型采用UNICODE 标准字符集(Character Set), 因此其理论容量为230-1(1, 073, 741, 823)个字节。
 
3 IMAGE
IMAGE数据类型用于存储大量的二进制数据Binary Data。 其理论容量为2的31次方-1(2,147,483,647)个字节。其存储数据的模式与TEXT 数据类型相同。通常用来存储图形等OLE Object Linking and Embedding,对象连接和嵌入)对象。在输入数据时同BINARY数据类型一样,必须在数据前加上字符“0X”作为二进制标识
七、日期和时间数据类型
1 DATETIME
 
DATETIME 数据类型用于存储日期和时间的结合体。它可以存储从公元1753 年1 月1 日零时起到公元9999 年12 月31 日23 时59 分59 秒之间的所有日期和时间,其精确度可达三百分之一秒,即3.33 毫秒。DATETIME 数据类型所占用的存储空间为8 个字节。其中前4 个字节用于存储1900 年1 月1 日以前或以后的天数,数值分正负,正数表示在此日期之后的日期,负数表示在此日期之前的日期。后4 个字节用于存储从此日零时起所指定的时间经过的毫秒数。如果在输入数据时省略了时间部分,则系统将12:00:00:000AM作为时间缺省值:如果省略了日期部分,则系统将1900 年1 月1 日作为日期缺省值。
 
2 SMALLDATETIME
 
SMALLDATETIME 数据类型与DATETIME 数据类型相似,但其日期时间范围较小,为从1900 年1 月1 日到2079 年6 月6:日精度较低,只能精确到分钟,其分钟个位上为根据秒数四舍五入的值,即以30 秒为界四舍五入。如:DATETIME 时间为14:38:30.283时SMALLDATETIME 认为是14:39:00 SMALLDATETIME 数据类型使用4 个字节存储数据。其中前2 个字节存储从基础日期1900 年1 月1 日以来的天数,后两个字节存储此日零时起所指定的时间经过的分钟数。
八、 货币数据类型
货币数据类型用于存储货币值。在使用货币数据类型时,应在数据前加上货币符号,系统才能辨识其为哪国的货币,如果不加货币符号,则默认为“¥”。各货币符号如图4-2所示。
1 MONEY
MONEY 数据类型的数据是一个有4 位小数的DECIMAL 值,其取值从-2的63次方(-922,337,203,685,477.5808到2的63次方-1(+922,337,203,685,477.5807),数据精度为万分之一货币单位。MONEY 数据类型使用8个字节存储。
2 SMALLMONEY
SMALLMONEY数据类型类似于MONEY 类型,但其存储的货币值范围比MONEY数据类型小,其取值从-214,748.3648到+214,748.3647,存储空间为4 个字节。
九、 特定数据类型
SQL Server 中包含了一些用于数据存储的特殊数据类型。


1 TIMESTAMP

TIMESTAMP数据类型提供数据库范围内的惟一值此类型相当于BINARY8或VARBINARY(8),但当它所定义的列在更新或插入数据行时,此列的值会被自动更新,一个计数值将自动地添加到此TIMESTAMP数据列中。每个数据库表中只能有一个TIMESTAMP数据列。如果建立一个名为“TIMESTAMP”的列,则该列的类型将被自动设为TIMESTAMP数据类型。


2 UNIQUEIDENTIFIER

UNIQUEIDENTIFIER 数据类型存储一个16 位的二进制数字。此数字称为(GUIDGlobally Unique Identifier ,即全球惟一鉴别号)。此数字由SQLServer 的NEWID函数产生的全球惟一的编码,在全球各地的计算机经由此函数产生的数字不会相同。


十、 用户自定义数据类型

SYSNAME SYSNAME 数据类型是系统提供给用户的,便于用户自定义数据类型。它被定义为NVARCHAR(128),即它可存储128个UNICODE字符或256个一般字符。

表格来源:点击打开链接

1.整形数据

整形数据字节数
TINYINT1
SMALLINT2
MEDIUMINT3
INT4
INTEGER4
BIGINT8

2.浮点类型和定点类型

浮点类型字节数
FLOAT4
DOUBLE8
DECIMAL(M,D)M+2

M表示整数D表示小数


3.时间日期类型

时间日期类型字节数取值范围
YEAR11901-2155
DATE41000-01-01~9999-12-31
TIME3-838:59:59~838:59:59
DATETIME81000-01-01 00:00:00~9999-12-31 23:59:59
TIMESTAMP419700101080001~20380119111407

☞Year:2位表示:00~69—>2000~2069 70~99—>1970~1999(如何插入为0,则表示0000,如果插入为”0”,则表示2000) 
☞DATE:YYYY-MM-DD 
☞TIME:CURRENT_DATE() NOW() 
☞DATETIME: 
☞TIMESTAMP:最大时间–>2038-01-19 11:14:07


4.字符串类型

char :255 可变 
char(5) ab 
varchar:65535 可变 
varchar (5)ab

TEXT 
TINYTEXT、MEDIUMTEXT、TEXT、LONGTEXT


5 .二进制类型

时间日期范围取值范围
BINARY(M)字节数M,允许长度为0~M的定长二进制字符串
VARBINARY(M)允许长度为0~M的变长二进制字符串,字节数为值的长度加1
BIT(M)M位二进制数据,M最大值为64
TINYBLOB可变长二进制数据,最多255个字节
BLOB可变长二进制数据,最多(2^16-1)个字节
MEDIUMBLOB可变长二进制数据,最多(2^24-1)个字节
LONGBLBO可变长二进制数据,最多(2^32-1)个字节



CODOSYS之结构化文本(ST)—— 初级篇(三)基础-数据类型 清楚的了解数据类型是编程必备技能 数据类型分三类:(这篇文章只讲标准数据类型,下篇文章会讲规范扩展数据类型与自定义数据类型) 标准数据类型 所有被标准 IEC61131-3描述的 数据类型, 一般 都能被 CODESYS支持,参见以下: 布尔: 布尔 类型 变量将被赋值 TRUE (1) 和FALSE (0)。将保持8内存空间。整数: 查看以下所有变量的整数数据类型列表。每个不同的数字... 阅读详情

相关推荐

【Codesys】浮点数(LREAL类型长度保留处理

今天在测试中,计算机器人的臂长,采用了LREAL数据类型,一路保存了小数点后面十的数值,因为要上传到视觉,仅需保留到小数点后面3-5即可,遂寻找了一下有没有类似于C#那种处理浮点数长度的函数方法,发现没有,但是通过同事的指点,发现可以通过不断更换数据类型来解决。所以写下这个记录。避免以后忘记,话不多说,上干货。 变量声明区域: FUNCTION Return_Lreal : LREAL VAR_INPUT Value:LREAL; //需要调整的浮点数 floatLength:......

qq_35316470的博客 8987

SQL2000的数据类型

在计算机中数据有两种特征:类型和长度。所谓数据类型就是以数据的表现方式和存储方式来划分的数据的种类。在SQL Server 中每个变量、参数、表达式等都有数据类型。系统提供的数据类型分为几大类,如表所示。其中,BIGINTSQL_VARIANT 和TABLE 是SQL Server 2000 中新增加的3 种数据类型。下面分类讲述各种数据类型。4.3.1 整数数据类型 整数数据类型是最常用的数

飞扬的汤圆的专栏 1429

Azure数据库服务比较:SQL Database vs Cosmos DB

结构化数据场景:如订单管理、用户认证等需要强事务支持的业务非结构化/半结构化场景:如物联网设备日志、社交网络数据、实时推荐系统:基于传统关系型数据库SQL Server)的云原生服务,支持ACID事务和复杂SQL查询Cosmos DB:全球分布式NoSQL数据库,支持多模型(文档、键值、图、宽列)和弹性扩展两者的架构设计哲学有何本质区别?数据建模和查询语言的差异如何影响开发体验?一致性、可用性、吞吐量的权衡模型如何选择?典型业务场景下的选型决策依据是什么?技术原理对比。

AI云原生与云计算技术学院 1826

MSSQL常用数据类型

1.字符类型 一般常用的varchar,char,text等,其中varchar为可变长,char为定长.varchar使用的好处是可以节约空间.char的好处是效率可能较高. 数据类型 描述 存储空间 char(n) n为1-8000字符之间 n字节 nchar(n) n为1-4000 unicode字符之间

Brent的专栏 5539

byte是什么数据类型_西门子PLC的数据类型及数据转换

1. 数据类型在PLC项目编程中,离不开数据类型和变量,搞清楚数据类型和数据类型的转换很重要。常用的数据类型包括以下几种:(bit),字节(Byte),字(Word),双字(Double Word),整型数(INT),双整型书(DINT),及实数/浮点数(Real)1.1 (bit)常称作布尔量BOOL,在高级语言中,会说布尔变量,布尔控件等。取值:0 ,1寻址:I0.0 M0.0 Q0.0 ...

weixin_39785081的博客 1万+

大数据_数据库(DBMS、DB、SQL

目录 开篇 一、数据库 1.数据库(通常概念) 1.1数据库简介 1.2数据库的好处 1.3数据库相关概念 2.DBMS数据库管理系统概述 2.1 具体概念 2.2DBMS根据数据的保存格式(数据库的种类)来进行分类 层次数据库(Hierarchical Database,HDB) 关系数据库(Relational Database,RDB) 面向对象数据库(Object Oriented Database,OODB) XML数据库(XML Database,XMLDB) ...

D大调奏鸣曲_第七序章_de博客 6782

浅析数据库(DB)、操作数据存储(ODS)和数据仓库(DW)的区别与联系

文章背景:相信大部分刚接触上面三个概念的同学,都多多少少会有些迷惑,现在我就给大家简单分析下这三者的关系,希望大家对这三者的概念理解有所帮助吧。本文主要从下面两类关系来叙述上面三者的关系: 数据库(DB)和数据仓库(DW)的区别与联系 操作数据存储(ODS)和数据仓库(DW)的区别与联系 数据库与数据仓库的区别与联系数据库与数据仓库基础概念:数据库:传统的关系型数据库的主要应用,主要是基本的、日常的

Mike_ToUp 2万+

Python通过ibm_db模块进行DB2数据库SQL语句执行及结果返回

执行SQL语句 方法一: 语法: 调用ibm_db.prepare()函数并传递以下参数: 1.从ibm_db.connect()或ibm_db.pconnect()函数返回的有效数据库连接资源; 2.包含SQL语句的字符串,包括需要变量输入的任何列或谓词值的参数标记(?)。该字符串可以包含由XMLQUERY子句包装的XQuery表达式 3.ibm_db.execute()执行SQL语句 im...

weixin_42970378的博客 8883

SQL高级语句-CREATE DATABASE 用于创建数据库

CREATE DATABASE 语句 CREATE DATABASE 用于创建数据库SQL CREATE DATABASE 语法 CREATE DATABASE database_name SQL CREATE DATABASE 实例 现在我们希望创建一个名为 "my_db" 的数据库。 我们使用下面的 CREATE DATABASE 语句: CREATE

qq_35144470的博客 2683

database.db 文件详解:数据库文件在 SQLite 中的作用与使用

本文解析了Python项目中自动生成的database.db文件的作用和使用方法。该文件是SQLite数据库的默认存储文件,包含表结构、数据记录和索引等信息。文章详细介绍了SQLite的存储原理、查看和操作方法(命令行与可视化工具)、备份策略及常见问题解决方案,并强调数据库管理需严谨,避免数据丢失。掌握.db文件的特性能帮助开发者更高效地进行项目调试和数据库维护。

聚焦学生开发者需求,分享课设毕设项目实战经验、系统开发技巧、数据库设计规范及文档排版实用方法。 2201

数据库——(DB、DBMS、SQL

公司的数据库突然坏了,报一些稀奇古怪的错误代码,公司没人能搞定。老板很着急,把我叫到办公室说:“你赶紧在招聘网站发布一个DBA职,年薪50万……”我大吃一惊:“50万?”老板点点头,接着说:“你负责面试,就问他们怎样恢复我们的数据库,切记,不管他们能不能答出来,都把他们拒绝了!”

CHENZULAN的博客 3159

sql server下的数据仓库的构建

SQL Server2008/R2 下的数据仓库的构建       本文详细介绍在SQL Server下如何做数据仓库的构建和如何利用数据仓库进行有效的分析,假设读者已经具备相关的理论知识,由于在SQL Server上都是实践过程,因此主要以截图来展示,这样做的好处是读者可直接按照该步骤进行操作,由于之前作者是写在word中的,因此直接截图,好了,话不多说,直接开始。 上面的全部内容是利用数据仓库...

WQ的博客 1万+

SQL Server 数据仓库开发实例

打开“SQL ServerBusiness Intelligence Development Studio”链接:https://pan.baidu.com/s/1rP8ZCSx3BtZ4N4bQRmw98g。通过百度网盘分享的文件:cn_sql_server_2008_r2_enterprise。所用软件:Microsoft SQL Server 2008 R2。实验环境:win 10 ×64。

2301_78696436的博客 1873

快速上手Go数据库操作:使用database/sql包连接数据库的5个步骤

你是否正在学习Go语言,想要快速掌握数据库操作技巧?Go语言的database/sql包提供了简洁而强大的数据库访问接口,让你能够轻松连接和操作各种SQL数据库。在本篇**Go数据库操作指南**中,我将为你详细介绍使用database/sql包连接数据库的5个关键步骤,帮助你快速上手Go数据库编程。 ## 🚀 为什么选择Go的database/sql包? Go的database/sql包是一

gitblog_00426的博客 613

Chat2DB:AI驱动SQL编辑器,开启智能数据库管理新时代

SQL编辑器是帮助数据库开发者编写、执行和调试SQL语句的工具。虽然许多开发环境和网页工具都支持SQL编写,但要做到优秀的SQL编辑器并非易事。一个理想的SQL编辑器不仅需要提供语法高亮、自动补全等基础功能,还需要具备高效的语法校验、错误提示、代码格式化和高性能的执行结果展示能力。

进击的码农 1672

SQL基础理论篇():什么是DBMS / DB / DBS

什么是DB、DBS和DBMS,以及当前主流的DBMS都有哪些,以及它们的类型(重点介绍了几个最流行的RDBMS),另外还介绍了NoSQL的概念

经年藏殊的博客 8415

AI Meets Database: AI4DB and DB4AI

数据库和人工智能可以相互受益。一方面,人工智能可以使数据库更加智能(AI4DB)。例如,传统的经验数据库优化技术(例如,成本估算、连接顺序选择、旋钮调整、索引和视图顾问)无法满足大规模数据库实例、各种应用程序和多样化用户的高性能要求,尤其是在云上。幸运的是,基于学习的技术可以缓解这个问题。另一方面,数据库技术可以优化人工智能模型(DB4AI)。例如,人工智能很难部署,因为它需要开发人员编写复杂的代码和训练复杂的模型。数据库技术可用于降低使用人工智能模型的复杂性,加速人工智能算法,并在数据库内提供人工智能能力

Syntactic Sugar 3519

Python, SQL: Cannot drop database XXX because it is currently in use解决方法

在使用pymssql连接SQL Server时遇到这个问题: pymssql.OperationalError: (3702, b'Cannot drop database "XXX" because it is currently in use.DB-Lib error message 20018, severity 16:\nGeneral SQL Server error: Check messages from the SQL Server\n') 程序: cursor = conn.curs

PianGe_zyl的博客 2615

数据库与数据仓库的区别及关系

数据库是为捕获数据而设计,数据仓库是为分析数据而设计**。数据库和数据仓库都有各自的优势和局限性,它们各自适用于不同的场景。数据库更适合用于快速处理事务性操作,而数据仓库则更适合用于进行复杂的数据分析和查询。它们各自有不同的用途和优化方式,可以根据实际需求选择使用。

qq_43605229的博客 7780
上一篇: 数据库sql语言学习(一)
下一篇: 数据库sql语言学习(三)
Randyhe_
博客等级 码龄9年 27粉丝 55原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值