/*create table TEST_TABLE
(
STUDENT VARCHAR2(200),
SUBJECT VARCHAR2(200),
GRADE NUMBER
)
tablespace SYSTEM
pctfree 10
pctused 40
initrans 1
maxtrans 255
storage
(
initial 64K
minextents 1
maxextents unlimited
);
*/
/*
insert into test_table(student , Subject , grade) values('張三' , '語文' , 80);
insert into test_table(student , Subject , grade) values('張三' , '數學' , 70);
insert into test_table(student , Subject , grade) values('張三' , '英語' , 60);
insert into test_table(student , Subject , grade) values('李四' , '語文' , 100);
insert into test_table(student , Subject , grade) values('李四' , '數學' , 80);
insert into test_table(student , Subject , grade) values('李四' , '英語' , 90);
*/
--oracle中Decode()函數使用 然後將這些累計求和(sum部分)
select t.student AS 姓名,sum(decode(t.subject,'語文',grade,null))語文
,sum(decode(t.subject,'數學',grade,null)) 數學
,Sum(Decode(T.Subject,'英語',Grade,Null)) 英語
from test_table t group by student;
--靜態SQL,指subject只有語文、數學、英語這三門課程。
select student 姓名,
max(case subject when '語文' then grade else 0 end) 語文,
max(case subject when '數學' then grade else 0 end) 數學,
Max(Case Subject When '英語' Then Grade Else 0 End) 英語
from test_table group by student;
/*
姓名 語文 數學 英語
---------- ----------- ----------- -----------
李四 100 80 90
張三 80 70 60
*/
--動態SQL,指subject不止語文、數學、英語這三門課程。 sql server 下測試
declare @sql varchar(8000)
set @sql = 'select student as ' + '姓名'
select @sql = @sql + ' , max(case Subject when ''' + Subject + ''' then grade else 0 end) [' + Subject + ']'
from (select distinct Subject from test_table) as a
set @sql = @sql + ' from test_table group by student'
exec(@sql)
having子句可以過濾組函數結果或是分組的信息,且寫在group by子句後 模糊查詢 以及排序
select username,userno,userpassword from userinfo t where username like '%a%'
group by username,userno,userpassword having(userno)>40 order by username desc
數量關係: 多對一關係 一對多關係 一對一關係 多對多關係
第一範式,所有的屬性都必須是單值,也就是屬性只表示單一的意義。(記錄可以重複,沒有任何限制)
第二範式,屬性要求唯一且非空,(記錄不可重複,但是數據可能會出現冗餘)。
第三範式,非主屬性只能依賴於主屬性,不能依賴於其他非主屬性。(解決數據冗餘問題)
一個表中只能存儲一個long類型 Clob 存儲大的文本對象 Blob 存儲大的二進制對象
Oralce支持級聯刪除,不支持級聯更新
轉載來自:http://www.cnblogs.com/Warmsunshine/archive/2013/07/13/3188715.html
另外,有幾個相關的參靠資料:
sum函數:
http://docs.oracle.com/cd/B19306_01/server.102/b14200/functions163.htm
decode函數:
http://docs.oracle.com/cd/B19306_01/server.102/b14200/functions040.htm