SMALLINT-小整数-MySQL指令 (smallint在数据库中代表什么)

教程大全 2025-07-13 10:55:30 浏览

MySQL指令: SMALLINT(小整数)

在MySQL中,SMALLINT是一种整数数据类型,用于存储较小范围的整数值。它占用2个字节的存储空间,可以存储的范围为-32768到32767。

创建SMALLINT列

要在MySQL数据库中创建一个SMALLINT列,可以使用以下语法:

CREATE TABLE 表名 (列名 SMALLINT);

例如,我们可以创建一个名为”employees”的表,其中包含一个名为”age”的SMALLINT列:

CREATE TABLE employees (age SMALLINT);

插入SMALLINT值

要向SMALLINT列插入值,可以使用INSERT INTO语句。以下是一个示例:

INSERT INTO employees (age) VALUES (25);

这将在”employees”表的”age”列中插入值25。

查询SMALLINT值

要查询SMALLINT列的值,可以使用SELECT语句。以下是一个示例:

SELECT age FROM employees;

这将返回”employees”表中”age”列的所有值。

使用SMALLINT的优势

使用SMALLINT作为数据类型有几个优势:

示例代码

以下是一个使用SMALLINT的示例代码:

CREATE TABLE Products (id INT,name VARCHAR(50),quantity SMALLINT);INSERT INTO products (id, name, quantity) VALUES (1, 'Product A', 10);INSERT INTO products (id, name, quantity) VALUES (2, 'Product B', 5);INSERT INTO products (id, name, quantity) VALUES (3, 'Product C', 8);SELECT * FROM products;

这个示例代码创建了一个名为”products”的表,其中包含一个SMALLINT列”quantity”。然后,它插入了几个产品的数据,并查询了整个表的内容。

总结

SMALLINT

SMALLINT是MySQL中的一种整数数据类型,用于存储较小范围的整数值。它占用2个字节的存储空间,可以节省存储空间并提高查询性能。使用SMALLINT可以限制取值范围,确保存储的数据在一定范围内。

如果您正在寻找可靠的香港 服务器 ,树叶云是您的首选。我们提供高性能的香港服务器,可满足您的各种需求。请访问我们的官网了解更多信息:。


sql2000字段类型有哪些?

(1)char、varchar、text和nchar、nvarchar、ntext char和varchar的长度都在1到8000之间,它们的区别在于char是定长字符数据,而varchar是变长字符数据。 所谓定长就是长度固定的,当输入的数据长度没有达到指定的长度时将自动以英文空格在其后面填充,使长度达到相应的长度;而变长字符数据则不会以空格填充。 text存储可变长度的非Unicode数据,最大长度为2^31-1(2,147,483,647)个字符。 后面三种数据类型和前面的相比,从名称上看只是多了个字母n,它表示存储的是Unicode数据类型的字符。 写过程序的朋友对Unicode应该很了解。 字符中,英文字符只需要一个字节存储就足够了,但汉字众多,需要两个字节存储,英文与汉字同时存在时容易造成混乱,Unicode字符集就是为了解决字符集这种不兼容的问题而产生的,它所有的字符都用两个字节表示,即英文字符也是用两个字节表示。 nchar、nvarchar的长度是在1到4000之间。 和char、varchar比较:nchar、nvarchar则最多存储4000个字符,不论是英文还是汉字;而char、varchar最多能存储8000个英文,4000个汉字。 可以看出使用nchar、nvarchar数据类型时不用担心输入的字符是英文还是汉字,较为方便,但在存储英文时数量上有些损失。 (2)datetime和smalldatetime datetime:从1753年1月1日到9999年12月31日的日期和时间数据,精确到百分之三秒。 smalldatetime:从1900年1月1日到2079年6月6日的日期和时间数据,精确到分钟。 (3)bitint、int、smallint、tinyint和bit bigint:从-2^63(-)到2^63-1()的整型数据。 int:从-2^31(-2,147,483,648)到2^31-1(2,147,483,647)的整型数据。 smallint:从-2^15(-32,768)到2^15-1(32,767)的整数数据。 tinyint:从0到255的整数数据。 bit:1或0的整数数据。 (4)decimal和numeric 这两种数据类型是等效的。 都有两个参数:p(精度)和s(小数位数)。 p指定小数点左边和右边可以存储的十进制数字的最大个数,p必须是从 1到38之间的值。 s指定小数点右边可以存储的十进制数字的最大个数,s必须是从0到p之间的值,默认小数位数是0。 (5)float和real float:从-1.79^308到1.79^308之间的浮点数字数据。 real:从-3.40^38到3.40^38之间的浮点数字数据。 在SQL Server中,real的同义词为float(24)。 数据库定义到char类型的字段时,不知道大家是否会犹豫一下,到底选char、nchar、varchar、nvarchar、text、ntext中哪一种呢?结果很可能是两种,一种是节俭人士的选择:最好是用定长的,感觉比变长能省些空间,而且处理起来会快些,无法定长只好选用定长,并且将长度设置尽可能地小;另一种是则是觉得无所谓,尽量用可变类型的,长度尽量放大些。 鉴于现在硬件像萝卜一样便宜的大好形势,纠缠这样的小问题实在是没多大意义,不过如果不弄清它,总觉得对不起劳累过度的CPU和硬盘。 下面开始了(以下说明只针对sqlserver有效): 1、当使用非unicode时慎用以下这种查询:select f from t where f = Nxx原因:无法利用到索引,因为数据库会将f先转换到unicode再和Nxx比较 2、char 和相同长度的varchar处理速度差不多(后面还有说明) 3、varchar的长度不会影响处理速度!!!(看后面解释) 4、索引中列总长度最多支持总为900字节,所以长度大于900的varchar、char和大于450的nvarchar,nchar将无法创建索引 5、text、ntext上是无法创建索引的 6、O/R Mapping中对应实体的属性类型一般是以string居多,用char[]的非常少,所以如果按mapping的合理性来说,可变长度的类型更加吻合 7、一般基础资料表中的name在实际查询中基本上全部是使用like %xx%这种方式,而这种方式是无法利用索引的,所以如果对于此种字段,索引建了也白建 8、其它一些像remark的字段则是根本不需要查询的,所以不需要索引 9、varchar的存放和string是一样原理的,即length {block}这种方式,所以varchar的长度和它实际占用空间是无关的 10、对于固定长度的字段,是需要额外空间来存放NULL标识的,所以如果一个char字段中出现非常多的NULL,那么很不幸,你的占用空间比没有NULL的大(但这个大并不是大太多,因为NULL标识是用bit存放的,可是如果你一行中只有你一个NULL需要标识,那么你就白白浪费1byte空间了,罪过罪过!),这时候,你可以使用特殊标识来存放,如:NV 11、同上,所以对于这种NULL查询,索引是无法生效的,假如你使用了NULL标识替代的话,那么恭喜你,你可以利用到索引了 12、char和varchar的比较成本是一样的,现在关键就看它们的索引查找的成本了,因为查找策略都一样,因此应该比较谁占用空间小。 在存放相同数量的字符情况下,如果数量小,那么char占用长度是小于varchar的,但如果数量稍大,则varchar完全可能小于char,而且要看实际填充数值的充实度,比如说varchar(3)和char(3),那么理论上应该是char快了,但如果是char(10)和varchar(10),充实度只有30%的情况下,理论上就应该是varchar快了。 因为varchar需要额外空间存放块长度,所以只要length(1-fillfactor)大于这个存放空间(好像是2字节),那么它就会比相同长度的char快了。 13、nvarchar比varchar要慢上一些,而且对于非unicode字符它会占用双倍的空间,那么这么一种类型推出来是为什么呢?对,就是为了国际化,对于unicode类型的数据,排序规则对它们是不起作用的,而非unicode字符在处理不同语言的数据时,必须指定排序规则才能正常工作,所以n类型就这么一点好处。 总结: 1、如果数据量非常大,又能100%确定长度且保存只是ansi字符,那么char 2、能确定长度又不一定是ansi字符或者,那么用nchar; 3、不确定长度,要查询且希望利用索引的话,用nvarchar类型吧,将它们设到400; 4、不查询的话没什么好说的,用nvarchar(4000) 5、性格豪爽的可以只用3和4,偶尔用用1,毕竟这是一种额外说明,等于告诉别人说,我一定需要长度为X位的数据

FETCH (Transact-SQL) 通过 Transact-SQL 服务器游标检索特定行。 Transact-SQL 语法约定语法 FETCH[ [ NEXT | PRIOR | FIRST | LAST| ABSOLUTE { n | @nvar }| RELATIVE { n | @nvar }]FROM] { { [ GLOBAL ] cursor_name } | @cursor_variable_name } [ INTO @variable_name [ ,...n ] ] 参数 NEXT 紧跟当前行返回结果行,并且当前行递增为返回行。 如果 FETCH NEXT 为对游标的第一次提取操作,则返回结果集中的第一行。 NEXT 为默认的游标提取选项。 PRIOR 返回紧邻当前行前面的结果行,并且当前行递减为返回行。 如果 FETCH PRIOR 为对游标的第一次提取操作,则没有行返回并且游标置于第一行之前。 FIRST 返回游标中的第一行并将其作为当前行。 LAST 返回游标中的最后一行并将其作为当前行。 ABSOLUTE { n | @nvar} 如果 n 或 @nvar 为正,则返回从游标头开始向后的第 n 行,并将返回行变成新的当前行。 如果 n 或 @nvar 为负,则返回从游标末尾开始向前的第 n 行,并将返回行变成新的当前行。 如果 n 或 @nvar 为 0,则不返回行。 n 必须是整数常量,并且 @nvar 的数据类型必须为 smallint、tinyint 或 int。 RELATIVE { n | @nvar} 如果 n 或 @nvar 为正,则返回从当前行开始向后的第 n 行,并将返回行变成新的当前行。 如果 n 或 @nvar 为负,则返回从当前行开始向前的第 n 行,并将返回行变成新的当前行。 如果 n 或 @nvar 为 0,则返回当前行。 在对游标进行第一次提取时,如果在将 n 或 @nvar 设置为负数或 0 的情况下指定 FETCH RELATIVE,则不返回行。 n 必须是整数常量,@nvar 的数据类型必须为 smallint、tinyint 或 int。 GLOBAL 指定 cursor_name 是指全局游标。 cursor_name 要从中进行提取的打开的游标的名称。 如果全局游标和局部游标都使用 cursor_name 作为它们的名称,那么指定 GLOBAL 时,cursor_name 指的是全局游标;未指定 GLOBAL 时,cursor_name 指的是局部游标。 @ cursor_variable_name 游标变量名,引用要从中进行提取操作的打开的游标。 INTO @variable_name[ ,...n] 允许将提取操作的列数据放到局部变量中。 列表中的各个变量从左到右与游标结果集中的相应列相关联。 各变量的数据类型必须与相应的结果集列的数据类型匹配,或是结果集列数据类型所支持的隐式转换。 变量的数目必须与游标选择列表中的列数一致。 备注 如果 SCROLL 选项未在 ISO 样式的 DECLARE CURSOR 语句中指定,则 NEXT 是唯一支持的 FETCH 选项。 如果在 ISO 样式的 DECLARE CURSOR 语句中指定了 SCROLL 选项,则支持所有 FETCH 选项。 如果使用 Transact-SQL DECLARE 游标扩展插件,则应用下列规则: 如果指定了 FORWARD_ONLY 或 FAST_FORWARD,则 NEXT 是唯一受支持的 FETCH 选项。 如果未指定 DYNAMIC、FORWARD_ONLY 或 FAST_FORWARD 选项,并且指定了 KEYSet、STATIC 或 SCROLL 中的某一个,则支持所有 FETCH 选项。 DYNAMIC SCROLL 游标支持除 ABSOLUTE 以外的所有 FETCH 选项。 @@FETCH_STATUS 函数报告上一个 FETCH 语句的状态。 相同的信息记录在由 sp_describe_cursor 返回的游标中的 fetch_status 列中。 这些状态信息应该用于在对由 FETCH 语句返回的数据进行任何操作之前,以确定这些数据的有效性。 有关详细信息,请参阅 @@FETCH_STATUS (Transact-SQL)。 权限 FETCH 权限默认授予任何有效的用户。 示例 A. 在简单的游标中使用 FETCH 以下示例为 表中姓氏以字母 B 开头的行声明了一个简单的游标,并使用 FETCH NEXT 逐个提取这些行。 FETCH 语句以单行结果集形式返回在 DECLARE CURSOR 中指定的列的值。 复制代码 USE AdventureWorks GO DECLARE contact_cursor CURSOR FOR SELECT LastName FROM WHERE LastName LIKE B% ORDER BY LastName OPEN contact_cursor -- Perform the first fetch. FETCH NEXT FROM contact_cursor -- Check @@FETCH_STATUS to see if there are any more rows to fetch. WHILE @@FETCH_STATUS = 0 BEGIN-- This is executed as long as the previous fetch NEXT FROM contact_cursor END CLOSE contact_cursor DEALLOCATE contact_cursor GOB. 使用 FETCH 将值存入变量 以下示例与示例 A 相似,但 FETCH 语句的输出存储于局部变量而不是直接返回到客户端。 PRINT 语句将变量组合成单一字符串并将其返回到客户端。 复制代码 USE AdventureWorks GO -- Declare the variables to store the values returned by FETCH. DECLARE @LastName varchar(50), @FirstName varchar(50) DECLARE contact_cursor CURSOR FOR SELECT LastName, FirstName FROM WHERE LastName LIKE B% ORDER BY LastName, FirstName OPEN contact_cursor -- Perform the first fetch and store the values in variables. -- Note: The variables are in the same order as the columns -- in the SELECT statement. FETCH NEXT FROM contact_cursor INTO @LastName, @FirstName -- Check @@FETCH_STATUS to see if there are any more rows to fetch. WHILE @@FETCH_STATUS = 0 BEGIN-- Concatenate and display the current values in the Contact Name: + @FirstName + + @LastName-- This is executed as long as the previous fetch NEXT FROM contact_cursorINTO @LastName, @FirstName END CLOSE contact_cursor DEALLOCATE contact_cursor GOC. 声明 SCROLL 游标并使用其他 FETCH 选项 以下示例创建一个 SCROLL 游标,使其通过 LAST、PRIOR、RELATIVE 和 ABSOLUTE 选项支持全部滚动功能。

mysql建立下面基本表的时候,出现1064错误。希望高手能帮个忙,我是新手。

CREATE TABLE Student(Sno CHAR(9) PRIMARY KEY, /*列级完整性约束条件*/Sname CHAR(20) UNIQUE, /*列级完整性约束条件*/SsexCHAR(2),Sage SMALLINT);你的Ssex char(2)后面的逗号错了,应该是英文的逗号。

本文版权声明本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请联系本站客服,一经查实,本站将立刻删除。

发表评论

热门推荐