ImageVerifierCode 换一换
格式:DOCX , 页数:58 ,大小:38.66KB ,
资源ID:8571473      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8571473.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(sql server 基础教程B.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

sql server 基础教程B.docx

1、sql server 基础教程BSQL join 用于根据两个或多个表中的列之间的关系,从这些表中查询数据。Join 和 Key有时为了得到完整的结果,我们需要从两个或更多的表中获取结果。我们就需要执行 join。数据库中的表可通过键将彼此联系起来。主键(Primary Key)是一个列,在这个列中的每一行的值都是唯一的。在表中,每个主键的值都是唯一的。这样做的目的是在不重复每个表中的所有数据的情况下,把表间的数据交叉捆绑在一起。请看 Persons 表:Id_PLastNameFirstNameAddressCity1AdamsJohnOxford StreetLondon2BushGeor

2、geFifth AvenueNew York3CarterThomasChangan StreetBeijing请注意,Id_P 列是 Persons 表中的的主键。这意味着没有两行能够拥有相同的 Id_P。即使两个人的姓名完全相同,Id_P 也可以区分他们。接下来请看 Orders 表:Id_OOrderNoId_P177895324467833224561424562153476465请注意,Id_O 列是 Orders 表中的的主键,同时,Orders 表中的 Id_P 列用于引用 Persons 表中的人,而无需使用他们的确切姓名。请留意,Id_P 列把上面的两个表联系了起来。引用两个

3、表我们可以通过引用两个表的方式,从两个表中获取数据:谁订购了产品,并且他们订购了什么产品?SELECT Persons.LastName, Persons.FirstName, Orders.OrderNoFROM Persons, OrdersWHERE Persons.Id_P = Orders.Id_P 结果集:LastNameFirstNameOrderNoAdamsJohn22456AdamsJohn24562CarterThomas77895CarterThomas44678SQL JOIN - 使用 Join除了上面的方法,我们也可以使用关键词 JOIN 来从两个表中获取数据。如

4、果我们希望列出所有人的定购,可以使用下面的 SELECT 语句:SELECT Persons.LastName, Persons.FirstName, Orders.OrderNoFROM PersonsINNER JOIN OrdersON Persons.Id_P = Orders.Id_PORDER BY Persons.LastName结果集:LastNameFirstNameOrderNoAdamsJohn22456AdamsJohn24562CarterThomas77895CarterThomas44678不同的 SQL JOIN除了我们在上面的例子中使用的 INNER JOIN

5、(内连接),我们还可以其他几种连接。下面列出了您可以使用的 JOIN 类型,以及它们之间的差异。 JOIN: 如果表中有至少一个匹配,则返回行 LEFT JOIN: 即使右表中没有匹配,也从左表返回所有的行 RIGHT JOIN: 即使左表中没有匹配,也从右表返回所有的行 FULL JOIN: 只要其中一个表中存在匹配,就返回行 SQL INNER JOIN 关键字 在表中存在至少一个匹配时,INNER JOIN 关键字返回行。 INNER JOIN 关键字语法 SELECT column_name(s) FROM table_name1 INNER JOIN table_name2 ON t

6、able_name1.column_name=table_name2.column_name 注释:INNER JOIN 与 JOIN 是相同的。 原始的表 (用在例子中的): Persons 表:Id_PLastNameFirstNameAddressCity1AdamsJohnOxford StreetLondon2BushGeorgeFifth AvenueNew York3CarterThomasChangan StreetBeijing Orders 表:Id_OOrderNoId_P177895324467833224561424562153476465 内连接(INNER JOI

7、N)实例 现在,我们希望列出所有人的定购。 您可以使用下面的 SELECT 语句: SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo FROM Persons INNER JOIN Orders ON Persons.Id_P=Orders.Id_P ORDER BY Persons.LastName 结果集:LastNameFirstNameOrderNoAdamsJohn22456AdamsJohn24562CarterThomas77895CarterThomas44678 INNER JOIN 关键字在表中存在至少一个

8、匹配时返回行。如果 Persons 中的行在 Orders 中没有匹配,就不会列出这些行。 SQL LEFT JOIN 关键字 LEFT JOIN 关键字会从左表 (table_name1) 那里返回所有的行,即使在右表 (table_name2) 中没有匹配的行。 LEFT JOIN 关键字语法 SELECT column_name(s) FROM table_name1 LEFT JOIN table_name2 ON table_name1.column_name=table_name2.column_name 注释:在某些数据库中, LEFT JOIN 称为 LEFT OUTER JO

9、IN。 原始的表 (用在例子中的): Persons 表:Id_PLastNameFirstNameAddressCity1AdamsJohnOxford StreetLondon2BushGeorgeFifth AvenueNew York3CarterThomasChangan StreetBeijing Orders 表:Id_OOrderNoId_P177895324467833224561424562153476465 左连接(LEFT JOIN)实例 现在,我们希望列出所有的人,以及他们的定购 - 如果有的话。 您可以使用下面的 SELECT 语句: SELECT Persons.

10、LastName, Persons.FirstName, Orders.OrderNo FROM Persons LEFT JOIN Orders ON Persons.Id_P=Orders.Id_P ORDER BY Persons.LastName 结果集:LastNameFirstNameOrderNoAdamsJohn22456AdamsJohn24562CarterThomas77895CarterThomas44678BushGeorge LEFT JOIN 关键字会从左表 (Persons) 那里返回所有的行,即使在右表 (Orders) 中没有匹配的行。 SQL RIGHT

11、JOIN 关键字 RIGHT JOIN 关键字会右表 (table_name2) 那里返回所有的行,即使在左表 (table_name1) 中没有匹配的行。 RIGHT JOIN 关键字语法 SELECT column_name(s) FROM table_name1 RIGHT JOIN table_name2 ON table_name1.column_name=table_name2.column_name 注释:在某些数据库中, RIGHT JOIN 称为 RIGHT OUTER JOIN。 原始的表 (用在例子中的): Persons 表:Id_PLastNameFirstNameA

12、ddressCity1AdamsJohnOxford StreetLondon2BushGeorgeFifth AvenueNew York3CarterThomasChangan StreetBeijing Orders 表:Id_OOrderNoId_P177895324467833224561424562153476465 右连接(RIGHT JOIN)实例 现在,我们希望列出所有的定单,以及定购它们的人 - 如果有的话。 您可以使用下面的 SELECT 语句: SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo FROM

13、 Persons RIGHT JOIN Orders ON Persons.Id_P=Orders.Id_P ORDER BY Persons.LastName 结果集:LastNameFirstNameOrderNoAdamsJohn22456AdamsJohn24562CarterThomas77895CarterThomas4467834764 RIGHT JOIN 关键字会从右表 (Orders) 那里返回所有的行,即使在左表 (Persons) 中没有匹配的行。 SQL FULL JOIN 关键字 只要其中某个表存在匹配,FULL JOIN 关键字就会返回行。 FULL JOIN 关

14、键字语法 SELECT column_name(s) FROM table_name1 FULL JOIN table_name2 ON table_name1.column_name=table_name2.column_name 注释:在某些数据库中, FULL JOIN 称为 FULL OUTER JOIN。 原始的表 (用在例子中的): Persons 表:Id_PLastNameFirstNameAddressCity1AdamsJohnOxford StreetLondon2BushGeorgeFifth AvenueNew York3CarterThomasChangan Str

15、eetBeijing Orders 表:Id_OOrderNoId_P177895324467833224561424562153476465 全连接(FULL JOIN)实例 现在,我们希望列出所有的人,以及他们的定单,以及所有的定单,以及定购它们的人。 您可以使用下面的 SELECT 语句: SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo FROM Persons FULL JOIN Orders ON Persons.Id_P=Orders.Id_P ORDER BY Persons.LastName 结果集:Last

16、NameFirstNameOrderNoAdamsJohn22456AdamsJohn24562CarterThomas77895CarterThomas44678BushGeorge34764 FULL JOIN 关键字会从左表 (Persons) 和右表 (Orders) 那里返回所有的行。如果 Persons 中的行在表 Orders 中没有匹配,或者如果 Orders 中的行在表 Persons 中没有匹配,这些行同样会列出。 SQL UNION 操作符 UNION 操作符用于合并两个或多个 SELECT 语句的结果集。 请注意,UNION 内部的 SELECT 语句必须拥有相同数量的

17、列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。 SQL UNION 语法 SELECT column_name(s) FROM table_name1 UNION SELECT column_name(s) FROM table_name2 注释:默认地,UNION 操作符选取不同的值。如果允许重复的值,请使用 UNION ALL。 SQL UNION ALL 语法 SELECT column_name(s) FROM table_name1 UNION ALL SELECT column_name(s) FROM table_name2 另外,UNION

18、 结果集中的列名总是等于 UNION 中第一个 SELECT 语句中的列名。 下面的例子中使用的原始表: Employees_China:E_IDE_Name01Zhang, Hua02Wang, Wei03Carter, Thomas04Yang, Ming Employees_USA:E_IDE_Name01Adams, John02Bush, George03Carter, Thomas04Gates, Bill 使用 UNION 命令 实例 列出所有在中国和美国的不同的雇员名: SELECT E_Name FROM Employees_China UNION SELECT E_Name

19、 FROM Employees_USA 结果E_NameZhang, HuaWang, WeiCarter, ThomasYang, MingAdams, JohnBush, GeorgeGates, Bill 注释:这个命令无法列出在中国和美国的所有雇员。在上面的例子中,我们有两个名字相同的雇员,他们当中只有一个人被列出来了。UNION 命令只会选取不同的值。 UNION ALL UNION ALL 命令和 UNION 命令几乎是等效的,不过 UNION ALL 命令会列出所有的值。 SQL Statement 1 UNION ALL SQL Statement 2 使用 UNION ALL

20、 命令 实例: 列出在中国和美国的所有的雇员: SELECT E_Name FROM Employees_China UNION ALL SELECT E_Name FROM Employees_USA 结果E_NameZhang, HuaWang, WeiCarter, ThomasYang, MingAdams, JohnBush, GeorgeCarter, ThomasGates, BillSQL SELECT INTO 语句可用于创建表的备份复件。SELECT INTO 语句SELECT INTO 语句从一个表中选取数据,然后把数据插入另一个表中。SELECT INTO 语句常用于创

21、建表的备份复件或者用于对记录进行存档。SQL SELECT INTO 语法您可以把所有的列插入新表:SELECT *INTO new_table_name IN externaldatabase FROM old_tablename或者只把希望的列插入新表:SELECT column_name(s)INTO new_table_name IN externaldatabase FROM old_tablenameSQL SELECT INTO 实例 - 制作备份复件下面的例子会制作 Persons 表的备份复件:SELECT *INTO Persons_backupFROM PersonsIN

22、 子句可用于向另一个数据库中拷贝表:SELECT *INTO Persons IN Backup.mdbFROM Persons如果我们希望拷贝某些域,可以在 SELECT 语句后列出这些域:SELECT LastName,FirstNameINTO Persons_backupFROM PersonsSQL SELECT INTO 实例 - 带有 WHERE 子句我们也可以添加 WHERE 子句。下面的例子通过从 Persons 表中提取居住在 Beijing 的人的信息,创建了一个带有两个列的名为 Persons_backup 的表:SELECT LastName,FirstnameINT

23、O Persons_backupFROM PersonsWHERE City=BeijingSQL SELECT INTO 实例 - 被连接的表从一个以上的表中选取数据也是可以做到的。下面的例子会创建一个名为 Persons_Order_Backup 的新表,其中包含了从 Persons 和 Orders 两个表中取得的信息:SELECT Persons.LastName,Orders.OrderNoINTO Persons_Order_BackupFROM PersonsINNER JOIN OrdersON Persons.Id_P=Orders.Id_PCREATE DATABASE 语

24、句CREATE DATABASE 用于创建数据库。SQL CREATE DATABASE 语法CREATE DATABASE database_nameSQL CREATE DATABASE 实例现在我们希望创建一个名为 my_db 的数据库。我们使用下面的 CREATE DATABASE 语句:CREATE DATABASE my_db可以通过 CREATE TABLE 来添加数据库表。CREATE TABLE 语句CREATE TABLE 语句用于创建数据库中的表。SQL CREATE TABLE 语法CREATE TABLE 表名称(列名称1 数据类型,列名称2 数据类型,列名称3 数据

25、类型,.)数据类型(data_type)规定了列可容纳何种数据类型。下面的表格包含了SQL中最常用的数据类型:数据类型描述 integer(size) int(size) smallint(size) tinyint(size)仅容纳整数。在括号内规定数字的最大位数。 decimal(size,d) numeric(size,d)容纳带有小数的数字。size 规定数字的最大位数。d 规定小数点右侧的最大位数。char(size)容纳固定长度的字符串(可容纳字母、数字以及特殊字符)。在括号中规定字符串的长度。varchar(size)容纳可变长度的字符串(可容纳字母、数字以及特殊的字符)。在括号

26、中规定字符串的最大长度。date(yyyymmdd)容纳日期。SQL CREATE TABLE 实例本例演示如何创建名为 Person 的表。该表包含 5 个列,列名分别是:Id_P、LastName、FirstName、Address 以及 City:CREATE TABLE Persons(Id_P int,LastName varchar(255),FirstName varchar(255),Address varchar(255),City varchar(255)Id_P 列的数据类型是 int,包含整数。其余 4 列的数据类型是 varchar,最大长度为 255 个字符。空的

27、Persons 表类似这样:Id_PLastNameFirstNameAddressCity可使用 INSERT INTO 语句向空表写入数据。SQL DEFAULT 约束DEFAULT 约束用于向列中插入默认值。如果没有规定其他的值,那么会将默认值添加到所有的新纪录。SQL DEFAULT Constraint on CREATE TABLE下面的 SQL 在 Persons 表创建时为 City 列创建 DEFAULT 约束:My SQL / SQL Server / Oracle / MS Access:CREATE TABLE Persons(Id_P int NOT NULL,Las

28、tName varchar(255) NOT NULL,FirstName varchar(255),Address varchar(255),City varchar(255) DEFAULT Sandnes)通过使用类似 GETDATE() 这样的函数,DEFAULT 约束也可以用于插入系统值:CREATE TABLE Orders(Id_O int NOT NULL,OrderNo int NOT NULL,Id_P int,OrderDate date DEFAULT GETDATE()SQL DEFAULT Constraint on ALTER TABLE如果在表已存在的情况下为 C

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1