1.char(n): 固定長(zhǎng)度的字符串,輸入字符串長(zhǎng)度不足時(shí)自動(dòng)在后面加空格。
2.varchar(n):可變長(zhǎng)度的字符串妒御,用戶指定最大輸入長(zhǎng)度姑蓝。不會(huì)自動(dòng)在字符串后添加空格。
3.numeric(p梆靖,d):定點(diǎn)數(shù),精度有用戶指定。這個(gè)數(shù)有p為數(shù)字朱转,其中d為數(shù)字在小數(shù)點(diǎn)后邊。整數(shù)位數(shù)+d <= p
4.real, double precision : 浮點(diǎn)數(shù)與雙精度浮點(diǎn)數(shù)积暖,精度與機(jī)器有關(guān)藤为。
5.float(n):精度至少為n位的浮點(diǎn)數(shù)。
6.主鍵(primary key)屬性必須非空且唯一夺刑。
7.外鍵(foreign key)聲明表示關(guān)系中任意元組在屬性上的取值必須對(duì)應(yīng)于關(guān)系S中某元組在主鍵屬性上的取值缅疟。
8.將查詢的結(jié)果去重,使用關(guān)鍵字distinct遍愿,例如:select distinct name from user存淫。
9.默認(rèn)查詢的結(jié)果是不去重的,顯示指定不去重沼填,使用關(guān)鍵字all纫雁,例如:select all name from user。
10.select 子句還可以帶含有 - + * / 運(yùn)算符的算術(shù)表達(dá)式倾哺,例如:select name salary * 1.5 from user轧邪。查詢出的工資(salary)是原來(lái)的1.5倍刽脖。但是不會(huì)改變數(shù)據(jù)庫(kù)中的salary。并不導(dǎo)致對(duì)user關(guān)系的任何改變忌愚。
11.sql允許在where子句中使用邏輯連詞and曲管,or 和 not。邏輯連詞的運(yùn)算對(duì)象可以是包含運(yùn)算符<, <=, >, >=, = 和 <> 的表達(dá)式硕糊。sql允許使用比較運(yùn)算符比較字符串院水,算數(shù)表達(dá)式,以及特殊類型简十,例如日期檬某。
二,字符串運(yùn)算
1.串聯(lián):|| 螟蝙,將字符串轉(zhuǎn)換為大寫:upper(String)恢恼,將字符串轉(zhuǎn)換為小寫:lower(String),去掉字符串后面的空格:trim(String)
2.like
? ? 2.1. %:匹配任意字符串胰默。'Intro%':匹配以Intro打頭的字符串场斑。'%Intro%':匹配任何包含Intro的字符串。
? ? 2.2. _ (下劃線):匹配任意一個(gè)字符牵署。'_ _ _':匹配只含三個(gè)字符的字符串漏隐。'_ _ _ %':匹配至少含三個(gè)字符的字符串。
? ? 2.3. 例子:找出所在建筑名稱中包含字串'JIM'的所有系名奴迅,select dept_name from department where building like '%JIM%';
3.在like運(yùn)算中使用escape關(guān)鍵字來(lái)定義轉(zhuǎn)義字符青责。例如: ?? like 'ab\%cd%' escape '\',轉(zhuǎn)義字符為'\', like語(yǔ)句的含意是匹配所有以ab%cd打頭的字符串。like 'ab\\cd%' escape'\',轉(zhuǎn)義字符為'\',like語(yǔ)句的含義是匹配所有以'ab\cd'打頭的字符串取具。
4.not like 比較運(yùn)算符搜尋不匹配項(xiàng)爽柒。
5.similar to 比like 更強(qiáng)大。他的模式定義語(yǔ)法類似于UNIX中的正則表達(dá)式者填。
三浩村,排列元組的顯示次序
1.order by 子句讓查詢結(jié)果中元組按排列順序顯示。默認(rèn)使用升序占哟。 ?? 要說(shuō)明排序順序可以使用asc(升序)心墅,desc(降序)。例如 select * from tableA? order by salary desc, name asc榨乎。
2.SQL允許用記號(hào)(v1,v2,...vk)? 來(lái)表示一個(gè)分量值分別為v1,v2,..,vk的n維元組怎燥。在元組上可以使用比較運(yùn)算符,
按字典順序進(jìn)行比較運(yùn)算蜜暑。例如:(a1,a2)<= (b1,b2)在a1 <= b1 且 a2 <= b2 時(shí)為真铐姚。 where 條件語(yǔ)句
?where instructor.ID = teachers.ID and dept_name = 'Biology' 可以換成
where (instructor.ID,dept_name)= (teachers.ID,'Biology')?
四,并,交隐绵,差運(yùn)算
1. 并運(yùn)算 union自動(dòng)去重之众,需要保留重復(fù),使用union all依许。例如:找出在2009年或者在2010年開辦的課程棺禾。
(select courseName from section where year = 2009)union? (select courseName from section where year = 2010)?
2. 交運(yùn)算 intersect 自動(dòng)去重,需要保留重復(fù)峭跳,使用intersect all膘婶。例如:找出在2009年和2010年同時(shí)開辦的課程。
(select courseName from section where year = 2009)intersect(select courseName from section where year = 2010)?
3.差運(yùn)算 except自動(dòng)去重蛀醉,需要保留重復(fù)悬襟,使用except all。例如:找出在2009年開辦但不在2010年開辦的課程拯刁。
(select courseName from section where year = 2009)except(select courseName from section where year = 2010)?