chenqb 发表于 2015-6-16 11:39:54

OCP之黄伟

  参考视频:
  第4集 - 10g OCP之007研究
  第5集 - 10g OCP之007研究
  第6集 - 10g OCP之007研究
  Cluster table适合查询,因为聚簇表会将相关联的表信息数据存放在一个块中,这样读取数据时,会一次I/O读到全部信息,减少I/O,提高性能.
  多表联合查询.不适合DML操作;
  不适合TRUNCATE操作.不适合做全表扫描,因为你在进行I/O操作的时候,需要将相关联的、但是实际不需要的额外数据给读取出来,所以不适合全表扫描;
  聚簇表,分为基于索引的和基于哈希的;
  如果没有索引,是拒绝DML操作的.所以是先要进行创建索引,然后再进行DML操作.
  在聚簇表中,相同的ROWID不能完全定位唯一一条记录,有可能是多条.这是聚簇表与普通heap表的区别.也就是说,在聚簇表中,表dept和表emp中拥有完全重复的rowid,是不足为奇的,不重复,就不正常了.

OCP 007课程概述


[*]数据查询语言:SELECT;
[*]数据定义语言:CREATE、ALTER、DROP、TRUNCATE、RENAME
[*]数据修改语言:INSERT、UPDATE、DELETE、MERGE;
[*]数据控制语言:GRANT、REVOKE;
[*]事务控制语言:COMMIT、ROLLBACK、SAVEPOINT;
[*]会话控制语言:ALTER SESSION;
[*]系统控制语言:ALTER SYSTEM;

Writing SQL Statements


[*]SQL statements are not case-sensitive.
[*]SQL statements can be on one or more lines.
[*]Keywords cannot be abbreviated or split across lines.
[*]Clauses are usually placed on separate lines.
[*]Indents are used to enhance readability.
[*]In iSQL*Plus,SQL statements can optionally be terminated by a semicolon(;).Semicolons are required if you execute multiple SQL statements.
[*]In SQL*plus,you are required to end eac SQL statement with a semicolon(;);

Column Heading Defaults


[*]iSQL*Plus

[*]Default heading alignment:Center
[*]Default heading display:Uppercase


[*]SQL*Plus

[*]Character and Date column heading are Left-aligned.
[*]Number column headings are right-aligned.
[*]Default heading display:Uppercase.



Defining a Null Value
  A null is a value that is unabailable,unassigned,unknown,or inapplicable.
  A null is not the same as a zero or a blank space.
  null value,就是没有分配内存地址,不知道,不适用的这么一个值.
  null value是不能做等值比较的.只能用is null或者is not null;
  注意:空值和空值是不相等的;
  在唯一约束上,是允许有空值的;而且允许又多个空值.因为空值和空值是不相等的。
  凡是空值参与的所有运算,最后的结果都是空值.

Defining a Column Alias
  A column alias:


[*]Renames a column heading
[*]Is useful with calculations
[*]Immediately follows the column name(There can also be the optional AS keyword between the column name nad alias.)
[*]Requires double quotation marks if it contains spaces or special characters or if it is case-sensitive
[*]Can`t be used in Where clause

Concatenation Operator
  注意:列别名中使用的是双引号,而字符串拼接使用的是单引号.
  A concatenation operator:


[*]Links columns or character strings to other columns
[*]Is represented by two vertical bars(||)
[*]Creates a resultant column that is a character expression





SQL> select last_name || chr(39) || salary from emp;
LAST_NAME||CHR(39)||SALARY
------------------------------------------------------------------
Hartstein'13000
Fay'6000
Raphaely'11000
Khoo'3100
Baida'2900
Tobias'2800
Himuro'2600
Colmenares'2500
OConnell'2600
Grant'2600
Weiss'8000
LAST_NAME||CHR(39)||SALARY
------------------------------------------------------------------
Fripp'8200
Kaufling'7900
Vollman'6500
Mourgos'5800
Nayer'3200
Mikkilineni'2700
Landry'2400
Markle'2200
Bissot'3300
Atkinson'2800
Marlow'2500
LAST_NAME||CHR(39)||SALARY
------------------------------------------------------------------
Olson'2100
Mallin'3300
Rogers'2900
Gee'2400
Philtanker'2200
Ladwig'3600
Stiles'3200
Seo'2700
Patel'2500
Rajs'3500
Davies'3100
LAST_NAME||CHR(39)||SALARY
------------------------------------------------------------------
Matos'2600
Vargas'2500
Taylor'3200
Fleaur'3100
Sullivan'2500
Geoni'2800
Sarchand'4200
Bull'4100
Dellinger'3400
Cabrio'3000
Chung'3800
LAST_NAME||CHR(39)||SALARY
------------------------------------------------------------------
Dilly'3600
Gates'2900
Perkins'2500
Bell'4000
Everett'3900
McCain'3200
Jones'2800
Walsh'3100
Feeney'3000
Mavris'6500
Whalen'4400
LAST_NAME||CHR(39)||SALARY
------------------------------------------------------------------
Higgins'12008
Gietz'8300
Hunold'9000
Ernst'6000
Austin'4800
Pataballa'4800
Lorentz'4200
Baer'10000
Russell'14000
Partners'13500
Errazuriz'12000
LAST_NAME||CHR(39)||SALARY
------------------------------------------------------------------
Cambrault'11000
Zlotkey'10500
Tucker'10000
Bernstein'9500
Hall'9000
Olsen'8000
Cambrault'7500
Tuvault'7000
King'10000
Sully'9500
McEwen'9000
LAST_NAME||CHR(39)||SALARY
------------------------------------------------------------------
Smith'8000
Doran'7500
Sewall'7000
Vishney'10500
Greene'9500
Marvins'7200
Lee'6800
Ande'6400
Banda'6200
Ozer'11500
Bloom'10000
LAST_NAME||CHR(39)||SALARY
------------------------------------------------------------------
Fox'9600
Smith'7400
Bates'7300
Kumar'6100
Abel'11000
Hutton'8800
Taylor'8600
Livingston'8400
Johnson'6200
King'24000
Kochhar'17000
LAST_NAME||CHR(39)||SALARY
------------------------------------------------------------------
De Haan'17000
Greenberg'12008
Faviet'9000
Chen'8200
Sciarra'7700
Urman'7800
Popp'6900
Grant'7000
View Code




SQL> select last_name || '''s' || salary from emp;
LAST_NAME||'''S'||SALARY
-------------------------------------------------------------------
Hartstein's13000
Fay's6000
Raphaely's11000
Khoo's3100
Baida's2900
Tobias's2800
Himuro's2600
Colmenares's2500
OConnell's2600
Grant's2600
Weiss's8000
LAST_NAME||'''S'||SALARY
-------------------------------------------------------------------
Fripp's8200
Kaufling's7900
Vollman's6500
Mourgos's5800
Nayer's3200
Mikkilineni's2700
Landry's2400
Markle's2200
Bissot's3300
Atkinson's2800
Marlow's2500
LAST_NAME||'''S'||SALARY
-------------------------------------------------------------------
Olson's2100
Mallin's3300
Rogers's2900
Gee's2400
Philtanker's2200
Ladwig's3600
Stiles's3200
Seo's2700
Patel's2500
Rajs's3500
Davies's3100
LAST_NAME||'''S'||SALARY
-------------------------------------------------------------------
Matos's2600
Vargas's2500
Taylor's3200
Fleaur's3100
Sullivan's2500
Geoni's2800
Sarchand's4200
Bull's4100
Dellinger's3400
Cabrio's3000
Chung's3800
LAST_NAME||'''S'||SALARY
-------------------------------------------------------------------
Dilly's3600
Gates's2900
Perkins's2500
Bell's4000
Everett's3900
McCain's3200
Jones's2800
Walsh's3100
Feeney's3000
Mavris's6500
Whalen's4400
LAST_NAME||'''S'||SALARY
-------------------------------------------------------------------
Higgins's12008
Gietz's8300
Hunold's9000
Ernst's6000
Austin's4800
Pataballa's4800
Lorentz's4200
Baer's10000
Russell's14000
Partners's13500
Errazuriz's12000
LAST_NAME||'''S'||SALARY
-------------------------------------------------------------------
Cambrault's11000
Zlotkey's10500
Tucker's10000
Bernstein's9500
Hall's9000
Olsen's8000
Cambrault's7500
Tuvault's7000
King's10000
Sully's9500
McEwen's9000
LAST_NAME||'''S'||SALARY
-------------------------------------------------------------------
Smith's8000
Doran's7500
Sewall's7000
Vishney's10500
Greene's9500
Marvins's7200
Lee's6800
Ande's6400
Banda's6200
Ozer's11500
Bloom's10000
LAST_NAME||'''S'||SALARY
-------------------------------------------------------------------
Fox's9600
Smith's7400
Bates's7300
Kumar's6100
Abel's11000
Hutton's8800
Taylor's8600
Livingston's8400
Johnson's6200
King's24000
Kochhar's17000
LAST_NAME||'''S'||SALARY
-------------------------------------------------------------------
De Haan's17000
Greenberg's12008
Faviet's9000
Chen's8200
Sciarra's7700
Urman's7800
Popp's6900
Grant's7000
107 rows selected.
View Code   '''s'->解读:第一个和第四个单引号是一对,第二个单引号是转义含义,第三个单引号是真正的字符.
  chr(39)含义与'''s'是相同的,都是返回的`s这个值.

Literal Character Strings


[*]A literal is a character,a number,or a date that is included in the SELECT statement.
[*]Date and character literal values must be enclosed by single quotation marks.
[*]Each character string is output once for each row returned.



--二者是等价的
SQL> select distinct department_id from employees;
SQL> select unique department_id from employees;
  在排序的过程中,如果按照带有空值的字段进行排序,默认情况下是将空值字段放在最后的;之所以将控制放在最后,是因为oracle是将空值当做无穷大来处理的.





SQL> select last_name,commission_pct from employees order by 2;
LAST_NAME               COMMISSION_PCT
------------------------- --------------
Lee                                 .1
Johnson                               .1
Marvins                               .1
Banda                                 .1
Kumar                                 .1
Ande                                  .1
Greene                               .15
Grant                              .15
Tuvault                              .15
Bates                              .15
Smith                              .15
LAST_NAME               COMMISSION_PCT
------------------------- --------------
Taylor                              .2
Bloom                                 .2
Fox                                 .2
Cambrault                           .2
Livingston                            .2
Zlotkey                               .2
Olsen                                 .2
Sewall                               .25
Hall                                 .25
Bernstein                            .25
Vishney                              .25
LAST_NAME               COMMISSION_PCT
------------------------- --------------
Hutton                               .25
Ozer                                 .25
Abel                                  .3
Smith                                 .3
Partners                              .3
Errazuriz                           .3
Tucker                              .3
Cambrault                           .3
Doran                                 .3
King                                 .35
Sully                              .35
LAST_NAME               COMMISSION_PCT
------------------------- --------------
McEwen                               .35
Russell                               .4
OConnell
Grant
Whalen
Hartstein
Fay
Mavris
Baer
Higgins
Gietz
LAST_NAME               COMMISSION_PCT
------------------------- --------------
King
Kochhar
De Haan
Hunold
Ernst
Austin
Pataballa
Lorentz
Greenberg
Faviet
Chen
LAST_NAME               COMMISSION_PCT
------------------------- --------------
Sciarra
Urman
Popp
Raphaely
Khoo
Baida
Tobias
Himuro
Colmenares
Weiss
Fripp
LAST_NAME               COMMISSION_PCT
------------------------- --------------
Kaufling
Vollman
Mourgos
Nayer
Mikkilineni
Landry
Markle
Bissot
Atkinson
Marlow
Olson
LAST_NAME               COMMISSION_PCT
------------------------- --------------
Mallin
Rogers
Gee
Philtanker
Ladwig
Stiles
Seo
Patel
Rajs
Davies
Matos
LAST_NAME               COMMISSION_PCT
------------------------- --------------
Vargas
Taylor
Fleaur
Sullivan
Geoni
Sarchand
Bull
Dellinger
Cabrio
Chung
Dilly
LAST_NAME               COMMISSION_PCT
------------------------- --------------
Gates
Perkins
Bell
Everett
McCain
Jones
Walsh
Feeney
107 rows selected.
View Code   假如想将控制字段排序时,放在前面可以在order by 子句后面添加关键字nulls first;想将空值放在最后,就将nulls first改为nulls last;





SQL> select last_name,commission_pct from employees order by 2 nulls first;
LAST_NAME               COMMISSION_PCT
------------------------- --------------
OConnell
Grant
Whalen
Hartstein
Fay
Mavris
Baer
Higgins
Gietz
King
Kochhar
LAST_NAME               COMMISSION_PCT
------------------------- --------------
De Haan
Hunold
Ernst
Austin
Pataballa
Lorentz
Greenberg
Faviet
Chen
Sciarra
Urman
LAST_NAME               COMMISSION_PCT
------------------------- --------------
Popp
Raphaely
Khoo
Baida
Tobias
Himuro
Colmenares
Weiss
Fripp
Kaufling
Vollman
LAST_NAME               COMMISSION_PCT
------------------------- --------------
Mourgos
Nayer
Mikkilineni
Landry
Markle
Bissot
Atkinson
Marlow
Olson
Mallin
Rogers
LAST_NAME               COMMISSION_PCT
------------------------- --------------
Gee
Philtanker
Ladwig
Stiles
Seo
Patel
Rajs
Davies
Matos
Vargas
Taylor
LAST_NAME               COMMISSION_PCT
------------------------- --------------
Fleaur
Sullivan
Geoni
Sarchand
Bull
Dellinger
Cabrio
Chung
Dilly
Gates
Perkins
LAST_NAME               COMMISSION_PCT
------------------------- --------------
Bell
Everett
McCain
Jones
Walsh
Feeney
Lee                                 .1
Johnson                               .1
Marvins                               .1
Banda                                 .1
Kumar                                 .1
LAST_NAME               COMMISSION_PCT
------------------------- --------------
Ande                                  .1
Greene                               .15
Grant                              .15
Tuvault                              .15
Bates                              .15
Smith                              .15
Taylor                              .2
Bloom                                 .2
Fox                                 .2
Cambrault                           .2
Livingston                            .2
LAST_NAME               COMMISSION_PCT
------------------------- --------------
Zlotkey                               .2
Olsen                                 .2
Sewall                               .25
Hall                                 .25
Bernstein                            .25
Vishney                              .25
Hutton                               .25
Ozer                                 .25
Abel                                  .3
Smith                                 .3
Partners                              .3
LAST_NAME               COMMISSION_PCT
------------------------- --------------
Errazuriz                           .3
Tucker                              .3
Cambrault                           .3
Doran                                 .3
King                                 .35
Sully                              .35
McEwen                               .35
Russell                               .4
107 rows selected.
View Code
SQL statements Versus iSQL*Plus Commands




SQL
iSQL*Plus


A language
An enviromnet


ANSI standard
Oracle-proprietary


Keyword cannot be abbreviated
Keywords can be abbreviated


Statements manipulate data and table definitions in the database
Commands do not allow manipulation of values in the database



Runs on a browser



Centrally loaded;does not have to be implemented on each machine


SQL statements
iSQL*Plus commands


  
  
  
  
  
  
  

Summary
  In this lesson,you should be have learned how to:


[*]Write a SELECT statement that:

[*]Returns all rows and columns from a table.
[*]Returns specified columns from a table.
[*]Uses column aliases to display more descriptive column headings


[*]Use the iSQL*Plus enviroments to write,save,and execute SQL statements and iSQL*Plus command.



SELECT *|{ column|expression ,...} FROM table;
  
  
页: [1]
查看完整版本: OCP之黄伟