datatypesql
‘壹’ sql 中的数据类型有那些请讲明白些
这个太多了,推荐你还是看看Sql Sever 2000的基础教程
数据类型
在 Microsoft® SQL Server™ 中,每个列、局部变量、表达式和参数都有一个相关的数据类型,这是指定对象可持有的数据类型(整型、字符、money 等等)的特性。SQL Server 提供系统数据类型集,定义了可与 SQL Server 一起使用的所有数据类型。下面列出系统提供的数据类型集。
可以定义用户定义的数据类型,其是系统提供的数据类型的别名。有关用户定义的数据类型的更多信息,请参见 sp_addtype 和创建用户定义的数据类型。
当两个具有不同数据类型、排序规则、精度、小数位数或长度的表达式通过运算符进行组合时:
通过将数据类型的优先顺序规则应用到输入表达式的数据类型来确定所得值的数据类型。有关更多信息,请参见数据类型的优先顺序。
如果结果数据类型为 char、varchar、text、nchar、nvarchar 或 ntext,则结果值的排序规则由排序规则的优先顺序规则决定。有关更多信息,请参见排序规则的优先顺序。
结果的精度、小数位数及长度取决于输入表达式的精度、小数位数及长度。有关更多信息,请参见精度、小数位数和长度。
SQL Server 为 SQL-92 兼容性提供了数据类型同义词。有关更多信息,请参见数据类型同义词。
精确数字
整数
bigint
从 -2^63 (-9,223,372,036,854,775,808) 到 2^63-1 (9,223,372,036,854,775,807) 的整型数据(所有数字)。
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
bit
1 或 0 的整数数据。
decimal 和 numeric
decimal
从 -10^38 +1 到 10^38 –1 的固定精度和小数位的数字数据。
numeric
功能上等同于 decimal。
money 和 smallmoney
money
货币数据值介于 -2^63 (-922,337,203,685,477.5808) 与 2^63 - 1 (+922,337,203,685,477.5807) 之间,精确到货币单位的千分之十。
smallmoney
货币数据值介于 -214,748.3648 与 +214,748.3647 之间,精确到货币单位的千分之十。
近似数字
float
浮点精度数字数据,有效值为:从 -1.79E + 308 到 -2.23E - 308,0 和 2.23E + 308 到 1.79E + 308。
real
浮点精度数字数据,有效值为:从 -3.40E + 38 到 -1.18E - 38,0 和 1.18E - 38 到 3.40E + 38。
datetime 和 smalldatetime
datetime
从 1753 年 1 月 1 日到 9999 年 12 月 31 日的日期和时间数据,精确到百分之三秒(或 3.33 毫秒)。
smalldatetime
从 1900 年 1 月 1 日到 2079 年 6 月 6 日的日期和时间数据,精确到分钟。
字符串
char
固定长度的非 Unicode 字符数据,最大长度为 8,000 个字符。
varchar
可变长度的非 Unicode 数据,最长为 8,000 个字符。
text
可变长度的非 Unicode 数据,最大长度为 2^31 - 1 (2,147,483,647) 个字符。
Unicode 字符串
nchar
固定长度的 Unicode 数据,最大长度为 4,000 个字符。
nvarchar
可变长度 Unicode 数据,其最大长度为 4,000 字符。sysname 是系统提供用户定义的数据类型,在功能上等同于 nvarchar(128),用于引用数据库对象名。
ntext
可变长度 Unicode 数据,其最大长度为 2^30 - 1 (1,073,741,823) 个字符。
二进制字符串
binary
固定长度的二进制数据,其最大长度为 8,000 个字节。
varbinary
可变长度的二进制数据,其最大长度为 8,000 个字节。
image
可变长度的二进制数据,其最大长度为 2^31 - 1 (2,147,483,647) 个字节。
其它数据类型
cursor
游标的引用。
sql_variant
一种存储 SQL Server 支持的各种数据类型(text、ntext、timestamp 和 sql_variant 除外)值的数据类型。
table
一种特殊的数据类型,存储供以后处理的结果集。
timestamp
数据库范围的唯一数字,每次更新行时也进行更新。
uniqueidentifier
全局唯一标识符 (GUID)。
回答者:wfchenjin - 大魔法师 九级 3-10 17:48
--------------------------------------------------------------------------------
SQL SERVER的数据类型
数据类弄是数据的一种属性,表示数据所表示信息的类型。任何一种计算机语言都定义了自己的数据类型。当然,不同的程序语言都具有不同的特点,所定义的数据类型的各类和名称都或多或少有些不同。SQLServer 提供了 25 种数据类型:
·Binary [(n)]
·Varbinary [(n)]
·Char [(n)]
·Varchar[(n)]
·Nchar[(n)]
·Nvarchar[(n)]
·Datetime
·Smalldatetime
·Decimal[(p[,s])]
·Numeric[(p[,s])]
·Float[(n)]
·Real
·Int
·Smallint
·Tinyint
·Money
·Smallmoney
·Bit
·Cursor
·Sysname
·Timestamp
·Uniqueidentifier
·Text
·Image
·Ntext (1)二进制数据类型
二进制数据包括 Binary、Varbinary 和 Image
Binary 数据类型既可以是固定长度的(Binary),也可以是变长度的。
Binary[(n)] 是 n 位固定的二进制数据。其中,n 的取值范围是从 1 到 8000。其存储窨的大小是 n + 4 个字节。
Varbinary[(n)] 是 n 位变长度的二进制数据。其中,n 的取值范围是从 1 到 8000。其存储窨的大小是 n + 4个字节,不是n 个字节。
在 Image 数据类型中存储的数据是以位字符串存储的,不是由 SQL Server 解释的,必须由应用程序来解释。例如,应用程序可以使用BMP、TIEF、GIF 和 JPEG 格式把数据存储在 Image 数据类型中。 (2)字符数据类型
字符数据的类型包括 Char,Varchar 和 Text
字符数据是由任何字母、符号和数字任意组合而成的数据。
Varchar 是变长字符数据,其长度不超过 8KB。Char 是定长字符数据,其长度最多为 8KB。超过 8KB 的ASCII 数据可以使用Text数据类型存储。例如,因为 Html 文档全部都是 ASCII 字符,并且在一般情况下长度超过 8KB,所以这些文档可以 Text 数据类型存储在SQL Server 中。 (3)Unicode 数据类型
Unicode 数据类型包括 Nchar,Nvarchar 和Ntext
在 Microsoft SQL Server 中,传统的非 Unicode 数据类型允许使用由特定字符集定义的字符。在 SQL Server安装过程中,允许选择一种字符集。使用 Unicode 数据类型,列中可以存储任何由Unicode 标准定义的字符。在 Unicode 标准中,包括了以各种字符集定义的全部字符。使用Unicode数据类型,所战胜的窨是使用非 Unicode 数据类型所占用的窨大小的两倍。
在 SQL Server 中,Unicode 数据以 Nchar、Nvarchar 和 Ntext 数据类型存储。使用这种字符类型存储的列可以存储多个字符集中的字符。当列的长度变化时,应该使用Nvarchar 字符类型,这时最多可以存储 4000 个字符。当列的长度固定不变时,应该使用 Nchar 字符类型,同样,这时最多可以存储4000 个字符。当使用 Ntext 数据类型时,该列可以存储多于 4000 个字符。 (4)日期和时间数据类型
日期和时间数据类型包括 Datetime 和 Smalldatetime两种类型
日期和时间数据类型由有效的日期和时间组成。例如,有效的日期和时间数据包括“4/01/98 12:15:00:00:00 PM”和“1:28:29:15:01AM 8/17/98”。前一个数据类型是日期在前,时间在后一个数据类型是霎时间在前,日期在后。在 Microsoft SQL Server中,日期和时间数据类型包括Datetime 和 Smalldatetime 两种类型时,所存储的日期范围是从 1753 年 1 月 1 日开始,到9999 年12 月 31 日结束(每一个值要求 8 个存储字节)。使用 Smalldatetime 数据类型时,所存储的日期范围是 1900年 1 月 1日 开始,到 2079 年 12 月 31 日结束(每一个值要求 4 个存储字节)。
日期的格式可以设定。设置日期格式的命令如下:
Set DateFormat {format | @format _var|
其中,format | @format_var 是日期的顺序。有效的参数包括 MDY、DMY、YMD、YDM、MYD 和 DYM。在默认情况下,日期格式为MDY。
例如,当执行 Set DateFormat YMD 之后,日期的格式为年 月 日 形式;当执行 Set DateFormat DMY 之后,日期的格式为日 月有年 形式 (5)数字数据类型
数字数据只包含数字。数字数据类型包括正数和负数、小数(浮点数)和整数
整数由正整数和负整数组成,例如 39、25、0-2 和 33967。在 Micrsoft SQL Server 中,整数存储的数据类型是 Int,Smallint和 Tinyint。Int 数据类型存储数据的范围大于 Smallint 数据类型存储数据的范围,而 Smallint 据类型存储数据的范围大于Tinyint 数据类型存储数据的范围。使用 Int 数据狗昔存储数据的范围是从 -2 147 483 648 到 2 147 483 647(每一个值要求4个字节存储空间)。使用 Smallint 数据类型时,存储数据的范围从 -32 768 到 32 767(每一个值要求2个字节存储空间)。使用Tinyint 数据类型时,存储数据的范围是从0 到255(每一个值要求1个字节存储空间)。
精确小娄数据在 SQL Server 中的数据类型是 Decimal 和 Numeric。这种数据所占的存储空间根据该数据的位数后的位数来确定。
在SQL Server 中,近似小数数据的数据类型是 Float 和 Real。例如,三分之一这个分数记作。3333333,当使用近似数据类型时能准确表示。因此,从系统中检索到的数据可能与存储在该列中数据不完全一样。 (6)货币数据表示正的或者负的货币数量 。
在 Microsoft SQL Server 中,货币数据的数据类型是Money 和 Smallmoney Money数据类型要求 8 个存储字节,Smallmoney 数据类型要求 4 个存储字节。 (7)特殊数据类型
特殊数据类型包括前面没有提过的数据类型。特殊的数据类型有3种,即 Timestamp、Bit 和 Uniqueidentifier。
Timestamp 用于表示SQL Server 活动的先后顺序,以二进投影的格式表示。Timestamp 数据与插入数据或者日期和时间没有关系。
Bit 由 1 或者 0 组成。当表示真或者假、ON 或者 OFF 时,使用 Bit 数据类型。例如,询问是否是每一次访问的客户机请求可以存储在这种数据类型的列中。
Uniqueidentifier 由 16 字节的十六进制数字组成,表示一个全局唯一的。当表的记录行要求唯一时,GUID是非常有用。例如,在客户标识号列使用这种数据类型可以区别不同的客户。 2.用户定义的数据类型
用户定义的数据类型基于在 Microsoft SQL Server 中提供的数据类型。当几个表中必须存储同一种数据类型时,并且为保证这些列有相同的数据类型、长度和可空性时,可以使用用户定义的数据类型。例如,可定义一种称为 postal_code 的数据类型,它基于 Char 数据类型。
当创建用户定义的数据类型时,必须提供三个数:数据类型的名称、所基于的系统数据类型和数据类型的可空性。 (1)创建用户定义的数据类型
创建用户定义的数据类型可以使用 Transact-SQL 语句。系统存储过程 sp_addtype 可以来创建用户定义的数据类型。其语法形式如下:
sp_addtype {type},[,system_data_bype][,''null_type'']
其中,type 是用户定义的数据类型的名称。system_data_type 是系统提供的数据类型,例如 Decimal、Int、Char 等等。 null_type 表示该数据类型是如何处理空值的,必须使用单引号引起来,例如''NULL''、''NOT NULL''或者''NONULL''。
例子:
Use cust
Exec sp_addtype ssn,''Varchar(11)'',"Not Null''
创建一个用户定义的数据类型 ssn,其基于的系统数据类型是变长为11 的字符,不允许空。
例子:
Use cust
Exec sp_addtype birthday,datetime,''Null''
创建一个用户定义的数据类型 birthday,其基于的系统数据类型是 DateTime,允许空。
例子:
Use master
Exec sp_addtype telephone,''varchar(24),''Not Null''
Eexc sp_addtype fax,''varchar(24)'',''Null''
创建两个数据类型,即 telephone 和 fax (2)删除用户定义的数据类型
当用户定义的数据类型不需要时,可删除。删除用户定义的数据类型的命令是 sp_droptype {''type''}。
例子:
Use master
Exec sp_droptype ''ssn''
注意:当表中的列还正在使用用户定义的数据类型时,或者在其上面还绑定有默认或者规则时,这种用户定义的数据类型不能删除。
SQL SERVER的字段类型说明
以下为SQL SERVER7.0以上版本的字段类型说明。SQL SERVER6.5的字段类型说明请参考SQL SERVER提供的说明。
字段类型 描述
bit 0或1的整型数字
int 从-2^31(-2,147,483,648)到2^31(2,147,483,647)的整型数字
smallint 从-2^15(-32,768)到2^15(32,767)的整型数字
tinyint 从0到255的整型数字
decimal 从-10^38到10^38-1的定精度与有效位数的数字
numeric decimal的同义词
money 从-2^63(-922,337,203,685,477.5808)到2^63-1(922,337,203,685,477.5807)的货币数据,最小货币单位千分之十
smallmoney 从-214,748.3648到214,748.3647的货币数据,最小货币单位千分之十
float 从-1.79E+308到1.79E+308可变精度的数字
real 从-3.04E+38到3.04E+38可变精度的数字
datetime 从1753年1月1日到9999年12日31的日期和时间数据,最小时间单位为百分之三秒或3.33毫秒
smalldatetime 从1900年1月1日到2079年6月6日的日期和时间数据,最小时间单位为分钟
timestamp 时间戳,一个数据库宽度的唯一数字
uniqueidentifier 全球唯一标识符GUID
char 定长非Unicode的字符型数据,最大长度为8000
varchar 变长非Unicode的字符型数据,最大长度为8000
text 变长非Unicode的字符型数据,最大长度为2^31-1(2G)
nchar 定长Unicode的字符型数据,最大长度为8000
nvarchar 变长Unicode的字符型数据,最大长度为8000
ntext 变长Unicode的字符型数据,最大长度为2^31-1(2G)
binary 定长二进制数据,最大长度为8000
varbinary 变长二进制数据,最大长度为8000
image 变长二进制数据,最大长度为2^31-1(2G)
回答者:mgc - 经理 五级 3-10 17:53
--------------------------------------------------------------------------------
表1显示了数字数据类型;表2显示了字符数据类型;表3显示了日期和布尔数据类型。
表1 scalar types:numeric
datatype range subtypes description
binary_integer -214748-2147483647 natural
natural
npositive
positiven
signtype
用于存储单字节整数。
要求存储长度低于number值。
用于限制范围的子类型(subtype):
natural:用于非负数
positive:只用于正数
naturaln:只用于非负数和非null值
positiven:只用于正数,不能用于null值
signtype:只有值:-1、0或1.
number 1.0e-130-9.99e125 dec
decimal
double
precision
float
integeric
int
numeric
real
smallint 存储数字值,包括整数和浮点数。可以选择精度和刻度方式,语法:
number[([,])]。
缺省的精度是38,scale是0.
pls_integer -2147483647-2147483647 与binary_integer基本相同,但采用机器运算时,pls_integer提供更好的性能 。
表2 字符数据类型
datatype rang subtype description
char 最大长度32767字节 character 存储定长字符串,如果长度没有确定,缺省是1
long 最大长度2147483647字节 存储可变长度字符串
raw 最大长度32767字节 用于存储二进制数据和字节字符串,当在两个数据库之间进行传递时,raw数据不在字符集之间进行转换。
longraw 最大长度2147483647 与long数据类型相似,同样他也不能在字符集之间进行转换。
rowid 18个字节 与数据库rowid伪列类型相同,能够存储一个行标示符,可以将行标示符看作数据库中每一行的唯一键值。
varchar2 最大长度32767字节 stringvarchar 与varchar数据类型相似,存储可变长度的字符串。声明方法与varchar相同
表3 date和boolean
datatype range description
boolean true/false 存储逻辑值true或false,无参数
date 01/01/4712 bc 存储固定长的日期和时间值,日期值中包含时间
‘贰’ sql语句给表加字段 sql语句字段拼接
用sql语句在表中增加一个字段
我来回答:
alter table rsda add column 奖金 int
或者
alter table rsda add 奖金 int
用sql语句在表中增加一个字段
我来回答:
alter table rsda add column 奖金 int
或者
alter table rsda add 奖金 int
在数据表中添加一个字段的SQL语句怎么写
通用式: alter table [表名] add [字段名] 字段属性 default 缺省值 default 是可选参数
增加字段: alter table [表名] add 字段名 *** allint default 0 增加数昌察字字段,整型,缺省值为0
alter table [表名] add 字段名 int default 0 增加数字字段,长整型,缺省值为0
alter table [表名] add 字段名 single default 0 增加数字字段,单精度型,缺省值为0
alter table [表名] add 字段名 double default 0 增加数字字段,双精度型,物桐缺省值为0
alter table [表名] add 字段名 Tinyint default 0 增加数字字段,字节型,缺省值为0
alter table [表名] add 字段名 text [null] 增加备注型字段,[null]可选参数
alter table [表名] add 字段名 memo [null] 增加备注型字段,[null]可选参数
alter table [表名] add 字段名 varchar(N) [null] 增加变长文本型字段大小为N(1~255)
alter table [表名] add 字段名 char [null] 增加定长文本型字段大小固定为255
alter table [表名] add 字段名 Datetime default 函数增加日期型字段,其中函数可以是now(),date()等,表示缺省值
(上面都是最常用的,还有其他的属性,可以参考下面的数据类型描述)
删除字段: alter table [表名] drop 字段名
修改变长文本型字段的大小:alter table [表名] alter 字段名 varchar(N)
删除表: drop table [表名]
创建表:
sql="CREATE TABLE [表名] ([字段1,并设置为主键] int IDENTITY (1, 1) NOT NULL CONSTRAINT PrimaryKey PRIMARY KEY,"&
"[字段2] varchar(50),"&
"[字段3] single default 0,"&
"[字段4] varchar(100) null,"&
"[字段5] *** allint default 0,"&
"[字段6] int default 0,"&
"[字段7] date default date(),"&
"[字段8] int default 1)"
conn.execute sql
有null 的表示字段允许零长
在数据表中添加一个字段的SQL语句怎么写
通用式: alter table [表名] add [字段名] 字段属性 default 缺省值 default 是可选参数
增加字段: alter table [表名] add 字段名 *** allint default 0 增加数字字段,整型,缺省值为0
alter table [表名] add 字段名 int default 0 增加数字字段,长整型,缺省值为0
alter table [表名] add 字段名 single default 0 增加数字字段,单精度型,缺省值为0
alter table [表名] add 字段名 double default 0 增加数字字段,双精度型,缺省值为耐蚂茄0
alter table [表名] add 字段名 Tinyint default 0 增加数字字段,字节型,缺省值为0
alter table [表名] add 字段名 text [null] 增加备注型字段,[null]可选参数
alter table [表名] add 字段名 memo [null] 增加备注型字段,[null]可选参数
alter table [表名] add 字段名 varchar(N) [null] 增加变长文本型字段大小为N(1~255)
alter table [表名] add 字段名 char [null] 增加定长文本型字段大小固定为255
alter table [表名] add 字段名 Datetime default 函数增加日期型字段,其中函数可以是now(),date()等,表示缺省值
(上面都是最常用的,还有其他的属性,可以参考下面的数据类型描述)
删除字段: alter table [表名] drop 字段名
修改变长文本型字段的大小:alter table [表名] alter 字段名 varchar(N)
删除表: drop table [表名]
创建表:
sql="CREATE TABLE [表名] ([字段1,并设置为主键] int IDENTITY (1, 1) NOT NULL CONSTRAINT PrimaryKey PRIMARY KEY,"&
"[字段2] varchar(50),"&
"[字段3] single default 0,"&
"[字段4] varchar(100) null,"&
"[字段5] *** allint default 0,"&
"[字段6] int default 0,"&
"[字段7] date default date(),"&
"[字段8] int default 1)"
conn.execute sql
有null 的表示字段允许零长
数据表(或称表)是数据库最重要的组成部分之一。数据库只是一个框架,数据表才是其实质内容。根据信息的分类情况,一个数据库中可能包含若干个数据表。
结构化查询语言(英文简称:SQL)是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。
结构化查询语言是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同 数据库系统,,可以使用相同的结构化查询语言作为数据输入与管理的接口。结构化查询语言语句可以嵌套,这使它具有极大的灵活性和强大的功能。 1986年10月,美国国家标准协会对SQL进行规范后,以此作为关系式数据库管理系统的标准语言(ANSI X3. 135-1986),1987年得到国际标准组织的支持下成为国际标准。结构化查询语言有五种数据类型,字符型、文本型、数值型、逻辑型和日期型。
标签:作文经典 上一篇:灾字的成语 有灾字的成语 下一篇:pns是什么意思 是是什么意思向表里增加一个字段的 SQL 如何写
如果要在数据表中添加一个字段,应该如何表示呢?下面就为您介绍表添加字段的SQL语句的写法,希望可以让您对SQL语句有更深的认识。
通用式:alter table [表名] add [字段名]字段属性default缺省值default是可选参数
增加字段:alter table [表名] add字段名 *** allint default 0增加数字字段,整型,缺省值为0
alter table [表名] add字段名int default 0增加数字字段,长整型,缺省值为0
alter table [表名] add字段名single default 0增加数字字段,单精度型,缺省值为0
alter table [表名] add字段名double default 0增加数字字段,双精度型,缺省值为0
alter table [表名] add字段名Tinyint default 0增加数字字段,字节型,缺省值为0
alter table [表名] add字段名text [null]增加备注型字段,[null]可选参数
alter table [表名] add字段名memo [null]增加备注型字段,[null]可选参数
alter table [表名] add字段名varchar(N)[null]增加变长文本型字段大小为N(1~255)
alter table [表名] add字段名char [null]增加定长文本型字段大小固定为255
alter table [表名] add字段名Datetime default函数增加日期型字段,其中函数可以是now(),date()等,表示缺省值
(上面都是最常用的,还有其他的属性,可以参考下面的数据类型描述)
删除字段:alter table [表名] drop字段名
修改变长文本型字段的大小:alter table [表名] alter字段名varchar(N)
删除表:drop table [表名]
创建表:
sql="CREATE TABLE [表名]([字段1,并设置为主键] int IDENTITY(1,1)NOT NULL CONSTRAINT PrimaryKey PRIMARY KEY,"&
"[字段2] varchar(50),"&
"[字段3] single default 0,"&
"[字段4] varchar(100)null,"&
"[字段5] *** allint default 0,"&
"[字段6] int default 0,"&
"[字段7] date default date(),"&
"[字段8] int default 1)"
conn.execute sql
有null的表示字段允许零长
sql server 中删除表中的一个字段,使用alter table语句
一、语法格式:alter table table_name dropcolumncol_name
二、参数说明:
table_name :表格的名称
col_name:表格的字段名称
三、示例:
表格aaa结构如图
删除表格aaa中的字段 h,SQL语句为:
1
altertableaaadropcolumnh;
如何用Sql语句添加字段?
如果要在数据表中添加一个字段,应该如何表示呢?下面就为您介绍表添加字段的SQL语句的写法,希望可以让您对SQL语句有更深的认识。
*
通用式: alter table [表名] add [字段名] 字段属性 default 缺省值 default 是可选参数。
*
增加字段: alter table [表名] add 字段名 *** allint default 0 增加数字字段,整型,缺省值为0。
*
alter table [表名] add 字段名 int default 0 增加数字字段,长整型,缺省值为0alter ;table [表名] add 字段名 single default 0 增加数字字段,单精度型,缺省值为0alter ;table [表名] add 字段名 double default 0 增加数字字段,双精度型,缺省值为0alter ;table [表名] add 字段名 Tinyint default 0 增加数字字段,字节型,缺省值为0alter;
table [表名]add 字段名 text [null] 增加备注型字段,[null]可选参数alter;
table [表名]add 字段名 memo [null] 增加备注型字段,[null]可选参数;
alter table [表名] add 字段名 varchar(N) [null] 增加变长文本型字段大小为N(1~255);
alter table [表名] add 字段名 char [null] 增加定长文本型字段大小固定为255;
alter table [表名] add 字段名 Datetime default 函数增加日期型字段,其中函数可以是 now(),date()等,表示缺省值;
PS:(上面都是最常用的,还有其他的属性,可以参考下面的数据类型描述)
*
删除字段: alter table [表名] drop 字段名,
修改变长文本型字段的大小:alter table [表名] alter 字段名 varchar(N)。
*
删除表: drop table [表名]。
*
创建表:sql="CREATE TABLE [表名] ([字段1,并设置为主键] int IDENTITY (1, 1) NOT NULL CONSTRAINT PrimaryKey PRIMARY KEY,"&
"[字段2] varchar(50),"&;
"[字段3] single default 0,"&;
"[字段4] varchar(100) null,"&;
"[字段5] *** allint default 0,"&;
"[字段6] int default 0,"&;
"[字段7] date default date(),"&;
"[字段8] int default 1)";
conn.execute sql。
*
有null 的表示字段允许零长。
如何使用SQL语句修改表的结构,比如添加字段,修改字段的类型
--表中添加字段
ALTER TABLE table_name ADD column_name datatype
--删除表中的列
ALTER TABLE table_name DROP COLUMN column_name
--修改字段
ALTER TABLE table_name ALTER COLUMN column_name datatype
sql给表中某列数据同时加1的语句
update表名setjine=jine+1
sql增加一个字段的sql语句怎么写
alter table 表名 ADD 字段 类型 NOT NULL Default 0举例:ALTER TABLE employee ADD spbh varchar(20) NOT NULL Default 0在表employee 中加入 spbh 类型是varchar大小20 不为空 默认值是0
在数据表中添加一个字段的SQL语句怎么写
alter table 表名 add column 列名 类型(长度)
比如 alter table 学生表 add column 名字 varchar(60) ;
想加在username字段后面可以在后面在加上 after username,否则就是加在最后面的位置了。
alter table `0902` add column 名字 varchar(60) after username
标签:作文经典 上一篇:灾字的成语 有灾字的成语 下一篇:pns是什么意思 是是什么意思‘叁’ PL/SQL开发中动态SQL的使用方法
内容摘要 在PL/SQL开发过程中 使用SQL PL/SQL可禅仔以实现大部份的需求 但是在某些特殊的情况下 在PL/SQL中使用标准的SQL语句或DML语句不能实现自己的需求 比如需要动态建表或某个不确定的操作需要动态正宏执行 这就需要使用动态SQL来实现 本文通过几个实例来详细的讲解动态SQL的使用 本文适宜读者范围 Oracle初级 中级 系统环境 OS windows Professional (英文版)Oracle 正文 一般的PL/SQL程序设计中 在DML和事务控制的语句中可以直接使用SQL 但是DDL语句及系统控制语句却不能在PL/SQL中直接使用 要想实现在PL/SQL中使用DDL语句及系统控制语句 可以通过使用动态SQL来实现 首先我们应该了解举袭册什么是动态SQL 在Oracle数据库开发PL/SQL块中我们使用的SQL分为 静态SQL语句和动态SQL语句 所谓静态SQL指在PL/SQL块中使用的SQL语句在编译时是明确的 执行的是确定对象 而动态SQL是指在PL/SQL块编译时SQL语句是不确定的 如根据用户输入的参数的不同而执行不同的操作 编译程序对动态语句部分不进行处理 只是在程序运行时动态地创建语句 对语句进行语法分析并执行该语句 Oracle中动态SQL可以通过本地动态SQL来执行 也可以通过DBMS_SQL包来执行 下面就这两种情况分别进行说明 一 本地动态SQL 本地动态SQL是使用EXECUTE IMMEDIATE语句来实现的 本地动态SQL执行DDL语句 需求 根据用户输入的表名及字段名等参数动态建表 create or replace procere proc_test(table_name in varchar 表名field in varchar 字段名datatype in varchar 字段类型field in varchar 字段名datatype in varchar 字段类型) asstr_sql varchar ( );beginstr_sql:= create table ||table_name|| ( ||field || ||datatype || ||field || ||datatype || ) ;execute immediate str_sql; 动态执行DDL语句exceptionwhen others thennull;end ;以上是编译通过的存储过程代码 下面执行存储过程动态建表 SQL> execute proc_test( dinya_test id number( ) not null name varchar ( ) );PL/SQL procere successfully pletedSQL> desc dinya_test;Name TypeNullable Default Comments ID NUMBER( )NAME VARCHAR ( ) YSQL>到这里 就实现了我们的需求 使用本地动态SQL根据用户输入的表名及字段名 字段类型等参数来实现动态执行DDL语句 本地动态SQL执行DML语句 需求 将用户输入的值插入到上例中建好的dinya_test表中 create or replace procere proc_insert(id in number 输入序号name in varchar 输入姓名) asstr_sql varchar ( );beginstr_sql:= insert into dinya_test values(: : ) ;execute immediate str_sql using id name; 动态执行插入操作exceptionwhen others thennull;end ;执行存储过程 插入数据到测试表中 SQL> execute proc_insert( dinya );PL/SQL procere successfully pletedSQL> select * from dinya_test;IDNAME dinya在上例中 本地动态SQL执行DML语句时使用了using子句 按顺序将输入的值绑定到变量 如果需要输出参数 可以在执行动态SQL的时候 使用RETURNING INTO 子句 如 declarep_id number:= ;v_count number;beginv_string:= select count(*) from table_name a where a id=:id ;execute immediate v_string into v_count using p_id;end ;更多的关于动态SQL中关于返回值及为输出输入绑定变量执行参数模式的问题 请读者自行做测试 二 使用DBMS_SQL包 使用DBMS_SQL包实现动态SQL的步骤如下 A 先将要执行的SQL语句或一个语句块放到一个字符串变量中 B 使用DBMS_SQL包的parse过程来分析该字符串 C 使用DBMS_SQL包的bind_variable过程来绑定变量 D 使用DBMS_SQL包的execute函数来执行语句 使用DBMS_SQL包执行DDL语句 需求 使用DBMS_SQL包根据用户输入的表名 字段名及字段类型建表 create or replace procere proc_dbms_sql(table_name in varchar 表名field_name in varchar 字段名datatype in varchar 字段类型field_name in varchar 字段名datatype in varchar 字段类型)asv_cursor number; 定义光标v_string varchar ( ); 定义字符串变量v_row number; 行数beginv_cursor:=dbms_sql open_cursor; 为处理打开光标v_string:= create table ||table_name|| ( ||field_name || ||datatype || ||field_name || ||datatype || ) ;dbms_sql parse(v_cursor v_string dbms_sql native); 分析语句v_row:=dbms_sql execute(v_cursor); 执行语句dbms_sql close_cursor(v_cursor); 关闭光标exceptionwhen others thendbms_sql close_cursor(v_cursor); 关闭光标raise;end;以上过程编译通过后 执行过程创建表结构 SQL> execute proc_dbms_sql( dinya_test id number( ) not null name varchar ( ) );PL/SQL procere successfully pletedSQL> desc dinya_test ;Name TypeNullable Default Comments ID NUMBER( )NAME VARCHAR ( ) YSQL> 使用DBMS_SQL包执行DML语句 需求 使用DBMS_SQL包根据用户输入的值更新表中相对应的记录 查看表中已有记录 SQL> select * from dinya_test ;ID NAME Oracle CSDN ERPSQL>建存储过程 并编译通过 create or replace procere proc_dbms_sql_update(id number name varchar )asv_cursor number; 定义光标v_string varchar ( ); 字符串变量v_row number; 行数beginv_cursor:=dbms_sql open_cursor; 为处理打开光标v_string:= update dinya_test a set a name=:p_name where a id=:p_id ;dbms_sql parse(v_cursor v_string dbms_sql native); 分析语句dbms_sql bind_variable(v_cursor :p_name name); 绑定变量dbms_sql bind_variable(v_cursor :p_id id); 绑定变量v_row:=dbms_sql execute(v_cursor); 执行动态SQLdbms_sql close_cursor(v_cursor); 关闭光标exceptionwhen others thendbms_sql close_cursor(v_cursor); 关闭光标raise;end;执行过程 根据用户输入的参数更新表中的数据 SQL> execute proc_dbms_sql_update( csdn_dinya );PL/SQL procere successfully pletedSQL> select * from dinya_test ;ID NAME Oracle csdn_dinya ERPSQL>执行过程后将第二条的name字段的数据更新为新值csdn_dinya 这样就完成了使用dbms_sql包来执行DML语句的功能 使用DBMS_SQL中 如果要执行的动态语句不是查询语句 使用DBMS_SQL Execute或DBMS_SQL Variable_Value来执行 如果要执行动态语句是查询语句 则要使用DBMS_SQL define_column定义输出变量 然后使用DBMS_SQL Execute DBMS_SQL Fetch_Rows DBMS_SQL Column_Value及DBMS_SQL Variable_Value来执行查询并得到结果 总结说明 在Oracle开发过程中 我们可以使用动态SQL来执行DDL语句 DML语句 事务控制语句及系统控制语句 但是需要注意的是 PL/SQL块中使用动态SQL执行DDL语句的时候与别的不同 在DDL中使用绑定变量是非法的(bind_variable(v_cursor :p_name name)) 分析后不需要执行DBMS_SQL Bind_Variable 直接将输入的变量加到字符串中即可 另外 DDL是在调用DBMS_SQL lishixin/Article/program/SQLServer/201311/22089
‘肆’ 建表语句有哪些呢
建表语句有:
tablename:在数据库中需要创建的表的表名称,在同一个数据库中的表名称是不能重复的。
column_name:创建的表的列名称,列名称在一个表中也是不能重复的。
datatype:创建的表的列中存放数据的数据类型。
null,not null:允许该列为空或者不为空,默认情况下是不为空。
constraint:为表中的列设置约束,如主键约束,外键约束,唯一约束等。
结构化查询语言(Structured Query Language)简称SQL,是用于访问和处理数据库的标准的计算机语言,同时也是数据库脚本文件的扩展名。常用的操作:
删除表-- drop table tabname--这是将表连同表中信息一起删除但是日志文件中会有记录。
删除数据库 -- drop database databasename。
删除数据记录 -- "delete from 数据表 where 条件表达式"。
‘伍’ Oracle数据库管理员职责(四)
*** yze_p sql
*** yze_p sqlBEGIN SYS DBMS_UTILITY ANALYZE_SCHEMA( &OWNER PUTE ); END; /
pop_vol sql
pop_vol sqlinsertintoutl_vol_facts selecttable_name 薯隐NVL(num_rows )asnum_rows trunc(last_ *** yzed)asmeas_dt fromall_tables
or just user_tableswhereownerin( &OWNER )
or a ma separated list of owners
/ mit /
C 每周处理程序
nextext sql
nextext sql To find tables that don t match the tablespace default for NEXT extent The implicit rule here is that every table in a given tablespace should use the exact same value for NEXT which should also be the tablespace s default value for NEXT his tells us what the setting for NEXT is for these objects today / /SELECTsegment_name segment_type ds next_extentasActual_Next dt tablespace_name dt next_extentasDefault_Next FROMdba_tablespacesdt 数斗厅dba_segmentsds WHEREdt tablespace_name=ds tablespace_name ANDdt next_extent!=ds next_extent ANDds owner=UPPER( &OWNER ) ORDERBYtablespace_name 销肢segment_type segment_name;
existext sql
existext sql To check existing extents This tells us how many of each object s extents differ in size from the tablespace s default size If this report shows a lot of different sized extents your free space is likely to bee fragmented If so this tablespace is a candidate for reanizing / /SELECTsegment_name segment_type count(*)asnr_exts sum(DECODE(dx bytes dt next_extent ))asnr_illsized_exts dt tablespace_name dt next_extentasdflt_ext_size FROMdba_tablespacesdt dba_extentsdx WHEREdt tablespace_name=dx tablespace_name ANDdx owner= &OWNER GROUPBYsegment_name segment_type dt tablespace_name dt next_extent;
No_pk sql
no_pk sql To find tables without PK constraint / /SELECTtable_name FROMall_tables WHEREwner= &OWNER MINUS SELECTtable_name FROMall_constraints WHEREwner= &&OWNER ANDconstraint_type= P ;
disPK sql
disPK sql To find out which primary keys are disabled / /SELECTowner constraint_name table_name status FROMall_constraints WHEREwner= &OWNER ANDstatus= DISABLED ANDconstraint_type= P ;
nonuPK sql
nonuPK sql To find tables with nonunique PK indexes Requires that PK names follow a naming convention An alternative query follows that does not have this requirement but runs more slowly/ /
SELECTindex_name table_name uniqueness FROMall_indexes WHEREindex_namelike &PKNAME% ANDwner= &OWNER ANDuniqueness= NONUNIQUE SELECTnstraint_name i tablespace_name i uniqueness FROMall_constraintsc all_indexesi WHEREc owner=UPPER( &OWNER )ANDi uniqueness= NONUNIQUE ANDnstraint_type= P ANDi index_name=nstraint_name
mkrebuild_idx sql
mkrebuild_idx sql Rebuild indexes to have correct storage parameters / /SELECT alterindex ||index_name|| rebuild tablespaceINDEXESstorage || (initial Knext Kpctincrease ); FROMall_indexes WHERE(tablespace_name!= INDEXES ORnext_extent!=( * ) ) ANDwner= &OWNER /
datatype sql
datatype sql To check datatype consistency beeen o environments / /SELECTtable_name column_name data_type data_length data_precision data_scale nullable FROMall_tab_columns firstenvironment WHEREwner= &OWNER MINUS SELECTtable_name column_name data_type data_length data_precision data_scale nullable FROMall_tab_columns@&my_db_link secondenvironment WHEREwner= &OWNER orderbytable_name column_name
obj_coord sql
obj_coord sql To find out any difference in objects beeen o instances / / lishixin/Article/program/Oracle/201311/17515
‘陆’ SQL语句怎么加列
ALTERTABLE语句ALTERTABLE语句用于在已有的表中添加、修改或删除列。
ALTERTABLE语法
如需在表中添加列,请使用下列语法:
ALTERTABLEtable_name
ADDcolumn_namedatatype
在表"Persons"中添加一个名为"Birthday"的新列。
ALTERTABLEPersons
ADDBirthdaydate
新列"Birthday"的类型是date,可以存放日期。数据类型规定列中可以存放的数据的类型。
(6)datatypesql扩展阅读:
基本语句
1、数据记录筛选:
sql="select*from数据表where字段名=字段值orderby字段名[desc]"(按某个字段值降序排列,默认升序ASC)。
sql="select*from数据表where字段名like'%字段值%'orderby字段名[desc]"
sql="selecttop10*from数据表where字段名=字段值orderby字段名[desc]"
sql="select*from数据表where字段名in('值1','值2','值3')"
sql="select*from数据表where字段名between值1and值2"
sql="select列名1,列名2from数据表where字段名=字段值groupby列名1,列名2"(groupby用来分组,并且只有出现自groupby中的列名,才允许出现在select语句中)。
2、更新数据记录:
sql="update数据表set字段名=字段值where条件表达式"
sql="update数据表set字段1=值1,字段2=值2......字段n=值nwhere条件表达式"
3、删除数据记录:
sql="deletefrom数据表where条件表达式"
sql="deletefrom数据表"(将数据表所有记录删除)
参考资料来源:网络-SQL语句大全
‘柒’ spark sql 为什么要自定义datatype
json File 期类型 处理字符型转换Date或DateTime类型
json文件字符格式期类型
```
{ "name" : "Andy", "age" : 30, "time" :"2015-03-03T08:25:55.769Z"}
{ "name" : "Justin", "age" : 19, "枯销宽time" : "2015-04-04T08:25:55.769Z" }
{ "name" : "pan", "age" : 49, "time" : "2015-05-05T08:25:55.769Z" }
{ "name" : "penny", "没亮age" : 29, "time" : "2015-05-05T08:25:55.769Z" }
```
默认推测Schema:
```
root
|-- _corrupt_record: string (nullable = true)
|-- age: long (nullable = true)
|-- name: string (nullable = true)
|-- time200: string (nullable = true)
```
测试代码
```
val fileName = "person.json"
val sc = SparkUtils.getScLocal("json file 测试")
val sqlContext = new org.apache.spark.sql.SQLContext(sc)
val jsonFile = sqlContext.read.json(fileName)
jsonFile.printSchema()
```
##解决案
### 案、json数据 间 long 秒或毫秒
### 案二、自定义schema
```
val fileName = "person.json"
val sc = SparkUtils.getScLocal("json file 测试")
val sqlContext = new org.apache.spark.sql.SQLContext(sc)
val schema: StructType = StructType(mutable.ArraySeq(
StructField("name", StringType, true),
StructField("age", StringType, true),
StructField("time", TimestampType, true)));
val jsonFile = sqlContext.read.schema(schema).json(fileName)
jsonFile.printSchema()
jsonFile.registerTempTable("person")
val now: Timestamp = new Timestamp(System.currentTimeMillis())
val teenagers = sqlContext.sql("SELECT * FROM person WHERE age >= 20 AND age <= 30 AND time <=‘" +now+"‘")
teenagers.foreach(println)
val dataFrame = sqlContext.sql("SELECT * FROM person WHERE age >= 20 AND age <= 30 AND time <=‘2015-03-03 16:25:55.769‘")
dataFrame.foreach(println)
```
###案三、sql建表
创建表斗源sql
```
CREATE TEMPORARY TABLE person IF NOT EXISTS
[(age: long ,name:string ,time:Timestamp)]
USING org.apache.spark.sql.json
OPTIONS ( path ‘person.json‘)
语
CREATE [TEMPORARY] TABLE [IF NOT EXISTS]
[(col-name data-type [, …])]
USING [OPTIONS ...]
[AS ]
```
### 案四、用textfile convert
‘捌’ SQL语法中::=是什么
一.SELECT语句的完整语法为:
SELECT[ALL|DISTINCT|DISTINCTROW|TOP]
{*|talbe.*|[table.]field1[AS
alias1][,[table.]field2[AS
alias2][,…]]}
FROM
tableexpression[,…
][IN
externaldatabase]
[WHERE…]
[GROUP
BY…]
[HAVING…]
[ORDER
BY…]
[WITH
OWNERACCESS
OPTION]
说明:
用中括号([])括起来的部分表示是可选的,用大括号({})括起来的部分是表示必须从中选择其中的一个。
一.
1
FROM子句
FROM子句指定了SELECT语句中字段的来嫌粗袭源。FROM子句后面是包含一个或多个的表达式(由逗号分开),其中的表达式可为单一表名称、已保存的查询或由
INNER
JOIN、LEFT
JOIN
或
RIGHT
JOIN
得到的复合结果。如果表或查询存储在外部凳贺数据库,在IN
子句之后指明其完整路径。
例:下列SQL语句返回所有有定单的客户:
SELECT
OrderID,Customer.customerID
FROM
Orders
Customers
WHERE
Orders.CustomerID=Customers.CustomeersID
一.2
ALL、DISTINCT、DISTINCTROW、TOP谓词
(1)
ALL
返回满足SQL语句条件的所有记录。如果没有指明这个谓词,默认为ALL。
例:SELECT
ALL
FirstName,LastName
FROM
Employees
(2)
DISTINCT
如果有多个记录的选择字段的数据相同,只返回一个。
(3)
DISTINCTROW
如果有重复的记录,只返回一个
(4)
TOP显示查询头尾若干记录。也可返回记录的百分比,这是要用
TOP
N
PERCENT子句(其中N
表示百分比)
例:返回5%定货额最大的定单
SELECT
TOP
5
PERCENT*
FROM
[
Order
Details]
ORDER
BY
UnitPrice*Quantity*(1-Discount)
DESC
一.3
用
AS
子句为字段取别名
如果想为返回的列取一个新的标题,或者,经过对字段的计算或总结之后,产生了一个新的值,希望把它放到一个新的列里显示,则用AS保留。
例:返回FirstName字段取别名为NickName
SELECT
FirstName
AS
NickName
,LastName
,City
FROM
Employees
例:返回新的一列显芹兄示库存价值
SELECT
ProctName
,UnitPrice
,UnitsInStock
,UnitPrice*UnitsInStock
AS
valueInStock
FROM
Procts
二
.WHERE
子句指定查询条件
二
.
1比较运算符
比较运算符
含义
=
等于
>
大于
=
大于等于
不等于
!>
不大于
!#1/1/96#
AND
OrderDate#96-1-1#
也可以表示为:
WHERE
OrderDate>Datevalue(‘1/1/96’)
使用
NOT
表达式求反。
例:查看96年1月1日以后的定单
WHERE
Not
OrderDateQuantity
另一种方法是用
Microsof
JET
SQL
独有的
JNNER
JOIN
语法:
FROM
table1
INNER
JOIN
table2
ON
table1.field1
comparision
table2.field2
其中comparision
就是前面WHERE子句用到的比较运算符。
SELECT
FirstName,lastName,OrderID,CustomerID,OrderDate
FROM
Employees
INNER
JOIN
Orders
ON
Employees.EmployeeID=Orders.EmployeeID
注意:
INNER
JOIN不能连接Memo
OLE
Object
Single
Double
数据类型字段。
在一个JOIN语句中连接多个ON子句
语法:
SELECT
fields
FROM
table1
INNER
JOIN
table2
ON
table1.field1
compopr
table2.field1
AND
ON
table1.field2
compopr
table2.field2
OR
ON
table1.field3
compopr
table2.field3
也可以
SELECT
fields
FROM
table1
INNER
JOIN
(table2
INNER
JOIN
[(
]table3
[INNER
JOER]
[(
]tablex[INNER
JOIN]
ON
table1.field1
compopr
table2.field1
ON
table1.field2
compopr
table2.field2
ON
table1.field3
compopr
table2.field3
外部连接返回更多记录,在结果中保留不匹配的记录,不管存不存在满足条件的记录都要返回另一侧的所有记录。
FROM
table
[LEFT|RIGHT]JOIN
table2
ON
table1.field1comparision
table.field2
用左连接来建立外部连接,在表达式的左边的表会显示其所有的数据
例:不管有没有定货量,返回所有商品
SELECT
ProctName
,OrderID
FROM
Procts
LEFT
JOIN
Orders
ON
Procts.PrctsID=Orders.ProctID
右连接与左连接的差别在于:不管左侧表里有没有匹配的记录,它都从左侧表中返回所有记录。
例:如果想了解客户的信息,并统计各个地区的客户分布,这时可以用一个右连接,即使某个地区没有客户,也要返回客户信息。
空值不会相互匹配,可以通过外连接才能测试被连接的某个表的字段是否有空值。
SELECT
*
FROM
talbe1
LEFT
JOIN
table2
ON
table1.a=table2.c
四
.1
连接查询中使用Iif函数实现以0值显示空值
Iif表达式:
Iif(IsNull(Amount,0,Amout)
例:无论定货大于或小于¥50,都要返回一个标志。
Iif([Amount]>50,?Big
order?,?Small
order?)
五
分组和总结查询结果
在SQL的语法里,GROUP
BY和HAVING子句用来对数据进行汇总。GROUP
BY子句指明了按照哪几个字段来分组,而将记录分组后,用HAVING子句过滤这些记录。
GROUP
BY
子句的语法
SELECT
fidldlist
FROM
table
WHERE
criteria
[GROUP
BY
groupfieldlist
[HAVING
groupcriteria]]
注:Microsoft
Jet数据库
Jet
不能对备注或OLE对象字段分组。
GROUP
BY字段中的Null值以备分组但是不能被省略。
在任何SQL合计函数中不计算Null值。
GROUP
BY子句后最多可以带有十个字段,排序优先级按从左到右的顺序排列。
例:在‘WA’地区的雇员表中按头衔分组后,找出具有同等头衔的雇员数目大于1人的所有头衔。
SELECT
Title
,Count(Title)
as
Total
FROM
Employees
WHERE
Region
=
‘WA’
GROUP
BY
Title
HAVING
Count(Title)>1
JET
SQL
中的聚积函数
聚集函数
意义
SUM
(
)
求和
AVG
(
)
平均值
COUNT
(
)
表达式中记录的数目
COUNT
(*
)
计算记录的数目
MAX
最大值
MIN
最小值
VAR
方差
STDEV
标准误差
FIRST
第一个值
LAST
最后一个值
六
用Parameters声明创建参数查询
Parameters声明的语法:
PARAMETERS
name
datatype[,name
datatype[,
…]]
其中name
是参数的标志符,可以通过标志符引用参数.
Datatype说明参数的数据类型.
使用时要把PARAMETERS
声明置于任何其他语句之前.
例:
PARAMETERS[Low
price]
Currency,[Beginning
date]datatime
SELECT
OrderID
,OrderAmount
FROM
Orders
WHERE
OrderAMount>[low
price]
AND
OrderDate>=[Beginning
date]
七
功能查询
所谓功能查询,实际上是一种操作查询,它可以对数据库进行快速高效的操作.它以选择查询为目的,挑选出符合条件的数据,再对数据进行批处理.功能查询包括更新查询,删除查询,添加查询,和生成表查询.
七
.1
更新查询
UPDATE子句可以同时更改一个或多个表中的数据.它也可以同时更改多个字段的值.
更新查询语法:
UPDATE
表名
SET
新值
WHERE
准则
例:英国客户的定货量增加5%,货运量增加3%
UPDATE
OEDERS
SET
OrderAmount
=
OrderAmount
*1.1
Freight
=
Freight*1.03
WHERE
ShipCountry
=
‘UK’
七
.2
删除查询
DELETE子句可以使用户删除大量的过时的或冗于的数据.
注:删除查询的对象是整个记录.
DELETE子句的语法:
DELETE
[表名.*]
FROM
来源表
WHERE
准则
例:
要删除所有94年前的定单
DELETE
*
FROM
Orders
WHERE
OrderData,,=)一起使用.返回一个布尔值True或False.ANY的意思是,表达式与子查询返回的一系列的值逐一比较,只要其中的一次比较产生True结果,ANY测试的返回
True值(既WHERE子句的结果),对应于该表达式的当前记录将进入主查询的结果中.ALL测试则要求表达式与子查询返回的一系列的值的比较都产生True结果,才回返回True值.
例:主查询返回单价比任何一个折扣大于等于25%的产品的单价要高的所有产品
SELECT
*
FROM
Procts
WHERE
UnitPrice>ANY
(SELECT
UnitPrice
FROM[Order
Details]
WHERE
Discount>0.25)
十
.2检查表达式的值是否匹配子查询返回的一组值的某个值
语法:
[NOT]IN(子查询)
例:返回库存价值大于等于1000的产品.
SELECT
ProctName
FROM
Procts
WHERE
ProctID
IN
(SELECT
PrdoctID
FROM
[Order
DEtails]
WHERE
UnitPrice*Quantity>=
1000)
十
.2检测子查询是否返回任何记录
语法:
[NOT]EXISTS
(子查询)
例:用EXISTS检索英国的客户
SELECT
ComPanyName,ContactName
FROM
Orders
WHERE
EXISTS
(SELECT
*
FROM
Customers
WHERE
Country
=
‘UK’
AND
Customers.CustomerID=
Orders.CustomerID)
‘玖’ sql如何在一列里面建立子列数据
首先我们打开SQL,显示出我们之前已经创建好的表格如下
当我们需要重新插入一行新的数据时,我们输入下列代码:
INSERT INTO 表名称 VALUES (值1, 值2,....);
接着重新显示如下
如果我们只想在某一列或者某几列里面插入数据,则如下操作,语法如下:
INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....);
重新显示就如下了(中间的NULL是因为还没有插入数据而显示如下的),接着只需要重新插入数据即可。
如果需要重新插入一列数据,则进行下面操作。语法如下
ALTER TABLE table_name
ADD column_name datatype// datatype是数据类型的意思。如果是年份就是data或者year,如何是字符就要用char,以此类推。
‘拾’ @IndexAnalyze(dataType = DataType.KEYWORD, sqlColumn = "Last_Action")实力类中这个注解是做个啥的
indexanalyze 是指数或参数分析的意思,datatype 是数据类型,keyword是关键字,sqlcolumn 这个是数据库列 的意思镇则,last action 是上一个动作意思,希望能帮到你御凯棚孙游