日期:2011-05-02 15:21:00 来源:本站整理
SQL数据操作底子(初级)4[MSSQL防范]
本文“SQL数据操作底子(初级)4[MSSQL防范]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
用SQL成立新表
注意:
假如你还没有成立自己的数据库,目前就跳回到第三章成立这个库.你毫不能向master,tempdb或任何其他任何系统数据库中增添数据.
从SQL Sever程序组(在任务栏中)中启动ISQL/w程序.呈现查询窗口后,从窗口顶部的下拉列表中挑选你在第三章所成立的数据库.下一步,在查询窗口中键入下面的SQL语句,单击履行查询按钮,履行这个语句:
CREATE TABLE guestbook (visitor VARCHAR(40),comments TEXT,entrydate
DATETIME)
假如一切正常,你会在后果窗口中看到以下的文字(假如呈现非常,请参阅第三章):
This command dit not return data ,and it did not return any rows
庆贺你,你已经成立了你的第一个表!
你所成立的表名为guestbook,你可以利用这个表来存储来字你站点拜候者的信息.你是用REEATE TABLE语句成立的这个表,这个语句有两部份:第一部份指定表的名子;第二部份是括在括号中的各字段的名称和属性,彼此之间用逗号离隔.
表guestbook有三个字段:visitor,comments 和entrydate.visitor字段存储拜候者的名字,comments字段存储拜候者对你站点的看法,entrydate字段存储拜候者拜候你站点的日期和时间.
注意每个字段名背面都跟有一个专门的表达式.比方,字段名comments背面跟有表达式TEXT.这个表达式指定了字段的数据范例.数据范例决意了一个字段可以存储什么样的数据.因为字段comments包含文本信息,其数据范例定义为文本型.
字段有很多差别的数据范例.下一小节报告SQL所支持的一些重要的数据范例.
字段范例
差别的字段范例用来存放差别范例的数据.成立和利用表时,更你应当理解五种常用的字段范例:字符型,文本型,数值型,逻辑性和日期型.
字符型数据
字符型数据非常有效.当你需求存储短的字符串信息时,你老是要用到字符型数据.比方,你可以把从HTML form的文本框中汇集到的信息放在字符型字段中.
要成立一个字段用来存放可变长度的字符串信息,你可以利用表达式 VARCHAR.考虑你前面成立的表guestbook:
CREATE TABLE guestbook (visitor VARCHAR(40),comments TEXT,entrydate
DATETIME)
在这个例子中,字段visitor的数据范例为VARCHAR.注意跟在数据范例背面的括号中的数字.这个数字指定了这个字段所答应存放的字符串的最大长度.在这个例子中,字段visitor能存放的字符串最长为四十个字符.假如名字太长,字符串会被截断,只保存四十个字符.
VARCHAR范例可以存储的字符串最长为255个字符.要存储更长的字符串数据,可以利用文本型数据(下一节中报告).
另一种字符型数据用来存储固定长度的字符数据.下面是一个利用这种数据范例的例子:
CREATE TABLE guestbook (visitor CHAR(40),comments TEXT,entrydate
DATETIME)
在这个例子中,字段visitor被用来存储四十个字符的固定长度字符串.表达式CHAR指定了这个字段应当是固定长度的字符串.
VARCHAR型和CHAR型数据的这个差别是渺小的,但是非常重要.假定你向一个长度为四十个字符的VARCHAR型字段中输入数据Bill Gates.当你今后从这个字段中取出此数据时,你取出的数据其长度为十个字符——字符串Bill Gates的长度.
目前假定你把字符串输入一个长度为四十个字符的CHAR型字段中,那么当你取出数据时,所取出的数据长度将是四十个字符.字符串的背面会被附加多余的空格.
当你成立自己的站点时,你会发现利用VARCHAR型字段要比CHAR型字段便利的多.利用VARCHAR型字段时,你不需求为剪掉你数据中多余的空格而操心.
VARCHAR型字段的另一个突出的好处是它可以比CHAR型字段占用更少的内存和硬盘空间.当你的数据库很大时,这种内存和磁盘空间的节俭会变得非常重要.
文本型数据
字符型数据限制了字符串的长度不能超越255个字符.而利用文本型数据,你可以存放超越二十亿个字符的字符串.当你需求存储大串的字符时,应当利用文本型数据.
这里有一个利用文本型数据的例子:
CREATE TABLE guestbook (visitor VARCHAR(40),comments TEXT,entrydate
DATETIME)
在这个例子中,字段comments被用来存放拜候者对你站点的看法.注意文本型数据没有长度,而上一节中所讲的字符型数据是有长度的.一个文本型字段中的数据普通要末为空,要末很大.
当你从HTML form的多行文本编辑框(TEXTAREA)中汇集数据时,你应当把汇集的信息存储于文本型字段中.但是,无论什么时刻,只要你能避免利用文本型字段,你就应当不实用它.文本型字段既大且慢,滥用文本型字段会使服务器速度变慢.文本型字段还会吃掉大量的磁盘空间.
告诫:
一旦你向文本型字段中输入了任何数据(乃至是空值),就会有2K的空间被自动分配给该数据.除非删除该记录,不然你无法收回这部份存储空间.
数值型数据
SQL Sever支持很多种差别的数值型数据.你可以存储整数、小数、和钱数.
普通,当你需求在表中的存放数字时,你要利用整型(INT)数据.INT型数据的表数范围是从-2,147,483,647到2,147,483,647的整数.下面是一个若何利用INT型数据的例子:
CREATE TABLE visitlog (visitor VARCHAR(40),numvisits INT)
这个表可以用来记录你站点被拜候的次数.只要没有人拜候你的站点超越2,147,483,647次,nubvisits字段便可以存储拜候次数.
为了节俭内存空间,你可以利用SMALLINT型数据.SMALLINT 型数据可以存储从-32768到32768的整数.这种数据范例的利用办法与INT型完好相同.
最后,假如你实在需求节俭空间,你可以利用TINYINT型数据.一样,这种范例的利用办法也与INT型相同,差别的是这种范例的字段只能存储从0到255的整数.TINYINT型字段不能用来存储负数.
普通,为了节俭空间,应当尽大概的利用最小的整型数据.一个TINYINT型数据只占用一个字节;一个INT型数据占用四个字节.这看起来仿佛差别不大,但是在对比大的表中,字节数的增长是很快的.另一方面,一旦你已经成立了一个字段,要改正它是很艰难的.因此,为安全起见,你应当猜测以下,一个字段所需求存储的数值最大有大概是多大,然后挑选得当的数据范例.
为了能对字段所存放的数占据更多的掌握,你可以利用NUMERIC型数据来同时表示一个数的整数部份和小数部份.NUMERIC型数据使你能表示非常大的数——比INT型数据要大得多.一个NUMERIC型字段可以存储从-1038到1038范围内的数.NUMERIC型数据还使你能表示有小数部份的数.比方,你可以在NUMERIC型字段中存储小数3.14.
当定义一个NUMERIC型字段时,你需求同时指定整数部份的大小和小数部份的大小.这里有一个利用这种数据范例的例子:
CREATE TABLE numeric_data (bignumber NUMERIC(28,0),
fraction NUMERIC (5,4) )
当这个语句履行时,将成立一个名为numeric_data的包含两个字段的表.字段bignumber可以存储直到28位的整数.字段fraction可以存储有五位整数部份和四位小数部份的小数.
一个NUMERIC型数据的整数部份最大只能有28位,小数部份的位数必须小于或等于整数部份的位数,小数部份可以是零.
你可以利用INT型或NUMERIC型数据来存储钱数.但是,专门有别的两种数据范例用于此目的.假如你但愿你的网点能挣很多钱,你可以利用MONEY型数据.假如你的野心不大,你可以利用SMALLMONEY型数据.MONEY型数据可以存储从-922,337,203,685,477.5808到922,337,203,685,477.5807的钱数.假如你需求存储比这还大的金额,你可以利用NUMERIC型数据.
SMALLMONEY型数据只能存储从-214,748.3648到214,748.3647 的钱数.一样,假如可以的话,你应当用SMALLMONEY型来替换MONEY型数据,以节俭空间.下面的例子显示了若何利用这两种表示钱的数据范例:
CREATE TABLE products (product VARCHAR(40),price MONEY,
Discount_price SMALLMONEY)
这个表可以用来存储商品的折扣和普通售价.字段price 的数据范例是MONEY,字段discount_price的数据范例是SMALLMONEY.
存储逻辑值
假如你利用复选框(CHECKBOX)从网页中汇集信息,你可以把此信息存储在BIT型字段中.BIT型字段只能取两个值:0或1.这里有一个若何利用这种字段的例子:
CREATE TABLE opinion (visitor VARCHAR(40),good BIT)
这个表可以用来存放对你的网点举行民意调查所得的信息.拜候者可以投票表示他们能否喜好你的网点.假如他们投YES,就在BIT型字段中存入1.反之,假如他们投NO,就在字段中存入0(在下一章里,你将学会若何计算投票).
当心,在你成立好一个表之后,你不能向表中增添BIT型字段.假如你打算在一个表中包含BIT型字段,你必须在成立表时完成.
存储日期和时间
当你成立一个网点时,你大概需求记录在一段时间内的拜候者数目.为了可以存储日期和时间,你需求利用DATETIME型数据,以下例所示:
CREATE TABL visitorlog( visitor VARCHAR (40), arrivaltime DATETIME ,
departuretime DATETIME)
这个表可以用来记录拜候者进入和脱离你网点的时间和日期.一个DATETIME型的字段可以存储的日期范围是从1753年1月1日第一毫秒到9999年12月31日最后一毫秒.
假如你不需求覆盖这么大范围的日期和时间,你可以利用SMALLDATETIME型数据.它与DATETIME型数据一样利用,只不过它能表示的日期和时间范围比DATETIME型数据小,并且不如DATETIME型数据切确.一个SMALLDATETIME型的字段可以存储从1900年1月1日到2079年6月6日的日期,它只能切确到秒.
DATETIME型字段在你输入日期和时间之前并不包含实际的数据,熟习这一点是重要的.在下一章,你将学习怎样利用大量的SQL函数来读取和操作日期和时间(拜见下面的"缺省值"一节).你也可以在VBScript和JScript 中利用日期和时间函数来向一个DATETIME型字段中输入日期和时间.
字段属性
上一节介绍了若何成立包含差别范例字段的表.在这一节中,你将学会若何利用字段的三个属性.这些属性答应你掌握空值,缺省值和标识值.
答应和禁止空值
大大都字段可以承受空值(NULL).当一个字段承受了空值后,假如你不改变它,它将一向保持空值.空值(NULL)和零是差别的,严峻的说,空值表示没有任何值.
为了答应一个字段承受空值,你要在字段定义的背面利用表达式NULL.比方,下面的表中两个字段都答应承受空值:
CREATE TABLE empty (empty1 CHAR (40) NULL,empty2 INT NULL(
注意:
BIT型数据不能是空值.一个这种范例的字段必须取0大概1.
有时你需求禁止一个字段利用空值.比方,假定有一个表存储着信誉卡号码和信誉卡有效日期,你不会但愿有人输入一个信誉卡号码但不输入有效日期.为了强迫两个字段都输入数据,你可以用下面的办法成立这个表:
CREATE TABLE creditcards (creditcard_number CHAR(20) NOT NULL,
Creditcard_expire DATETIME NOT NULL)
注意字段定义的背面跟有表达式NOT NULL.通过包含表达式NOT NULL,你可以禁止任何人只在一个字段中插入数据,而不输入另一个字段的数据.
你将会发现,在你建立自己的网点历程中,这种禁止空值的本领是非常有效的.假如你指定一个字段不能承受空值,那么当你试图输入一个空值时,会有错误告诫.这些错误告诫可认为程序调试供应有代价的线索.
缺省值
假定有一个存储地址信息的表,这个表的字段包含街道、城市、州、邮政编码和国家.假如你预计地址的大部份是在美国,你可以把这个值作为country字段的缺省值.
为了在成立一个表时指定缺省值,你可以利用表达式DEFAULT.请看下面这个在成立表时利用缺省值的例子:
CREATE TABLE addresses (street VARCHAR(60) NULL,
city VARCHAR(40) NULL,
state VARCHAR(20) NULL
zip VARCHAR(20) NULL,
country VARCHAR(30) DEFAULT ‘USA’)
在这个例子中,字段country的缺省值被指定为美国.注意单引号的利用,引号指明这是字符型数据.为了给非字符型的字段指定缺省值,不要把该值扩在引号中:
CREATE TABLE orders(price MONEY DEFAULT $38.00,
quantity INT DEFAULT 50,
entrydate DATETIME DEFAULT GETDATE())
在这个CREATE TABLE语句中,每个字段都指定了一个缺省值.注意DATETIME型字段entrydate所指定的缺省值,该缺省值是函数Getdate()的返回值,该函数返回当前的日期和时间.
标识字段
每个表可以有一个也只能有一个标识字段.一个标识字段是唯一标识表中每条记录的特别字段.比方,数据库pubs中的表jobs包含了一个唯一标识每个工作标识字段:
job_id job_desc
…………………………………………………………….
New Hire Job not specified
Chief Executive officer
Bushness Operations Manager
Chief Financial Officier
Publisher
字段job_id为每个工作供应了唯一的一个数字.假如你决意增添一个新工作,新增记录的job_id字段会被自动赋给一个新的唯一值.
为了成立一个标识字段,你只需在字段定义背面加上表达式IDENTITY便可.你只能把NUMERIC型或INT型字段设为标识字段,这里有一个例子:
CREATE TABLE visitorID (theID NUBERIC(18) IDENTITY,name VARCHAR(40))
这个语句所成立的表包含一个名为theid的标识字段.每当一个新的拜候者名字增添到这个表中时,这个字段就被自动赋给一个新值.你可以用这个表为你的站点的每一个用户供应唯一标识.
本领:
成立一个标示字段时,注意利用充足大的数据范例.比方你利用TINYINT型数据,那么你只能向表中增添255个记录.假如你预计一个表大概会变得很大,你应当利用NUMERIC型数据.
标识字段的存在会使你想尝试很多不大概的事情.比方,你大概想操纵标识字段来对记录举行基于它们在表中位置的运算.你应当丢弃这种企图.每个记录的标识字段的值是互不相同的,但是,这并不由止一个标识字段的标识数字之间存在隔断.比方,你永久不要试图操纵一个表的标识字段来取出表中的前十个记录.这种操作会招致失利,比方说6号记录和7号记录根本不存在.
以上是“SQL数据操作底子(初级)4[MSSQL防范]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |
评论内容只代表网友观点,与本站立场无关!
评论摘要(共 0 条,得分 0 分,平均 0 分)
查看完整评论