版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、SQL初级培训 周小强 2006-2-18软件概述数据库:SQLSERVER帐套数据库:UFDATA_XXX_XXXX系统库:UFSYSTEM模板库:UFMODEL软件概述Sqlserver的文件:主文件*.mdf极为重要日志文件*.LdfAccess的文件:只需一个文件*.mdbMicrosoft Access和SqlServer的区别Access不支持存储过程等sql高级功能Access在网络运用方面要进展文件共享是翻开文件数据,而sqlserver是进展衔接控制衔接数据查询-Select语句SELECTFORMWHERE例:SELECT*FROMYOURTABLENAME函数:对数据的进
2、一步处置汇总函数SUMSUM 就好像它的本意一样它前往某一列的一切数值的和。SELECT SUM(COLUMAN) FROM YOURTABLECOUNT该函数将前往满足WHERE 条件子句中记录的个数。最简单的例子就是您想知道某一个表里的记录数:SELECT COUNT(*) FROM YOURTABLE函数:对数据的进一步处置MAX前往表达式的最大值。语法MAX ( ALL | DISTINCT expression )参数ALL对一切的值进展聚合函数运算。ALL 是默许设置。DISTINCT指定每个独一值都被思索。DISTINCT 对于MAX无意义,运用它仅仅是为了符合 SQL-92 兼
3、容性。expression常量、列名、函数以及算术运算符、按位运算符和字符串运算符的恣意组合。MAX可用于数字列、字符列和 datetime 列,但不能用于 bit 列。不允许运用聚合函数和子查询。前往类型前往类型与 expression 一样。字符函数LEFT前往从字符串左边开场指定个数的字符。语法LEFT ( character_expression , integer_expression ) 参数character_expression字符或二进制数据表达式。character_expression 可以是常量、变量或列。character_expression 必需是可以隐式地转换为
4、 varchar 的数据类型。否那么,请运用 CAST 函数显式转换 character_eger_expression是正整数。假设 integer_expression 为负,那么前往空字符串。前往类型varchar例如A. 对列运用 LEFT 函数下面的例如前往每个书名最左边的 5 个字符。USE pubs GO SELECT LEFT(title, 5) FROM titles ORDER BY title_id RIGHT前往从字符串右边开场指定个数的字符。其参数语法与LEFT函数类似SUBSTRING前往字符、binary、text 或 image 表达
5、式的一部分。语法SUBSTRING ( expression , start , length ) 参数Expression:是字符串、二进制字符串、text、image、列或包含列的表达式。不要运用包含聚合函数的表达式。Start:是一个整数,指定子串的开场位置。Length:是一个整数,指定子串的长度要前往的字符数或字节数。 阐明由于在 text 数据上运用 SUBSTRING 时 start 和 length 指定字节数,因此 DBCS 数据如日本汉字能够导致在结果的开场或终了位置拆分字符。此行为与 READTEXT 处置 DBCS 的方式一致。然而,由于偶而会出现奇异的结果,建议对 D
6、BCS 字符运用 ntext 而非 text。前往类型假设 expression 是支持的字符数据类型,那么前往字符数据。假设 expression 是支持的 binary 数据类型,那么前往二进制数据。注释在字符数中必需指定运用 ntext、char 或 varchar 数据类型的偏移量start 和 length。在字节数中必需指定运用 text、image、binary 或 varbinary 数据类型的偏移量。 例如 在字符串上运用 SUBSTRING下例显示如何只前往字符串的一部分。该查询在一列中前往 authors 表中的姓氏,在另一列中前往 authors 表中的名字首字母。US
7、E pubs SELECT au_lname, SUBSTRING(au_fname, 1, 1) FROM authors ORDER BY au_lname LEN前往给定字符串表达式的字符而不是字节个数,其中不包含尾随空格。语法LEN ( string_expression ) 参数string_expression要计算的字符串表达式。前往类型int例如下面的例如选定字符个数和位于芬兰的公司的 CompanyName 数据。USE Northwind GO SELECT LEN(CompanyName) AS Length, CompanyName FROM Customers WHE
8、RE Country = Finland CAST 和 CONVERT将某种数据类型的表达式显式转换为另一种数据类型。CAST 和 CONVERT 提供类似的功能。语法运用 CAST:CAST ( expression AS data_type ) 运用 CONVERT:CONVERT (data_type(length), expression , style)参数expression是任何有效的 Microsoft SQL Server 表达式。data_type目的系统所提供的数据类型,包括 bigint 和 sql_variant。不能运用用户定义的数据类型。lengthnchar、n
9、varchar、char、varchar、binary 或 varbinary 数据类型的可选参数。 style日期格式款式,借以将 datetime 或 smalldatetime 数据转换为字符数据nchar、nvarchar、char、varchar、nchar 或 nvarchar 数据类型;或者字符串格式款式,借以将 float、real、money 或 smallmoney 数据转换为字符数据nchar、nvarchar、char、varchar、nchar 或 nvarchar 数据类型。详细的值见协助。此类函数运用也比较多。SQL 中的子句Select From Where O
10、rder by SQL 中的子句Group by 子句 GROUP BY ALL group_by_expression ,.n WITH CUBE | ROLLUP USE pubs SELECT type, AVG(price) FROM titles WHERE advance $5000 GROUP BY type HAVING 子句HAVING 运用 HAVING 子句选择行HAVING 子句对 GROUP BY 子句设置条件的方式与 WHERE 子句和 SELECT 语句交互的方式类似。WHERE 子句搜索条件在进展分组操作之前运用;而 HAVING 搜索条件在进展分组操作之后运用
11、。HAVING 语法与 WHERE 语法类似,但 HAVING 可以包含聚合函数。HAVING 子句可以援用选择列表中出现的恣意项。下面的查询得到本年度截止到目前的销售额超越 $40,000 的出版商:USE pubs SELECT pub_id, total = SUM(ytd_sales) FROM titles GROUP BY pub_id HAVING SUM(ytd_sales) 40000 了解运用 WHERE、GROUP BY 和 HAVING 子句的正确序列对编写高效的查询代码会有所协助: WHERE 子句用来挑选 FROM 子句中指定的操作所产生的行。GROUP BY 子句
12、用来分组 WHERE 子句的输出。HAVING 子句用来从分组的结果中挑选行。 表的结合JoinINNER指定前往每对匹配的行。废弃两个表中不匹配的行。假设未指定联接类型,那么这是默许设置。FULL OUTER指定在结果集中包含左表或右表中不满足联接条件的行,并将对应于另一个表的输出列设为 NULL。这是对通常由 INNER JOIN 前往的一切行的补充。LEFT OUTER指定在结果集中包含左表中一切不满足联接条件的行,且在由内联接前往一切的行之外,将另外一个表的输出列设为 NULL。RIGHT OUTER指定在结果集中包含右表中一切不满足联接条件的行,且在由内联接前往的一切行之外,将与另外
13、一个表对应的输出列设为 NULL。表的结合Join所需的资料并不是放在同一个资料表中,在这个时候,他就要用到Join,如我们U8中的主子表 当然Join如何将不同的数据库的资料结合,还要看他如何运用它。一共有四种不同的Join的方式:INNER JoinFULL OUTER JoinLEFT OUTER JoinRIGHT OUTER JoinUnion运算符UNION 运算符将两个或更多查询的结果组合为单个结果集,该结果集包含结合查询中的一切查询的全部行。这与运用联接组合两个表中的列不同。运用 UNION 组合两个查询的结果集的两个根本规那么是: 一切查询中的列数和列的顺序必需一样。数据类型
14、必需兼容。 子查询:内嵌的SQL 子句if exists (select * from dbo.sysobjects where id = object_id(Ndbo.PO_Podetails) and OBJECTPROPERTY(id, NIsUserTable) = 1)drop table dbo.PO_PodetailsGO操作数据INSERT UPDATE DELETEINSERT INTO子句INSERT INTO titles (title_id, title, type, pub_id, price) VALUES (BU9876, Creating Web Pages,
15、business, 9, 29.99) 操作数据INSERT UPDATE DELETEUPDATE子查询子查询可以嵌套在 UPDATE、DELETE 和 INSERT 语句以及 SELECT 语句中。下面的查询使由 New Moon Books 出版的一切书籍的价钱加倍。该查询更新 titles 表;其子查询援用 publishers 表。UPDATE titles SET price = price * 2 WHERE pub_id IN (SELECT pub_id FROM publishers WHERE pub_name = New Moon Books) 下面是运用联接的等效 U
16、PDATE 语句:UPDATE titles SET price = price * 2 FROM titles INNER JOIN publishers ON titles.pub_id = publishers.pub_id AND pub_name = New Moon Books 操作数据INSERT UPDATE DELETEDELETE子句经过下面嵌套的查询,可以删除商业书籍的一切销售记录:DELETE sales WHERE title_id IN (SELECT title_id FROM titles WHERE type = business) 操作数据INSERT UP
17、DATE DELETEUpdate运用留意where后的条件一定要验证Select * from accinformation where cid = 99 and cvalue = 8.60Update accinformation set cvalue = 8.50where cid = 99 and cvalue = 8.60操作数据Select IntoSelect into 子句SELECT Shippers.*, Link.Address, Link.City, Link.Region, Link.PostalCodeINTO NewShippersFROM Shippers JO
18、IN LinkServer.DB.dbo.Shippers AS Link ON (Shippers.ShipperID = Link.ShipperID)CREATE DATABASE创建一个新数据库及存储该数据库的文件,或从先前创建的数据库的文件中附加数据库。语法CREATE DATABASE database_name ON ,.n , ,.n LOG ON ,.n COLLATE collation_name FOR LOAD | FOR ATTACH := PRIMARY ( NAME = logical_file_name , FILENAME = os_file_name , S
19、IZE = size , MAXSIZE = max_size | UNLIMITED , FILEGROWTH = growth_increment ) ,.n :=FILEGROUP filegroup_name ,.n 以上就是详细的语法,其中的参数可以参照SQL的协助。CREATE TABLE创建新表。和创建数据库一样,我们也可以利用图形界面工具如企业管理器来创建,但了解其详细的操作并不是一件坏事。创建表的最根本语法详细的语法见协助就是CREATE TABLE table_name (field1 datatype NOT NULL ,field2 datatype NOT NULL
20、,field3 datatype NOT NULL ,。)我们来看一个简单的例子,如下:CREATE TABLE BILLS (NAME CHAR(30),AMOUNT INT,ACCOUNT_ID INT) 分析该语句创建了一个名字叫BILLS的表,在BILLS 表中有三个字段NAME,ACCOUNT和ACCOUNT_ID。其中NAME 字段为字符类型可以存储长度30 的字符串,而AMOUNT和AMOUNT_ID 那么只参存储整数。ALTER TABLE 语句参与曾经存在的表中的某一列ALTER TABLE tablname ADD | column_name AS computed_col
21、umn_expression ,.n 以上例子是在MYTABLE里添加一个类型为VARCHAR(20) ,允许为NULL的列NEWcolumn 。例子:ALTER TABLE MYTABLEADD NEWcolumn VARCHAR(20) NULL创建和操作表删除一列到曾经存在的表中ALTER TABLE tablname DROP CONSTRAINT constraint_name | COLUMN column ,.n 以上例子是在MYTABLE里删除列NEWcolumn 。例子:ALTER TABLE MYTABLEDROP COLUMN NEWcolumn创建和操作表修正曾经存在的
22、表中的某一列ALTER TABLE tablname ALTER COLUMN column_name new_data_type ( precision , scale ) COLLATE NULL | NOT NULL | ADD | DROP ROWGUIDCOL 以上例子是在MYTABLE里将列NEWcolumn 的类型改动成INT。例子:ALTER TABLE MYTABLE ALTER COLUMNNEWcolumn INT注:他可以添加或减少某一列的长度,但是他不能将它减少到使修正后的长度小于其中的已有数据长度。修正前一定要慎重!创建和操作表DROP TABLE 语句SQL 提供
23、了一个可以从数据库去彻底地移去某个表的命令。DROP TABLE 可以从数据库中删除一个指定的表。 一旦这个命令发出以后就没有方法吊销它在事务提交前除外,关于事务我们将在后面讲解。它最常用在他创建一个暂时表并且曾经进展终了了他的全部方案任务的时候。DROP TABLE 语句的语法格式如下DROP TABLE table_name下边是如何删掉一个叫NEW_BILLS 表的实例DROP TABLE NEW_BILLS留意:系统没有给出他提示该命令不会问他Are you sure? Y/N 。但是删除操作曾经执行,表曾经永远地删除了。删除一个数据库的命令也类似:DROP DATABASE,这里就不
24、再讲解。创建视图和索引创建视图的语法如下:CREATE VIEW . . view_name ( column ,.n ) WITH ,.n AS select_statement WITH CHECK OPTION := ENCRYPTION | SCHEMABINDING | VIEW_METADATA 创建视图和索引运用简单的 CREATE VIEW下例创建具有简单 SELECT 语句的视图。当需求频繁地查询列的某种组合时,简单视图非常有用。USE pubs GOIF EXISTS (SELECT TABLE_NAME FROM INFORMATION_SCHEMA.VIEWS WHER
25、E TABLE_NAME = titles_view) DROP VIEW titles_view GO CREATE VIEW titles_view AS SELECT title, type, price, pubdate FROM titles GO 创建视图和索引删除视图语句就像每一个CREATE 语句一样CREATE VIEW 语句对应的也与DROP VIEW 语句相对应。其语法方式如下: DROP VIEW view_name在运用它的时候需求记住DROP VIEW 命令会使一切与DROP 视图相关联的视图不能正常运转,此时假设他访问这个数据库,将前往如下错误:由于绑定错误,未能
26、运用视图或函数 对应称号。一些数据库系统甚至会将一切与要DROP 的视图相关联的视图也删除掉创建视图和索引详细创建索引的语句可以参见协助CREATE INDEX,删除索引DROP INDEX。高级SQL-游标建立定义一个游标:DECLARE au_lnameVARCHAR(30)DECLARE authors_cursor CURSOR FOR SELECT au_lnameFROM authorsOPEN authors_cursor翻开游标:FETCH NEXT FROM authors_cursor INTO au_lname取游标志录:阅读游标志录:WHILE FETCH_STATUS
27、 = 0 BEGIN print au_lnameFETCH NEXT FROM authors_cursor INTO au_lnameEND封锁游标:CLOSE authors_cursor释放游标:DEALLOCATE authors_cursor高级SQL-存储过程CREATE PROC EDURE procedure_name ; number parameter data_type VARYING = default OUTPUT ,.n WITH RECOMPILE | ENCRYPTION | RECOMPILE , ENCRYPTION FOR REPLICATION AS
28、sql_statement .n 高级SQL-触发器语法:create trigger trigger_nameon table_namefor insert, update, deleteas SQL_Statements根本的事务控制 TRANSACTION BEGIN TRANSACTIONBEGIN TRAN SACTION transaction_name | tran_name_variable WITH MARK description COMMIT TRANSACTIONCOMMIT TRAN SACTION transaction_name | tran_name_varia
29、ble ROLLBACK TRANSACTIONROLLBACK TRAN SACTION transaction_name | tran_name_variable| savepoint_name | savepoint_variable 根本的事务控制 TRANSACTION Transaction运用use ufdata_887_2004select * from accinformation where cid = 99begin TRANSACTION testupdate accinformation set cvalue = 8.50 where cid = 99rollback transaction test存储过程的执行EXECUTE execEXEC UTE ( string_variable | N tsql_string + .n )EXECUTE proc_calculate_taxes p2 = A 存储过程的执行下例运用 xp_cmdshell 扩展存储过程列出文件扩展名为 .exe 的一切文件的目录。USE masterEXECUTE xp_cmdshell dir
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年发布:版权授权合同范例
- 2024年太原客运资格证应用能力试题
- 2024年信阳道路旅客运输从业资格证模拟考试
- 2023届新高考化学选考一轮总复习训练-热点16 官能团的性质与有机反应类型
- 2024年乌鲁木齐客运从业资格证考试答题技巧与方法
- 2024年朔州客运从业资格证的考题
- 2024年加油站计量与质量检测设备采购承包合同
- 教师资格考试小学教育教学知识与能力试题与参考答案
- 《第二节 区域工业化与城市化-以我国珠江三角洲地区为例》(同步训练)高中地理必修3
- 基于流固耦合的加筋膨胀土边坡稳定性分析
- 统编版语文六年级上册第八单元大单元整体教学设计
- 教师个人业务学习笔记(41篇)
- 2025年高考语文复习备考复习策略讲座
- 数学史上的三次数学危机
- 2024年水电暖安装承包合同
- 缺乳(乳汁淤积)产妇的中医护理
- 2024北师大版新教材初中数学七年级上册内容解读课件(深度)
- 2024年公共营养师三级考试试卷及答案
- 2024年上半年软考信息系统项目管理师真题
- 北京市西城区2023-2024学年高一下学期期末英语试题(解析版)
- 三位数乘两位数乘法竖式计算练习100道及答案
评论
0/150
提交评论