--第六章--使用Transact-SQL语言和企业管理器管理数据库
--用户可以是用DDL 创建一个标准表Member 在Yuguang 数据库中。CREATE TABLE 语句用来创建表,新表有4列:
Use Yuguang
CREATE TABLE Member
(id smallint,
username char(20),
truename char(20),
email char(10))
GO
--用户可以通过ALTER TABLE 在Member表中增加一列叫做address。
ALTER TABLE Member
ADD address char(50)
GO
--删除Member表的语句:
DROP TABLE Member
GO
--用户希望给Member 表中增加一个新的用户,则用户可以这样使用INSERT语句:
INSERT INTO Member
( username, truename, email)
VALUES ("argentina", "yuguang", "[email protected]")
--用于id是自增长的,所以在插入的时候不必插入,SQL会自动生成。如果用户不指定子段名称,比如
INSERT INTO Member
VALUES ("argentina ", " yuguang ", " [email protected] ")
--用户还可以把用户名是yuguang的用户记录提取出来:
SELECT id, username FROM Member
WHERE username = "yuguang"
--用户fuyuguang希望更改他的用户名成为use_yuguang,则可以通过下面的步骤:
UPDATE Member
SET username = "use_yuguang"
WHERE truename = "yuguang"
--删除Member表中的所有行,通过下面两个语句当中的一个:
DELETE FROM Member
DELETE Member
--用来删除Member表中所有id小于100的记录,通过下面的语句:
DELETE FROM Member
WHERE id < 100
--在DOS下运行OSQL 命令:
osql -U username -P password -S servername
--下面的代码就是一个简单的脚本:
use MyDB
go
sp_helpdb MyDB
go
sp_helpfilegroup
go
sp_spaceused Customer_Data
go
sp_spaceused Product_Info
go
--把所有authors表中的au_fname, au_lname两列提取出来:
SELECT au_fname, au_lname
FROM authors
如果用户使用OSQL命令行不要忘记敲入GO命令用来执行语句:
USE pubs
SELECT au_fname, au_lname
FROM authors
GO
--第一个查询使用了DISTINCT子句,第二个查询使用了TOP 60 PERCENT子句,第三个查询使用了TOP 6 子句。
SELECT DISTINCT au_fname, au_lname
FROM authors
GO
SELECT TOP 60 PERCENT au_fname, au_lname
FROM authors
GO
SELECT TOP 6 au_fname, au_lname
FROM authors
GO
--使用*可以返回所有查询的记录:
SELECT *
FROM sales
GO
--获取所有表中的所有被认证的列用户可以通过IDENTITYCOL子句。下面的这个例子使用了数据库Northwind:
USE Northwind
GO
SELECT IDENTITYCOL
FROM Employees
GO
--使用一个列名称可以允许用户声明一个列的头。用户可以使用特定的名称区分输出列中的数据。当在不同的表中存在两行或者更多的行拥有相同的名字的时候,用户可以通过在对应表的列名称中加入特殊信息用以区分数据。下面是一个实例:
USE pubs
GO
SELECT lname
FROM employee
GO
--如果用户希望把原来的lname更新成显示"员工的姓氏" 则需要运行以下的语句:
SELECT lname AS "员工的姓氏"
FROM employee
GO
--用户还可以指定特定输出结果的列名称,如下所示,显示最大的job_id的列名称是"最大工作ID":
SELECT MAX(job_id) AS "最大工作ID"
FROM employee
GO
--用户还可以在SELECT中使用ORDER BY子句。下面的语句用来返回卖出书籍的数量和书籍存储编号。
SELECT SUM(qty) AS Quantity_of_Books, stor_id
FROM sales
GROUP BY stor_id
ORDER BY Quantity_of_Books
GO
--如果用户不指定SUM(qty)的名称,则列的名称将成为"无名列",语句如下::
SELECT SUM(qty), stor_id FROM sales
GROUP BY stor_id
ORDER BY SUM(qty)
GO
--derived table 用来从其他表中获取数据用于当前数据库表的查询工作:
USE pubs
GO
SELECT t.stor_name
FROM stores AS t, (SELECT stor_id, COUNT(DISTINCT discounttype)
AS d_count
FROM discounts
GROUP BY stor_id) AS w
WHERE t.stor_id = w.stor_id AND
w.d_count >= 1
GO
--inner join 将声明仅仅符合ON条件的记录才能被加入到结果中。实例操作:
SELECT f.stor_id, e.discounttype
FROM stores f JOIN discounts e
ON f.stor_id = e.stor_id
GO
--Full Outer Joins指定在结果集中包含左表或右表中不满足联接条件的行,并将对应于另一个表的输出列设为 NULL。实例如下:
SELECT f.stor_id, e.discounttype
FROM stores f FULL OUTER JOIN discounts e
ON f.stor_id = e.stor_id
GO
--Left Outer Joins指定在结果集中包含左表中所有不满足联接条件的行,且在由内联接返回所有的行之外,将另外一个表的输出列设为 NULL。
SELECT f.stor_id, e.discounttype
FROM stores f LEFT OUTER JOIN discounts e
ON f.stor_id = e.stor_id
GO
--Right Outer Joins 指定在结果集中包含右表中所有不满足联接条件的行,且在由内联接返回的所有行之外,将与另外一个表对应的输出列设为 NULL。实例如下:
SELECT e.stor_id, f.discounttype
FROM stores e RIGHT OUTER JOIN discounts f
ON e.stor_id = f.stor_id
GO
--Cross Joins 指定两个表的矢量积,实例如下:
SELECT *
FROM stores
GO
SELECT *
FROM sales
GO
SELECT *
FROM stores CROSS JOIN sales
GO
--Table Aliases
SELECT t.stor_id, r.discounttype
FROM stores t RIGHT OUTER JOIN discounts r
ON t.stor_id = r.stor_id
GO
--下面的SELECT...INTO语句用来创建一个新的表,xinxi_guyuan,其中包括所有雇员的姓名和工作介绍:
SELECT employee.fname, employee.lname, jobs.job_desc
INTO xinxi_guyuan
FROM employee, jobs
WHERE employee.job_id = jobs.job_id
GO
--查找employee表中的用户名是yuguang的记录的所有信息。
SELECT *
FROM employee
WHERE lname = 'yuguang'
GO
--来查找job_id不等于1的记录:
SELECT job_desc
FROM jobs
WHERE job_id <> 1
GO
--逻辑操作AND 和 OR 用来返回布尔型数值TRUE, FALSE,或者UNKNOWN。下面的查询在WHERE查询中是用了逻辑操作AND。
SELECT job_desc, min_lvl, max_lvl
FROM jobs
WHERE min_lvl >= 120 AND
max_lvl <= 125
GO
--在下面的查询中,是用了一个OR 操作。
SELECT p.pub_name, p.state, t.title
FROM publishers p, titles t
WHERE p.state = "DC" OR
p.state = "MA" AND
t.pub_id = p.pub_id
GO
--NOT操作简单的返回布尔型变量:
SELECT t.title, r.royalty
FROM titles t, roysched r
WHERE t.title_id = r.title_id AND NOT
r.royalty < 10
GO
--寻找authors表中au_fname列中含有"c"的记录。
SELECT au_fname
FROM authors
WHERE au_fname LIKE '%c%'
GO
--下列语句用来查找作者ID中包括数字724的记录:
SELECT *
FROM authors
WHERE au_id LIKE '724-__-____'
GO
--查找authors中last names中的从"f" 到 "i"的纪录:
SELECT au_lname
FROM authors
WHERE au_lname LIKE "[f-i]%"
GO
--而符号[^]的使用方法和[]的方法相同,而两者的含义正好相反:
SELECT au_lname
FROM authors
WHERE au_lname LIKE '[^a-n]%'
GO
--用户还可以通过or来联系上述两个通配符:
SELECT au_lname
FROM authors
WHERE au_lname LIKE '[l-n]%' OR
au_lname LIKE '[t-z]%'
GO
--LIKE关键字还可以和NOT操作相结合,返回所有不匹配条件的记录:
SELECT title
FROM titles
WHERE title NOT LIKE '%Is%'
GO
--在 pubs 数据库 titles 表的 notes 列中搜索字符串"50% off when 100 or more copies are purchased":
USE pubs
GO
SELECT notes
FROM titles
WHERE notes LIKE '50%% off when 100 or more copies are purchased'
ESCAPE '%'
GO
--下面的语句用来查找书籍的价格在$20到$30之间的所有记录:
SELECT price, title
FROM titles
WHERE price BETWEEN 20.00 AND 30.00
GO
-- 用户还可以通过在BETWEEN中使用NOT关键字。下列的记录显示在$10 到 $40之外的书籍的记录:
SELECT price, title
FROM titles
WHERE price NOT BETWEEN 10.00 AND 40.00
GO
--下面的语句用来查找作者姓氏在" del Castillo " 到 "Hunter"之间的所有记录:
SELECT au_lname
FROM authors
WHERE au_lname BETWEEN 'del Castillo' AND 'Hunter'
GO
--查找书籍名称中advance没有内容的所有记录:
SELECT title , advance
FROM titles
WHERE advance IS NULL
GO
--IS NOT NULL的用法相同,但是意义相反:
SELECT title , advance
FROM titles
WHERE advance IS NOT NULL
GO
--IN关键字用来进行子查询,实例代码:
SELECT job_id , job_desc
FROM jobs
WHERE job_desc IN ('Operations Manager',
'Marketing Manager',
'Designer')
GO
--下面的实例应用了两次IN关键字:
SELECT fname, lname , job_id --uter query
FROM employee
WHERE job_id IN ( SELECT job_id --Inner query, or subquery
FROM jobs
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
2003062922102623563.zip (83个子文件)
第10章
第10章4.txt 174B
第10章1.txt 252B
第10章3.txt 73B
第10章8.txt 284B
SQL Server 2000第10章参考代码.txt 888B
第10章5.txt 89B
第10章7.txt 205B
第10章2.txt 86B
第10章6.txt 253B
第13章
第13章4.txt 111B
SQL Server 2000第13章参考代码.txt 2KB
第13章7.txt 106B
第13章5.txt 412B
第13章6.txt 224B
第13章2.txt 274B
第13章1.txt 234B
第13章3.txt 242B
第8章
SQL Server 2000第8章参考代码.txt 538B
第8章4.txt 68B
第8章5.txt 89B
第8章1.txt 365B
第8章3.txt 326B
第8章2.txt 1KB
第15章
第15章8.txt 300B
第15章1.txt 709B
第15章4.txt 151B
SQL Server 2000第15章参考代码.txt 224B
第15章2.txt 1KB
第15章9.txt 312B
第15章7.txt 203B
第15章3.TXT 206B
第15章11.txt 693B
第15章5.txt 719B
第15章10.txt 692B
第15章6.txt 647B
第7章
第7章3.txt 72B
SQL Server 2000第7章参考代码.txt 659B
第7章2.txt 73B
第7章1.txt 119B
第7章4.txt 144B
第9章
第9章4.txt 492B
SQL Server 2000第9章参考代码.txt 2KB
第9章3.txt 121B
第9章5.txt 1KB
第9章2.txt 117B
第9章1.txt 113B
第9章6.txt 95B
第11章
第11章2.txt 110B
第11章3.txt 403B
第11章1.txt 85B
第11章4.txt 179B
SQL Server 2000第11章参考代码.txt 1KB
第12章
第12章2.txt 1KB
第12章3.txt 302B
SQL Server 2000第12章参考代码.txt 2KB
第12章1.txt 898B
第6章
第6章6.txt 1KB
第6章4.txt 171B
第6章10.txt 2KB
第6章3.txt 119B
第6章5.txt 731B
第6章8.txt 652B
第6章12.txt 2KB
第6章1.txt 126B
第6章7.txt 149B
第6章9.txt 767B
第6章11.txt 3KB
SQL Server 2000第6章参考代码.txt 13KB
第6章2.txt 274B
第5章
SQL Server 2000第5章参考代码.txt 7KB
第5章10.txt 607B
第5章1.txt 494B
第5章2.txt 202B
第5章3.txt 863B
第5章4.txt 518B
第5章11.txt 386B
第5章9.txt 771B
第5章6.txt 109B
第5章5.txt 1KB
第5章8.txt 1KB
第5章7.txt 297B
第14章
第14章1.txt 142B
SQL Server 2000第14章参考代码.txt 310B
共 83 条
- 1
资源评论
普通网友
- 粉丝: 882
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功