实用指南:如何在数据库中创建real表 (数据库创建表 real)

数据库是现代软件开发的必要组成部分之一,用于存储和管理数据。在数据库中创建表是设计并组织数据的一种基本方法,而真实的数据类型(real)是其中的一种。

创建real表可以使我们在处理浮点数时更加精准,但实现起来可能不那么简单。在本篇文章中,我们将详细介绍如何在数据库中创建real表以及实现该表的更佳实践。

1. 选择适当的数据库管理系统

我们需要选择适合我们项目的数据库管理系统。在考虑其他因素之前,我们必须确保选择的DBMS支持real类型。常见的DBMS如MySQL、Oracle、SQLite等都支持real类型,但是不同的DBMS实现可能存在一些细微的差异,需要我们做好相关调查和研究。

2. 设计real表

创建real表之前,我们必须先规划好它的结构。我们需要定义表的每个列和它们的数据类型。对于一个real表而言,至少需要考虑以下三个方面:

1)列名:定义唯一标识该列的名称

2)数据类型:定义real类型作为该列的数据类型

3)数据精度:由于浮点数本身存在精度问题,我们必须确定这个表中每个实数的精度。

例如,在MySQL中,创建一个包含ID、Value、Timestamp三列的real表可以使用以下的SQL语句:

CREATE TABLE my_table (

ID INT(10) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,

Value FLOAT(10,3) UNSIGNED NOT NULL,

Timestamp TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP

);

在以上的语句中,Value列指定了包含浮点数的列,并使用了FLOAT类型。我们还指定该属性的总位数为10位,小数位数为3位。这意味着该列可以存储-1000.000 ~ 1000.000的范围内的数字,并具有3位小数精度。值得注意的是,在定义REAL类型时,精度的值可能会因为实数精度产生差异,并且具体的实现细节因不同的DBMS而异。

另一个值得我们注意的地方是定义或更改实数的精度将影响表数据的大小和存储要求。因为实数具有更高的精度,所以它需要更多的存储空间。因此,在设计表时,我们必须均衡精度、存储空间、查询效率等多个因素,实现更佳的性能和可伸缩性。

3. 设定real表的约束和索引

一旦我们创建了real表的设计规划,我们可以开始为该表添加索引和约束。约束限制了表中特定列的值,而索引允许快速查找和检索表的数据。

对于real表而言,我们可能会设置以下的索引和约束:

– 主键约束:对于所有表而言,定义一个主键列始终是更好的做法,这样可以保证每个记录都有一个唯一标识,方便后续的数据访问和更新。对于real表而言,我们可能会设置ID列作为主键列。

– 唯一约束:它确保特定列中的值是唯一的。在real表中,我们可能会为value列添加唯一约束,以保证该列中不存在重复值。

– 外键约束:为确保表之间的数据完整性关系,我们可以使用外键约束,它限制当前表与另一个表中的相关数据。例如,我们可能会将该表与另一个表关联,以确保该表中每个实数在另一个表中都有对应的关联数据。

4. 使用实数列的更佳实践

在real表中使用实数列时,建议遵循以下几个更佳实践:

– 了解精度损失的潜在风险。由于浮点数在存储时具有精度损失的风险,我们需要考虑这些风险,以便在精确计算时避免误差。

– 对数据进行类型转换。在进行浮点数计算时,我们可能需要将实数转换为整数或其他数据类型,以避免精度损失。

– 使用合适的比较运算符。当我们使用浮点数时,在比较两个数是否相等时可能会出现困难。我们需要使用适当的比较运算符,例如 “>=” 和 “<=" ,而非="" "="="" 或="" "!=" 。

– 避免比较非数字值。当我们在进行比较运算时,需要时刻意识到可能发生的非数字值情况,并采取相应的处理措施。

相关问题拓展阅读:

SQL Server数据库–表–新建表时的数据类型都是什么意思啊?

(1) 整数型

整数包罩顷让括bigint、int、allint和tinyint,从标识符的含义就可以看出,它们的表示数范围逐渐缩小。

l bigint:大整数,数范围为 -263 (775808)~263-1 (75807) ,其精度为19,小数位数为0,长度为8字节。

l int:整数,数范围为 -231 (-2,147,483,648) ~(2,147,483,647) ,其精度为10,小数位数为0,长度为4字节。

l allint:短整数,数范围为 -215 (-32768) ~(32767) ,其精度为5,小数位数为0,长度为2字节。

l tinyint:微短整数,数范围为 0~255,长度为1字节,其精度为3,小数位数为0,长度为1字节。

(2) 精确整数型

精确整数型数据由整数部分和小数部分构成,其所有的数字都是有效位,能够以完整的精度存储十进制数。精确整数型包括decimal 和 numeric两类。从功能上说两者完全等价,两者的唯一区别在于decimal不能用于带有identity关键字的列。

声明精确整数型数据的格式是numeric | decimal(p),其中p为精度,s为小数位数,s的缺省值为0。例如指定某列为精确整数型,精度为6,小数位数为3,即decimal(6,3),那么若向某记录的该列赋值56.342689时,该列实际存储的是56.3427。

decimal和numeric可存储从+1 到 1038 –1 的固定精度和小数位的数字数据,它物局们的存储长度随精度变化而变化,最少为5字节,最多为17字节。

l 精度为1~9时,存储字节长度为5;

l 精度为10~19时,存储字节长度为9;

l 精度为20~28时,存储字节长度为13;

l 精度为29~38时,存储字节长度为17。

例如若有声明numeric(8,3),则存储该类型数据需5字节,而若有声明numeric(22,5),则存储该类型数据需13字节。

注意:声明精确整数型数据时,其小数位数必须小于精度;在给精确整数型数据赋值时,必须使所赋数据的整数部分位数不大于列的整数部分的长度。

(3) 浮点型

浮点型也称近似数值型。顾名思义,这种类型不能提供精确表示数据的精度,使用这种类型来存储某些数值时,有可能会损失一些精度,所以它可用于处理取值范围非常大且对精确度要求不是十分高的数值量,如一些统计量。

有两种近似数值数据类型:float和real,两者通常都使用科学计数法表示数据,即形为:尾数E阶数,如5.6432E20,-2.98E10,1.287659E-9等。

l real:使用4字节存储数据,表数范围为-3.40E + 38 到 3.40E + 38,数据精度为7位有效数字。

l float:定义中的n取值范围是1~53,用于指示其精度和存储大小。当n在1~24之间时,实际上是定义了一个real型数据,存储长度为4字节,精度为7位有效数字;当n在25~53之间时,存储长度为8字节,精度为15位有效数字。当缺省n时,代表n在乎乱25~53之间。float型数据的数范围为- 1.79E+308 到 1.79E+308。

(4) 货币型

SQL Server提供了两个专门用于处理货币的数据类型:money和allmoney,它们用十进制数表示货币值。

l money:数据的数范围为-263 (77.5808)~263-1 (7.5807) ,其精度为19,小数位数为4,长度为8字节。money的数的范围与bigint相同,不同的只是money型有4位小数,实际上,money就是按照整数进行运算的,只是将小数点固定在末4位。

l allmoney:数范围为 –231 (-2,147,48.3648) ~(2,147,48.3647) ,其精度为10,小数位数为4,长度为4字节。可见allmoney与int的关系就如同money与bigint的关系。

当向表中插入money或allmoney类型的值时,必须在数据前面加上货币表示符号($),并且数据中间不能有逗号(,);若货币值为负数,需要在符号$的后面加上负号(-)。例如:$15000.32,$680,$-20230.9088都是正确的货币数据表示形式。

(5) 位型

SQL Server中的位(bit)型数据相当于其他语言中的逻辑型数据,它只存储0和1,长度为一个字节。但要注意,SQL Server对表中bit类型列的存储作了优化:如果一个表中有不多于 8 个的bit列,这些列将作为一个字节存储,如果表中有 9 到 16 个 bit 列,这些列将作为两个字节存储,更多列的情况依此类推。

当为bit类型数据赋0时,其值为0,而赋非0(如100)时,其值为1。

若表中某列为bit类型数据,那么该列不允许为空值(有关空值概念本节稍后即做介绍),并且不允许对其建立索引。

(6) 字符型

字符型数据用于存储字符串,字符串中可包括字母、数字和其它特殊符号(如#、@、&等等)。在输入字符串时,需将串中的符号用单引号或双引号括起来,如’abc’、”Abc

SQL Server字符型包括两类:固定长度 (char) 或可变长度 (varchar) 字符数据类型。

l char

定长字符数据类型,其中n定义字符型数据的长度,n在1到8000之间,缺省为1。当表中的列定义为char(n)类型时,若实际要存储的串长度不足n时,则在串的尾部添加空格以达到长度n,所以char(n)的长度为n。例如某列的数据类型为char(20),而输入的字符串为”ahjm1922”,则存储的是字符ahjm1922和12个空格。若输入的字符个数超出了n,则超出的部分被截断。

l varchar

变长字符数据类型,其中n的规定与定长字符型char中n完全相同,但这里n表示的是字符串可达到的更大长度。varchar(n)的长度为输入的字符串的实际字符个数,而不一定是n。例如,表中某列的数据类型为varchar(100),而输入的字符串为”ahjm1922”,则存储的就是字符ahjm1922,其长度为8字节。

当列中的字符数据值长度接近一致时,例如姓名,此时可使用 char;而当列中的数据值长度显著不同时,使用varchar较为恰当,可以节省存储空间。

(7) Unicode字符型

Unicode是“统一字符编码标准”,用于支持国际上非英语语种的字符数据的存储和处理。SQL Server的Unicode字符型可以存储Unicode标准字符集定义的各种字符。

Unicode字符型包括nchar和nvarchar两类。nchar是固定长度 Unicode 数据的数据类型,nvarchar 是可变长度 Unicode 数据的数据类型,二者均使用 UNICODE UCS-2 字符集。

l nchar:nchar为包含n个字符的固定长度 Unicode 字符型数据,n 的值在 1 与 4,000 之间,缺省为1。长度为2n字节。若输入的字符串长度不足n,将以空白字符补足。

l nvarchar:nvarchar为最多包含n个字符的可变长度 Unicode 字符型数据,n 的值在 1 与 4,000之间,缺省为1。长度是所输入字符个数的两倍。

实际上,nchar、nvarchar与char、varchar的使用非常相似,只是字符集不同(前者使用Unicode字符集,后者使用ASCII字符集)。

(8) 文本型

当需要存储大量的字符数据,如较长的备注、日志信息等等,字符型数据的最长8000个字符的限制可能使它们不能满足这种应用需求,此时可使用文本型数据。

文本型包括text和ntext两类,分别对应ASCII字符和Unicode字符。text类型可以表示更大长度为(2,147,483,647) 个字符,其数据的存储长度为实际字符数个字节。ntext可表示更大长度为(1,073,741,823) 个Unicode字符,其数据的存储长度是实际字符个数的两倍(以字节为单位)。

(9) 二进制型

二进制数据类型表示的是位数据流,包括binary(固定长度)和varbinary(可变长度)两种。

l binary :固定长度的n个字节二进制数据。n取值范围为 1 到 8,000,缺省为1。binary(n)数据的存储长度为 n+4 字节。若输入的数据长度小于n,则不足部分用0填充;若输入的数据长度大于n,则多余部分被截断。

输入二进制值时,在数据前面要加上0x,可以用的数字符号为0—9、A—F(字母大小写均可)。因此,二进制数据有时也被称为十六进制数据。例如0xFF、0x12A0分别表示值FF和12A0。因为每字节的数更大为FF,故在“0x”格式的数据每两位占1个字节。

l varbinary :n个字节变长二进制数据。n取值范围为 1 到 8,000,缺省为1。varbinary(n)数据的存储长度为实际输入数据长度+4个字节。

(10) 日期时间类型

日期时间类型数据用于存储日期和时间信息,包括datetime和alldatetime两类。

l datetime:datetime类型可表示的日期范围从 1753 年 1 月 1 日到 9999 年 12 月 31 日的日期和时间数据,精确度为百分之三秒(3.33 毫秒或 0.00333 秒),例如1到3毫秒的值都表示为0毫秒,4到6毫秒的值都表示为4毫秒。

datetime类型数据长度为8字节,日期和时间分别使用4个字节存储。前4 字节用于存储datetime类型数据中距1900 年 1 月 1 日的天数,为正数表示日期在1900年1月1日之后,为负数则表示日期在1900年1月1日之前。后4个字节用于存储datetime类型数据中距12:00(24小时制)的毫秒数。

用户以字符串形式输入datetime类型数据,系统也以字符串形式输出datetime类型数据,将用户输入到系统以及系统输出的datetime类型数据的字符串形式称为datetime类型数据的“外部形式”,而将datetime在系统内的存储形式称为“内部形式”,SQL Server负责datetime类型数据的两种表现形式之间的转换,包括合法性检查。

用户给出datetime类型数据值时,日期部分和时间部分分别给出。

日期部分的表示形式常用的格式如下:

年 月 日 2023 Jan 20、2023 Janary 20

年 日 月Jan

月 日年 Jan、Jan 20,2023、Jan 20,01

月 年 日 Jan

日 月年 20 Jan 2023、20 Jan,2023

日 年 月Jan

年(4位数) 2023表示2023年1月1日

年月日、010120

月/日/年 01/20/01、1/20/01、01/20/2023、1/20/2023

月-日-年、、、

月.日.年 01.20.01、1.20.01、01.20.2023、1.20.2023

说明:年可用4位或2位表示,月和日可用1位或2位表示。

时间部分常用的表示格式如下:

时:分 10:20、08:05

时:分:秒 20:15:18、20:15:18.2

时:分:秒:毫秒 20:15:18:200

时:分AM|PM 10:10AM、10:10PM

l alldatetime:alldatetime类型数据可表示从 1900 年 1 月 1 日到 2023 年 6 月 6 日的日期和时间,数据精确到分钟,即29.998 秒或更低的值向下舍入为最接近的分钟,29.999 秒或更高的值向上舍入为最接近的分钟。Smalldatetime类型数据的存储长度为4字节,前2个字节用来存储alldatetime类型数据中日期部分距1900年1月1日之后的天数;后2个字节用来存储alldatetime类型数据中时间部分距中午12点的分钟数。

用户输入alldatetime类型数据的格式与datetime类型数据完全相同,只是它们的内部存储可能不相同。

(11) 时间戳型

标识符是timestamp。若创建表时定义一个列的数据类型为时间戳类型,那么每当对该表加入新行或修改已有行时,都由系统自动将一个计数器值加到该列,即将原来的时间戳值加上一个增量。记录timestamp列的值实际上反映了系统对该记录修改的相对(相对于其他记录)顺序。一个表只能有一个timestamp 列。Timestamp类型数据的值实际上是二进制格式数据,其长度为8字节。

(12) 图象数据类型

标识符是image,它用于存储图片、照片等。实际存储的是可变长度二进制数据,介于 0 与(2,147,483,647) 字节之间。

(13) 其它数据类型

除了上面所介绍的常用数据类型外,SQL Server 2023还提供了其它几种数据类型:cursor、sql_variant、table和uniqueidentifier。

Cursor:是游标数据类型,用于创建游标变量或定义存储过程的输出参数。

Sql_variant:是一种存储 SQL Server 支持的各种数据类型(除text、ntext、image、timestamp 和 sql_variant 外)值的数据类型。Sql_variant的更大长度可达 8016 字节。

Table:是用于存储结果集的数据类型,结果集可以供后续处理。

Uniqueidentifier:是唯一标识符类型。系统将为这种类型的数据产生唯一标识值,它是一个16字节长的二进制数据。

bigint 长整形,8长度

binary 二进制

bit 1,0 读取的时候一般会被转换成true,false

char 字符型(固定占用空间)如char(10)

datatime 日期类型,8

decimal 也是数字类型

float 单精度,凳扒8

image 保存图片(不过系统有很多图片很大图片不建议使用)image 数据类型用来存储变长的二进制数据,更大可达231-1或大约20亿枣模昌字节

int 整形,占4

money 也可以是单精度类型,保存的时候以钱的显示方式

nchar 可变长字符

ntext 可变长的Text,保存文章内容使用的

numeric 类似decimal

nvarchar 可变长的字符,常用于保存中文字符

real 类似float,从-3.40^38到3.40^38之间的浮点数字数据。在SQL Server中,real的同义词为float(24)。

alldatetime 从1900年1月1日到2023年6月6日的日期和时间数据,精确到分钟。

allint 小整形,2位 从-2^15(-32,768)到2^15-1(32,767)的整数数据。

allmoney 都是money的一半大小

sql_variant

text 保存大容量的字符串

timestamp 特殊数据型,timestamp 数据类型是一种特殊的数据类型,用来创建一个数据库范围内的唯一数码。 一个表中只能有一个timestamp列。每次插入或修改一行时,timestamp列的值都会改变。尽管它的名字中有“time”, 但timestamp列不是人们可识别的日期。在一个数据库里,timestamp值是唯一的

tinyint tinyint 数据类型能存储从0到255 之间的整数。它在你只打算存储有限数目的数值时很有用。 这种数据类型在数据库中占用1 个字节

uniqueidentifier Uniqueidentifier数据类型用来存储一个全局唯一标识符,即GUID。GUID确码租实是全局唯一的。这个数几乎没有机会在另一个系统中被重建。可以使用NEWID 函数或转换一个字符串为唯一标识符来初始化具有唯一标识符的列

varbinary varbinary 数据类型用来存储可达8000 字节长的变长的二进制数据。当输入表的内容大小可变时,你应该使用这种数据类型

varchar varchar数据类型,同char类型一样,用来存储非统一编码型字符数据。与char 型不一样,此数据类型为变长。当定义一列为该数据类型时,你要指定该列的更大长度。 它与char数据类型更大的区别是,存储的长度不是列长,而是数据的长度

哎好多呀

不过懂得一些,差不多其他也就知道了

android 数据库建好后,怎么建表

SQLite 创建表

下面是教程来自于android学习手册,android学习手册包含9个章节,108个例子,源码文档随便看,例子都是可交互,可运行,源码采用android studio目录结构,高亮显示代码,文档都采用文档结构图显示,可以快速定位。360手机助手中下载,图标上有贝壳

SQLite 的 CREATE TABLE 语句用于在任何给定的数据库创建一个新表。创建基本表,涉及到命名表、定义列及每一列的数据类型。

语法

CREATE TABLE 语句的基本语法如下:

CREATE TABLE database_name.table_name(

column1 datatype PRIMARY KEY(one or more columns),

column2 datatype,

column3 datatype,

…..

columnN datatype,

);

CREATE TABLE 是告诉数据库系统创建一个新表的关键字。CREATE TABLE 语句后跟着表的唯一的名称或标识。您也可以选择指定带有table_name 的 database_name。

实例

下面是一个实例,它创建了一个 COMPANY 表,ID 作为主键,NOT NULL 的约束表示在表中创建纪录时这些字段不能为 NULL:

sqlite> CREATE TABLE COMPANY(

ID INT PRIMARY KEY NOT NULL,

NAMETEXT NOT NULL,

AGEINT NOT NULL,

ADDRESSCHAR(50),

SALARYREAL

);

让我们再创建一个表,我们将在随后章节的练习中使用:

sqlite> CREATE TABLE DEPARTMENT(

ID INT PRIMARY KEY NOT NULL,

DEPTCHAR(50) NOT NULL,

EMP_IDINT NOT NULL

);

您可以使用 SQLIte 命令中的 .tables 命令来验证表是否已成功创建,该命令用于列出附加数据库中的所有表。

sqlite>.tables

COMPANY DEPARTMENT

在这里,可以看到我们刚创建的两张表 COMPANY、 DEPARTMENT。

您可以使用 SQLite .schema 命令得到表的完整信息,如下所示:

sqlite>.schema COMPANY

CREATE TABLE COMPANY(

ID INT PRIMARY KEY NOT NULL,

NAMETEXT NOT NULL,

AGEINT NOT NULL,

ADDRESSCHAR(50),

SALARYREAL

);

创建数据库的方法有哪些?创建表的方法有哪些?

1、使用数据库管理工具创建。

2、使用数据库脚本创建。

使用数据库创建命令CREATE TABLE 表名(

字段名1 字段类型,

字段名2 字段类型);

使用数据库自带可视化工具创建

方法一

1、打开企业管理器

在MSSQL2023(SQL Server2023及以上版本)中,使用可视化企业管理器创建数据库比较常见。

打开企业管理器——登录数据库服务器;

数据库右键——新建数据库。

2、设置数据库参数

打开新建数据库主页,输入数据库名称即可,其他的选项以系统默认为准。

3、新建表格

数据库必须要有数据表才能称得上是完整的数据库。展开新建的数据库——表——新建表,输入字段名称以及字段类型,即可创建数据表。

4、创建规则

数据库有数据库的规则,比如主键,唯一值,外键等等。最常见的就是主键。

可视化的主键创建比较简单,打开数据表——设计——在需要设置主键的字段前面右键,设置主键即可指定主键。

5、数据录入

数据库可视化创建到此就完成了,数据的录入也比较简单,右键数据表——编辑前200行,直接在数据表输入数据即可。

如图:

方法二

1、新建查询

打开新建查询,输入一下代码:新建数据库

create dabebase 搜狗指南

on

(

name=’BDID’,

filename=’BDID.dbf’,

size=1024,

maxsize=1024,

filegrowth=1024,

)

log on

(

name=’b’,

filename=’b.ldf’,

size=1024,

maxsize=2023,

filegrowth=1024

)

如图:

2、执行查询

点击工具栏执行,创建数据库。

如图:

3、新建数据表

使用查询窗口,新建一张用户基本信息数据表:

create table Users

(

id int primary key identity(1,1),

name nvarchar(20) not null,

age int check(age>0),

sex char(4) not null,

telphone nvarchar(15),

nvarchar(100)

)

如图:

4、插入数据

在步骤3中新建的数据表中,已经创建了主键规则,年龄规则以及性别长度。

使用insert插入一行数据:

insert into Users(name,age,sex,telphone,

)

values(‘张三’,25,’男’,”,’中国云南昆明市’)

执行并写入数据表。

方法三

1、导入数据

在MSSQL中,点击数据库右键——附加,找到数据库源文件,附加到数据库管理器中即可。

2、插入与修改

关于数据库创建表 real的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。


数据运维技术 » 实用指南:如何在数据库中创建real表 (数据库创建表 real)