SQL Server基础

Similar documents
目錄 C ontents Chapter MTA Chapter Chapter

Transact-SQL是一种定义、操作并控制数据的语言

untitled

untitled

ebook46-23

6-1 Table Column Data Type Row Record 1. DBMS 2. DBMS MySQL Microsoft Access SQL Server Oracle 3. ODBC SQL 1. Structured Query Language 2. IBM

1-1 database columnrow record field 不 DBMS Access Paradox SQL Server Linux MySQL Oracle IBM Informix IBM DB2 Sybase 1-2

SQL Server SQL Server SQL Mail Windows NT

學 科 100% ( 為 單 複 選 題, 每 題 2.5 分, 共 100 分 ) 1. 請 參 閱 附 圖 作 答 : (A) 選 項 A (B) 選 項 B (C) 選 項 C (D) 選 項 D Ans:D 2. 下 列 對 於 資 料 庫 正 規 化 (Normalization) 的 敘

习题1

SP_ SP_03 JAVA...6 SP_10 SQL...8 SP_ SP_ SP_ SP_ SP_ SP_ SP_ SP_04.NET...33 SP_02 C...37 SP_05

DB2 (join) SQL DB2 11 SQL DB2 SQL 9.1 DB2 DB2 ( ) SQL ( ) DB2 SQL DB2 DB2 SQL DB2 DB2 SQL DB2 ( DB2 ) DB2 DB2 DB2 SQL DB2 (1) SQL (2) S

epub 61-6

未命名

PowerPoint Presentation

untitled

01 SQL Server SQL Server 2008 SQL Server 6-1 SSIS SQL Server ( master ) ( msdb ) SQL Server ( master ) master 6-1 DTS sysadmin 6-1 sysa

11.2 overview

四川省普通高等学校

123

目錄

一步一步教你搞网站同步镜像!|动易Cms

Microsoft PowerPoint - 05-SQL3-advanced.ppt

SQL: Interactive Queries (2)

ebook 165-5

Oracle 4

untitled

教 学 目 标 描 述 主 要 数 据 库 对 象 创 建 表 描 述 列 定 义 时 可 用 的 数 据 类 型 改 变 表 的 定 义 删 除 改 名 和 截 断 表 描 述 每 个 DML 语 句 插 入 行 到 表 中 更 新 表 中 的 行 从 表 中 删 除 行 描 述 约 束 创 建

Business Objects 5.1 Windows BusinessObjects 1

单元四数据的查询 数据库原理与应用 课内例题 任务 5 多表查询 课内例题 例创建数据表 orders, 并向表中添加记录 首先创建表 orders,sql 语句如下 : CREATE TABLE orders( o_num int NOT NULL AUTO_INCREMENT, o_date d

RW Focus Asia Whitepaper CH1029

untitled

starter_pdfmerge

PowerPoint Presentation

Oracle高级复制冲突解决机制的研究

untitled

数 据 库 系 统 基 础 2/54 第 6 章 数 据 库 管 理 与 维 护

四川天一学院信息工程系毛玉环

Microsoft Windows XP

回滚段探究

Microsoft Word 年9月二级VF真卷.doc

基于UML建模的管理管理信息系统项目案例导航——VB篇

ebook 132-2

精 品 库 我 们 的 都 是 精 品 _www.jingpinwenku.com (8) 数 据 库 数 据 库 系 统 和 数 据 库 管 理 系 统 之 问 的 关 系 是 ( ) A) 数 据 库 包 括 数 据 库 系 统 和 数 据 库 管 理 系 统 B) 数 据 库 系 统 包 括

untitled

基于ECO的UML模型驱动的数据库应用开发1.doc

R D B M S O R D B M S R D B M S / O R D B M S R D B M S O R D B M S 4 O R D B M S R D B M 3. ORACLE Server O R A C L E U N I X Windows NT w w

gebook84-1

Microsoft Word - template.doc

一 個 SQL Injection 實 例 的 啟 示 頁 2 / 6 因 此, 在 知 名 網 站 上 看 到 SQL Injection, 讓 人 驚 心, 卻 不 意 外 網 站 專 案 外 包 是 目 前 業 界 的 常 態, 而 在 價 格 取 勝 的 制 度 下, 低 價 得 標 的 S

SDK 概要 使用 Maven 的用户可以从 Maven 库中搜索 "odps-sdk" 获取不同版本的 Java SDK: 包名 odps-sdk-core odps-sdk-commons odps-sdk-udf odps-sdk-mapred odps-sdk-graph 描述 ODPS 基

投影片 1

Oracle Database 10g: SQL (OCE) 的第一堂課

Microsoft Word - 序+目錄.doc

Microsoft Word - p11.doc

上海市本科教学质量年度报告

ebook45-5

Important Notice SUNPLUS TECHNOLOGY CO. reserves the right to change this documentation without prior notice. Information provided by SUNPLUS TECHNOLO

KillTest 质量更高 服务更好 学习资料 半年免费更新服务

先进制造技术是近几年提得较多,叫得较响的一个专用词语,而且先进制造技术在机械制造业领域中的应用越来越广泛而深入,并取得了很大的成绩

untitled

2007

Microsoft Word - (web)_F.1_Notes_&_Application_Form(Chi)(non-SPCCPS)_16-17.doc

作业参考答案

第1套

RW Salary Survey China A4

Careers Guidance 2016 Web.pdf

KillTest 质量更高 服务更好 学习资料 半年免费更新服务

三. 发现表被删除, 开始着手解决 1. 该表所在表空间离线 ( 确保删除表所在位置不会被重写 ) SQL> alter tablespace raw_odu offline; Tablespace altered. 2. 通过 logmnr, 找出被删除的数据 data _object _id 1

Microsoft PowerPoint - Ch6

EPSON Safety Instructions Manual

第1章 簡介

项目 3 创建和管理表 任务实现 Office Visio PK 3 FK FK1 3.1 相关知识 SQL Server 一 制订表规划 1. 表要存储什么对象 2. 表中每一列的数据类型和长度 059

0SQL SQL SQL SQL SQL 3 SQL DBMS Oracle DBMS DBMS DBMS DBMS RDBMS R DBMS 2 DBMS RDBMS R SQL SQL SQL SQL SELECT au_fname,au_ lname FROM authors ORDER BY

錄...1 說...2 說 說...5 六 率 POST PAY PREPAY DEPOSIT 更

Microsoft Word 徐俊劲.doc

卡尔费休库仑滴定仪和水蒸发器测量卡氏炉标准物质

季刊9web.indd

MySQL資料庫教學

untitled

untitled

数据库系统概论

coverage2.ppt

Microsoft PowerPoint - Lecture7II.ppt

sql> startup mount 改变数据库的归档模式 sql> alter database archivelog # 打开数据库 sql> alter database open 禁止归档模式 sql> shutdown immediate sql>startup mount sql> al

Microsoft Word - 43屆2011年國際化奧總報告 revised by FTS.doc

幻灯片 1

f2.eps

创建数据表语法格式

<4D F736F F D20BBB7BEB3D0C5CFA2CFB5CDB3CAFDBEDDBFE2B7C3CECABDD3BFDAB9E6B7B6A3A8B1A8C5FAB8E5A3A E646F63>

Program Guide(中文).PDF

ebook 96-16

ch_code_infoaccess

プリント

VB控件教程大全

ebook140-9

2 2 3 DLight CPU I/O DLight Oracle Solaris (DTrace) C/C++ Solaris DLight DTrace DLight DLight DLight C C++ Fortran CPU I/O DLight AM

创建数据表语法格式

(Microsoft PowerPoint - UML\302\262\244\266_use case.ppt)

Microsoft Word - SupplyIT manual 3_cn_david.doc

Transcription:

模块 2 开发用户登录模块 任务二设计表及存储过程

议程 : SQL Server 数据库对象 数据库 表 存储过程 T-SQL 基础 Select Update Delete Insert

1 数据库对象

1.1SQL Server 数据库对象 数据库 表 存储过程

1.2 数据库 创建数据库 事务日志 数据存储方式

1.2.1 创建数据库 创建数据库需要定义 : 数据库名 数据库大小 存储数据库的文件 CREATE DATABASE Sample ON PRIMARY ( NAME=SampleData, FILENAME='c:\Program Files\..\..\Data\Sample.mdf', SIZE=10MB, MAXSIZE=15MB, FILEGROWTH=20%) LOG ON ( NAME=SampleLog, FILENAME= 'c:\program Files\..\..\Data\Sample.ldf', SIZE=3MB, MAXSIZE=5MB, FILEGROWTH=1MB) COLLATE SQL_Latin1_General_Cp1_CI_AS

1.2.2 创建文件组 sys... sys... sysusers sysobjects Northwind Database... Orders Customers Products OrdHistYear2 OrdHistYear1 C:\ D:\ E:\ Northwind.mdf OrdHist1.ndf OrdHist2.ndf Northwind.Idf Default Filegroup OrderHistoryGroup

1.3 表 创建表 增加列

1.3.1 创建和删除表 创建表 Column name CREATE TABLE dbo.categories (CategoryID CategoryName Description Picture 列 Collation 指定 NULL 或 NOT NULL 计算列 删除表 Data type int IDENTITY (1,1) nvarchar(15) ntext image NULL or NOT NULL NOT NULL, NOT NULL, NULL, NULL)

1.3.2 增加和删除列 增加 ALTER TABLE CategoriesNew ADD Commission money null Customer_name Sales_amount Sales_date Customer ID Commission ALTER TABLE CategoriesNew DROP COLUMN Sales_date 删除

1.4 存储过程 存储过程定义 存储过程处理过程 创建和修改存储过程

1.4.1 存储过程 命名的 T-SQL 语句的集合 ( 批量 SQL) 封装了重复性的任务代码 ( 复用 ) 接受输入参数和返回值 返回状态值表示成功或失败 返回数据行

1.4.2 创建存储过程 在当前数据库中使用 CREATE PROCEDURE 语句创建 USE Northwind CREATE PROC dbo.overdueorders AS SELECT * 至多嵌套 32 级 使用 FROM sp_help dbo.orders 显示相关信息 WHERE RequiredDate < GETDATE() AND ShippedDate IS Null

1.4.3 执行存储过程 执行存储过程 EXEC OverdueOrders 在 INSERT 语句中使用存储过程 INSERT INTO Customers EXEC EmployeeCustomer

1.4.5 使用输入参数 Validate All Incoming Parameter Values First Provide Appropriate Default Values and Include Null Checks CREATE PROCEDURE dbo.[year to Year Sales] @BeginningDate DateTime, @EndingDate DateTime AS IF @BeginningDate IS NULL OR @EndingDate IS NULL BEGIN RAISERROR('NULL values are not allowed', 14, 1) RETURN END SELECT O.ShippedDate, O.OrderID, OS.Subtotal, DATENAME(yy,ShippedDate) AS Year FROM ORDERS O INNER JOIN [Order Subtotals] OS ON O.OrderID = OS.OrderID WHERE O.ShippedDate BETWEEN @BeginningDate AND @EndingDate

1.4.6 执行带参数的存储过程 Passing Values by Parameter Name EXEC AddCustomer @CustomerID = 'ALFKI', @ContactName = 'Maria Anders', @CompanyName = 'Alfreds Futterkiste', @ContactTitle = 'Sales Representative', @Address = 'Obere Str. 57', @City = 'Berlin', @PostalCode = '12209', @Country = 'Germany', @Phone = '030-0074321' Passing Values by Position EXEC AddCustomer 'ALFKI2', 'Alfreds Futterkiste', 'Maria Anders', 'Sales Representative', 'Obere Str. 57', 'Berlin', NULL, '12209', 'Germany', '030-0074321'

1.4.7 使用输出参数返回值 Creating Stored Procedure Executing Stored Procedure Results of Stored Procedure CREATE PROCEDURE dbo.mathtutor @m1 smallint, @m2 smallint, @result smallint OUTPUT AS SET @result = @m1* @m2 DECLARE @answer smallint EXECUTE MathTutor 5,6, @answer OUTPUT SELECT 'The result is: ', @answer The result is: 30

2 T-SQL 基础

2.1T-SQL 基础 T-SQL 概述 SELECT 语句 INSERT 语句 UPDATE 语句 DELETE 语句

2.2Transact-SQL 语句类型 数据定义语句 (DDL Data Definition Language) CREATE ALTER DROP 数据控制语句 (DCL Data Control Language) GRANT DENY REVOKE 数据操纵语句 (DML Data Manipulation Language) SELECT INSERT UPDATE DELETE

2.3Transact-SQL 语法元素 批指令 (go) 注释 Identifiers 数据类型 变量 系统函数 操作符 表达式 控制流语句 保留关键词

2.4 使用 SELECT 语句获取数据 基本语法 多表的关联 子查询

2.4.1SELECT 语句基本语法 Select 列表中指定列 WHERE 子句中选定行 FROM 子句中选定表 Partial Syntax SELECT [ALL DISTINCT] <select_list> FROM {<table_source>} [, n] WHERE <search_condition>

2.4.2 指定列 USE northwind SELECT employeeid, lastname, firstname, title FROM employees employeeid lastname firstname title 1 Davolio Nancy Sales Representative 2 Fuller Andrew Vice President, Sales 3 Leverling Janet Sales Representative 4 Peacock Margaret Sales Representative 5 Buchanan Steven Sales Manager 6 Suyama Michael Sales Representative 7 King Robert Sales Representative 8 Callahan Laura Inside Sales Coordinator 9 Dodsworth Anne Sales Representative

2.4.3 使用 WHERE 子句选定行 USE northwind SELECT employeeid, lastname, firstname, title FROM employees WHERE employeeid = 5 employeeid lastname firstname title 5 Buchanan Steven Sales Manager

2.4.4 过滤数据的方式 使用比较操作符 (>, <, =) 使用字符串比较 (like) 使用逻辑操作符 (and/or) 获取一个范围内的值 (between) 使用值列表作为查询条件 (list) 获取无值的数据 (null)

2.4.5 使用比较操作符 USE northwind SELECT lastname, city FROM employees WHERE country = 'USA Example 1 lastname Davolio Fuller Leverling Peacock Callahan city Seattle Tacoma Kirkland Redmond Seattle

2.5.6 使用字符串比较 USE northwind SELECT companyname FROM customers WHERE companyname LIKE '%Restaurant% companyname GROSELLA-Restaurante Lonesome Pine Restaurant Tortuga Restaurante

2.4.7 使用逻辑操作符 Example 1 USE northwind SELECT productid, productname, supplierid, unitprice FROM products WHERE (productname LIKE 'T%' OR productid = 46) AND (unitprice > 16.00) productid productname supplierid unitprice 14 Tofu 6 23.25 29 Thüringer Rostbratwurst 12 123.79 62 Tarte au sucre 29 49.3

2.4.8 获取一个范围内的值 USE northwind SELECT productname, unitprice FROM products WHERE unitprice BETWEEN 10 AND 20 Example 1 productname unitprice Chai 18 Chang 19 Aniseed Syrup 10 Genen Shouyu 15.5 Pavlova 17.45 Sir Rodney s Scones 10

2.4.9 使用值列表作为查询条件 USE northwind SELECT companyname, country FROM suppliers WHERE country IN ('Japan', 'Italy') Example 1 companyname Tokyo Traders Mayumi s Formaggi Fortini s.r.l. Pasta Buttini s.r.l. country Japan Japan Italy Italy

2.4.10 获取无值的数据 USE northwind SELECT companyname, fax FROM suppliers WHERE fax IS NULL companyname Exotic Liquids New Orleans Cajun Delights Tokyo Traders Cooperativa de Quesos Las Cabras fax NULL NULL NULL NULL

2.4.11 数据排序 Example 1 USE northwind SELECT productid, productname, categoryid, unitprice FROM products ORDER BY categoryid, unitprice DESC productid productname categoryid unitprice 38 Cote de Blaye 1 263.5000 43 Ipoh Coffee 1 46.0000 2 Chang 1 19.0000 63 Vegie-spread 2 43.9000 8 Northwoods Cranberry Sauce 2 40.0000 61 Sirop d'érable 2 28.5000

2.4.12 消除重复行 USE northwind SELECT DISTINCT country FROM suppliers ORDER BY country Example 1 country Australia Brazil Canada Denmark Finland France Germany Italy Japan Netherlands Norway Singapore Spain Sweden UK USA

2.4.13 列出 TOP n 记录 Lists Only the First n Rows of a Result Set Specifies the Range of Values in the ORDER BY Clause Returns Ties if WITH TIES Is Used Example 1 USE northwind SELECT TOP 5 orderid, productid, quantity FROM [order details] ORDER BY quantity DESC Example 2 USE northwind SELECT TOP 5 WITH TIES orderid, productid, quantity FROM [order details] ORDER BY quantity DESC

2.4.14 使用聚合函数 Aggregate function Description AVG COUNT COUNT (*) MAX MIN SUM STDEV STDEVP VAR VARP Average of values in a numeric expression Number of values in an expression Number of selected rows Highest value in the expression Lowest value in the expression Total values in a numeric expression Statistical deviation of all values Statistical deviation for the population Statistical variance of all values Statistical variance of all values for the population

2.4.15 使用 GROUP BY 子句 USE northwind SELECT productid, orderid,quantity FROM orderhist productid orderid quantity 1 1 5 1 1 10 2 1 10 2 2 25 3 1 15 3 2 30 USE northwind SELECT productid,sum(quantity) AS total_quantity FROM orderhist GROUP BY productid Only rows that satisfy the WHERE clause are grouped productid total_quantity 1 15 2 35 3 45 productid total_quantity 2 35 USE northwind SELECT productid,sum(quantity) AS total_quantity FROM orderhist WHERE productid = 2 GROUP BY productid

2.4.16 使用 GROUP BY 和 HAVING 子句 USE northwind SELECT productid, orderid,quantity FROM orderhist productid orderid quantity 1 1 5 1 1 10 2 1 10 2 2 25 USE northwind SELECT productid, SUM(quantity) AS total_quantity FROM orderhist GROUP BY productid HAVING SUM(quantity)>=30 productid total_quantity 2 35 3 45 3 1 15 3 2 30

2.5 修改数据 INSERT UPDATE DELETE

2.5.1 插入一行记录 Must Adhere to Destination Constraints or the INSERT Transaction Fails Use a Column List to Specify Destination Columns Specify a Corresponding List of Values USE northwind INSERT customers (customerid, companyname, contactname, contacttitle,address, city, region, postalcode, country, phone,fax) VALUES ('PECOF', 'Pecos Coffee Company', 'Michael Dunn','Owner', '1900 Oak Street', 'Vancouver', 'BC','V3F 2K1', 'Canada', '(604) 555-3392','(604) 555-7293')

2.5.3 使用 DELETE 语句删除数据 DELECT 和 WHERE 语句合用删除一条或多条语句 所有删除的行都记录在事务日志中 USE northwind DELETE orders WHERE DATEDIFF(MONTH, shippeddate, GETDATE()) >= 6

2.5.4 使用 TRUNCATE TABLE 语句 TRUNCATE TABLE 语句删除表中所有记录 SQL Server 保留表结构和相关对象 事务日志中仅记录释放数据页面的行为 USE northwind TRUNCATE TABLE orders

2.5.5 基于表中数据进行更新 WHERE 子句中指定要更新的行 SET 关键词指定值 输入值必须与列的数据类型相同 USE northwind UPDATE products SET unitprice = (unitprice * 1.1)

任务 : 设计用户表及存储过程 1. 设计用户表 2. 创建用户存储过程 3. 修改用户存储过程 4. 删除用户存储过程 5. 判断用户登录存储过程

1. 数据库 ; 2. 表 ; 3. 存储过程 ; 4.T-SQL 语句 小结 & 问题讨论