《SQL 21日自学通(V3.0)(PDF格式)》第117章


SELECT COUNT(*) FROM ACCT_PAY; 
SELECT COUNT(*) FROM ACCT_REC; 
SELECT COUNT(*) FROM CUSTOMERS; 
SELECT COUNT(*) FROM EMPLOYEES; 
SELECT COUNT(*) FROM HISTORY; 
SELECT COUNT(*) FROM INVOICES; 
SELECT COUNT(*) FROM ORDERS; 
SELECT COUNT(*) FROM PRODUCTS; 
SELECT COUNT(*) FROM PROJECTS; 
SELECT COUNT(*) FROM VENDORS; 
现在 我们来执行这个文件 
INPUT/OUTPUT 
SQL》 SET ECHO ON 
SQL》 SET HEADING ON 
SQL》 START CNT。SQL 
SQL》 SELECT COUNT(*) FROM ACCT_PAY; 
COUNT(*) 
7 
SQL》 SELECT COUNT(*) FROM ACCT_REC; 
COUNT(*) 
9 
SQL》 SELECT COUNT(*) FROM CUSTOMERS; 
COUNT(*) 
5 
SQL》 SELECT COUNT(*) FROM EMPLOYEES; 
COUNT(*) 
359 
…………………………………………………………Page 360……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪 
10 
SQL》 SELECT COUNT(*) FROM HISTORY; 
COUNT(*) 
26 
SQL》 SELECT COUNT(*) FROM INVOICES; 
COUNT(*) 
0 
SQL》 SELECT COUNT(*) FROM ORDERS; 
COUNT(*) 
0 
SQL》 SELECT COUNT(*) FROM PRODUCTS; 
COUNT(*) 
10 
SQL》 SELECT COUNT(*) FROM PROJECTS; 
COUNT(*) 
16 
SQL》 SELECT COUNT(*) FROM VENDORS; 
COUNT(*) 
22 
SQL》 
分析 
Set echo on 可以让你在执行文件的时候看到其中的每一条语句 Set heading on 则可以 
显示每个 SELECT 语句的列标头 COUNT(*) 如果你还输入了 set feedback on 的话那么 
1 row selected 
将会出现在每个计数结果的后边 在这个例子中我们使用 SQL*PLUS 中的 START 命 
令来执行了 SQL 脚本 可是 如果你要处理的表不是 10 个而是 50 个时又会怎能样呢 
注 一定要正确地使用单引号以保证生成的 SQL 脚本的正确 你要把你想生成的全部语句 
都用单引号括起来 在本例中 你用单引号括起来的 SQL 语句如; "SELECT COUNT(*) 
FROM" 和 ";"。不会从表中选择数据 
360 
…………………………………………………………Page 361……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪 
为多个用户赋予系统权限 
作为一个数据库管理员或有维护其它用户任务的个体 你经常会收到一些用户的请求 
然后将不得不将某些权限赋予一些用户以使他们可以进行正常的数据库访问 你也会由于 
他们工作的变动而相应地改变他们的权限 这可以通过今天的方法来生成 GRANT 语句为 
多个用户赋予系统权限和规则 
INPUT 
SQL》 SET ECHO OFF 
SQL》 SET HEADING OFF 
SQL》 SET FEEDBACK OFF 
SQL》 SPOOL GRANTS。SQL 
SQL》 SELECT "GRANT CONNECT; RESOURCE TO " || USERNAME || ";" 
2 FROM SYS。DBA_USERS 
3 WHERE USERNAME NOT IN ("SYS";"SYSTEM";"SCOTT";"RYAN";"PO7";"DEMO") 
4 / 
OUTPUT 
GRANT CONNECT; RESOURCE TO KEVIN; 
GRANT CONNECT; RESOURCE TO JOHN; 
GRANT CONNECT; RESOURCE TO JUDITH; 
GRANT CONNECT; RESOURCE TO STEVE; 
GRANT CONNECT; RESOURCE TO RON; 
GRANT CONNECT; RESOURCE TO MARY; 
GRANT CONNECT; RESOURCE TO DEBRA; 
GRANT CONNECT; RESOURCE TO CHRIS; 
GRANT CONNECT; RESOURCE TO CAROL; 
GRANT CONNECT; RESOURCE TO EDWARD; 
GRANT CONNECT; RESOURCE TO BRANDON; 
GRANT CONNECT; RESOURCE TO JACOB; 
INPUT/OUTPUT 
SQL》 spool off 
361 
…………………………………………………………Page 362……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪 
SQL》 start grants。sql 
SQL》 GRANT CONNECT; RESOURCE TO KEVIN; 
Grant succeeded。 
SQL》 GRANT CONNECT; RESOURCE TO JOHN; 
Grant succeeded。 
SQL》 GRANT CONNECT; RESOURCE TO JUDITH; 
Grant succeeded。 
SQL》 GRANT CONNECT; RESOURCE TO STEVE; 
Grant succeeded。 
SQL》 GRANT CONNECT; RESOURCE TO RON; 
Grant succeeded。 
SQL》 GRANT CONNECT; RESOURCE TO MARY; 
Grant succeeded。 
SQL》 GRANT CONNECT; RESOURCE TO DEBRA; 
Grant succeeded。 
SQL》 GRANT CONNECT; RESOURCE TO CHRIS; 
Grant succeeded。 
SQL》 GRANT CONNECT; RESOURCE TO CAROL; 
Grant succeeded。 
SQL》 GRANT CONNECT; RESOURCE TO EDWARD; 
Grant succeeded。 
SQL》 GRANT CONNECT; RESOURCE TO BRANDON; 
Grant succeeded。 
SQL》 GRANT CONNECT; RESOURCE TO JACOB; 
Grant succeeded。 
分析 
除非你愿意手工地一条一条地去输入 否则在本例中你通过使用一个 SQL 语句来生成 
多个 GRANT 语句从而避免了大量的枯燥的击键工作 
注 下边的例子将省略掉你编辑输出文件的工作 你可以认为该文件已经编辑处理过了 
362 
…………………………………………………………Page 363……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪 
将你的表的权限赋予其它的用户 
将一个表的权限赋予其它的用户就像从表中选择一行一样地简单 可是 如?
小说推荐
返回首页返回目录