2010年5月28日 星期五

SQL2008-隨堂練習(5)

1.將emp資料表中的comm欄位的值是null的改為0(P272)
update emp
set comm=0
where comm is null

2.在emp資料表中將research部門的員工調薪5%
update emp 
set sal=sal*1.05
where deptno= ( select deptno from dept where danme='research')

3.

  • 在ord資料表中,將訂單編號'620'的訂單刪除
  • 在item資料表中,將訂單編號'620'的訂購記錄刪除
  • 重新執行第一題
select *from ord where ordid=620
go
select*from item where ordid=620
go
delete from ord
where ordid=620
go
delete from item
where ordid=620


4.在item資料表中,將客戶編號'106'的訂購記錄刪除
delete from item
where ordid in (select ordid from ord where custid=106)
                  

SQL2008-隨堂練習(4)

1.找出605號訂單的訂購日期、客戶的姓名、聯絡電話、訂購的產品及訂購的數量如下(P219)
select o.ordid, orderdate, name, phone, prodid, qty
from ord as o, customer as c, item as i
where o.custid = c.custid and i.ordid = o.ordid and o.ordid=605;


2.找出滯銷的產品(不曾被訂購的產品)如下(P226)
select p.prodid, descrip, ordid, i.prodid, qty
from product as p  left join item as i
on p.prodid = i.prodid
where ordid is null;


3.找出同一天進公司的員工如下(P229)
select a.empno, a.ename, a.hiredate, b.empno, b.ename, b.hiredate
from emp as a join emp as b
on a.hiredate = b.hiredate
where a.empno < b.empno
order by a.empno;


4.在資料表ord中找出客戶JOCKSPORTS曾下過的訂單如下P(246)
select ordid,orderdate, custid, total
from ord
where custid = ( select custid from customer
                 where name = 'Jocksports' );


5.在資料表item中找出曾經訂過產品 'ACE TENNIS NET' 的訂單如下(P246)
select ordid, prodid, qty, actualprice
from item
where prodid= ( select prodid from product
                where descrip = 'ACE TENNIS NET'  ) ;

SQL2008-隨堂練習(3)

1.在資料表 emp,找出每一種職務(job)的總人數、平均薪資、最高薪資、最低薪資及總薪資,並依總薪資做降冪排列如下(P198)
select        job,count(*),avg(sal) as average,max(sal) as highest,min(sal) as lowest,sum(sal) as total
from emp
group by job
order by sum(sal) desc;

2.在資料表customer,找出每一州(state)的每一城市(city)的總人數(P199)
select state,city,count(*) as 'count(*)'
from customer
group by state,city

3.在資料表item,找出每張訂單上訂購多少種產品及該張訂單的總金額,
只要顯示訂單總金額超過5000的訂單,並依訂單總金額做降冪排列(P203)
select ordid, count(*) as 'count(*)' , sum(itemtot) as 'sum(itemtot)'
from item
group by ordid
having sum(itemtot) > 5000
order by sum(itemtot) desc;


4.找出每一個業務員及其客戶的資料如下(P213)
select empno, ename, job, custid, name, repid
from emp as a , customer as b
where a.empno = b.repid and job='salesman'
order by empno;
go
select empno, ename, job, custid, name, repid
from emp as a join customer as b
on a.empno = b.repid
where job='salesman'
order by empno;

SQL2008-隨堂練習(2)

1.      在資料表ord,找出19867月份有多少筆訂單
SELECT COUNT(*) AS '總筆數'
FROM ORD
WHERE ORDERDATE BETWEEN '1986/7/1' AND '1986/7/31';

2.      在資料表ord,找出19867月份訂單的總金額
SELECT SUM(TOTAL) AS '總金額'
FROM ORD
WHERE ORDERDATE BETWEEN '1986/7/1' AND '1986/7/31';

3.      在資料表ord,找出19867月份訂單中最大筆的金額是多少
SELECT MAX(TOTAL) AS '最大金額'
FROM ORD
WHERE ORDERDATE BETWEEN '1986/7/1' AND '1986/7/31';

SQL2008-隨堂練習(1)

1. emp資料表中,找出公司薪資大於 2000元的員工,按照部門由低到高排列,部門相同時,按照薪資由高到低排列。P181
select EMPNO , ENAME , JOB , SAL , DEPTNO 
from emp
where SAL > 2000 
order by deptno , sal desc


2.
emp資料表中,找出1981年進公司的員工,資淺的排前面。P181
select EMPNO , ENAME , HIREDATE , SAL ,DEPTNO
from emp
where hiredate between '1981-01-01' and '1981-12-31'
order by hiredate desc , sal desc


3.
emp資料表中,找出職務是'CLERK'而且佣金是'NULL'的員工。P181
select empno,ename,job ,comm ,sal , deptno
from emp
where job='clerk' and comm is null


4.
item資料表中,找出被訂購過的產品有那幾種,並按產品編號排序。P181
select distinct prodid
from ITEM
Order by prodid

5.
在資料表customer,找出客戶姓名最後一個字為「S」者。P181
select CUSTID , NAME ,phone as '電話',city
from CUSTOMER
where NAME like '%s'

.檔案系統階層標準-自我筆記

1.檔案系統階層標準:Filesystem Hierarchy Standard,FHS)
2.四大類別:1.可共享的(Shareable Data)
          2.不可共享的(Unshareable Data)
3.變動性的資料(Variable Data)
4.靜態的資料(Static Data)
3.根目錄(Root Directory, / )/bin/dev/etc/lib/sbin五個目錄不能掛載,直接儲存於根目錄。
4./usr:指unix特殊資源(Unix Specific Resources)或是unix系統資源(Unix System Resources),包含應用程式的執行檔案、圖型介面程式、函數庫等。
5./var:存放的檔案都是屬於變動性較高的檔案,例如 系統相關記錄檔案等。
6.檔案型態五大類
常規檔案
Regular File
文字檔案 Text File
二位位檔案
Binary File
資料檔案 Data File
執行檔案 Execute File
目錄 Directory
連結檔案
Link File
符號連結檔案 Symbol Link File
硬式連結檔案 Hard Link File
裝置檔案
Device File
區塊裝置檔案 Block-oriented Device File
字元裝置檔案Character-oriented Device File
跨行程通訊檔案
Inter Process Communicate File
Unix Domain Socket檔案
FIFo Node檔案
7.檔案的操作

新增 create
複製Copy
刪除Delete
搬移Move
更名rename
常規檔案
Touch
Cp
Rm
Move
rename
目錄
Mkdir
Rmdir
連結檔案
Ln
rm
裝置檔案
Mknod
跨行程通訊檔案
Mknod/mkfifo

Ls = 輸入的指令----- ------ 短參數 -l
ls –l /etc/pwasswd
                                ---引數,作為ls指令參考的資料
Command [ptions] [arguments]
原先的語法:command –a –n arguments
整合的語法:command –an  arguments
(不可將長短參數整合在一起使用,僅能夠支持短參數的整合語法。)

8.Ls指令常用參數
-a
顯示目錄內所有的檔案
-d
只顯示目錄名稱不顯示目錄的檔案資訊
-F
依檔案類型的檔案名稱後方,加上特殊符號 (* / = | @)
-h
檔案大小以MBKB顯示
-l
長資料格式顯示
-i
將檔案屬性的欄位列出inode的資訊
-t
依時間日期排序
-r
檔案排序反向進行輸出(大小→小大)
-R
目錄下的子目錄全部列出
-S
容量大小排序
-u
依最後一次存取時間排序(atime)
--time
atime or ctime顯示(預設是atime)
--full-time
完整時間來表示資訊
9.檔案名稱
drwxr-xr-x
2
stoner
stoner
4096
126 02:09
Desktop
檔案屬性
連結數量
檔案擁有者
檔案擁有群組
檔案大小
時間戳記
檔案名稱
10.Touch指令常用參數
-a
變更存取時間(atime變更)
-m
變更inode屬性被改的time(mtime變更)
-r file
file檔案的時間戳記為檔案的參考
-c
僅變更ctime,如檔案不存在,不產生0位元空的檔案(--no-create參數結果)
-t time
指定時間格式變更檔案時間戳記
11.mkdir指令
-m
指定目錄的預設權限
-p
以遞迴的方式建立巢狀目錄
12.Ln指令:硬式ln –l檔案名稱hard-檔案名稱,軟式ln –s 檔案名稱soft-檔案名稱
13.Pwd指令:列印出目前所在的工作路徑(Print Work Driectory)
-p
顯示被連結的原始檔案路徑
Absolute path(絕對)
表示路徑是從/根目錄開始描述起的
Relative path (相對)
不是從/根目錄開始描述起的
.=本層目錄
. .=上層目錄

Cd切換指令
: cd /tmp
: cd desktop
Cd .
Cd ..
cd ~ =user家目錄
cd -=切上個路徑
14.Cp指令參數: cp 參數 路徑 .  例如: cp –i /etc/passwd.
-a  --archive
完全保存檔案or目錄(複制目錄 –R配合使用)
-i  --interactive
複寫目同檔案名稱 要先確認才操作
-R/-r  --recursive
目錄複製的遞迴處理
-s  --symbolic-link
製作一個符號連結檔案
-l  --link
製作一個硬式連結檔案
-u   --update
當來源檔案比目的地檔案新時,才會進行複製
15.Rm指令參數:檔案 rm 檔案名稱, 目錄 rm –r 目錄名稱
-r
進行目錄的遞迴處理(刪除目錄內裡所有目錄和檔案)
-i
執行刪除工作前會詢問確認
-f
預設系統管理員在刪檔,安全上的考量會進行詢目確認,此參數可以讓使用者忽略詢問,強制刪除檔案或目綠
16.Mv指令參數:mv 檔案名稱  指定移動的路徑
17.Rename指令參數:rename 變更前的名稱 變更後的名稱 操作的對象(檔案or副檔名)
18.Man指令參數: man 參數 name(文件名稱)
Whatis
預先了解手冊頁章節分類中哪幾個分類符合使用者需求
info
類似man手冊的工具
Maninfo
指令 man –w pwd  OR  info –w pwd  得知手冊頁存放位置
19.Linux系統常見檔案目錄解析
/bin
重要的執行程式,程式檔案都是在檔案系統未被掛載前便被執行使用
/sbin
主要是存放提供系統管理員專屬的重要執行程式檔案
/boot
存放許多關於系統啟動時所需的程式檔案
/mnt
通常用來作為臨時掛載某一裝置使用
/media
Os用來做為removable media的自動掛載位置
/opt
放置較大的套裝軟體
/etc
重要的目錄,內涵蓋大部份的系統組態檔案與服務組態檔案資訊
/dev
存放裝置檔案的目錄
/home
預設使用者家目錄位置
/lib
存放共享函數庫於/bin or /sbin目錄官的程式檔案呼叫使用(modules為存放linux核心相關模組)
/tmp
程式執行過程如有產生暫存檔的預設儲存位置
/root
系統管理員root的預設家目錄