3) SQLPLUS username/password
例如:
SQLPLUS scott/tiger
SQL*Plus: Release 9.0.1.0.1 - Production on 星期二 9月 13 14:27:51 2005 (c) Copyright 2001 Oracle Corporation. All rights reserved. SQL>
4) 断开与数据库的连接 SQL>DISCONNECT 5) 退出SQL*Plus
SQL>EXIT 或:
SQL>Quit 2. SQL命令
SQL命令包括数据定义语言(如Create、Alter等)和数据操作语言(Select Insert Update Delete等),这些都可在SQL*Plus中使用。 如:
SQL>SELECT EMPNO, ENAME, JOB, SAL 2 FROM EMP WHERE SAL < 2500;
3. SQL*Plus命令 1)列出缓冲区的内容:
SQL>LIST
SQL*Plus显示当前缓冲区中的SQL命令(注意:不缓存SQL Plus命令): 1 2
SELECT EMPNO, ENAME, JOB, SAL FROM EMP WHERE SAL < 2500 ;
2)编辑当前行
如果上面的例子错误的输入为:
SQL>SELECT EPNO, ENAME, JOB, SAL 2 FROM EMP WHERE SAL < 2500; 在屏幕上显示:
SELECT EPNO, ENAME, JOB, SAL
*
ERROR at line 1:
ORA-0904:invalid column name
分析错误可以发现EMPNO错为EPNO。 则用CHANGE命令修改编辑当前行。 如:
SQL>CHANGE /EPNO/EMPNO 修改的行在屏幕上显示:
1* SELECT EMPNO, ENAME, JOB, SAL 再用RUN命令运行当前命令。 SQL>RUN(或 /)
SQL*PLUS列出其命令然后运行它。 1
SELECT EMPNO, ENAME, JOB, SAL
第6页
2 FROM EMP WHERE SAL < 2500;
3)增加一行
在当前行之后插入一新行,使用INPUT命令。例如对上面例子增加第3行到该SQL命令中。形式如下:
SQL>INPUT 3
接着可进入新行,然后按ENTER键,SQL*PLUS再次提示新行: 3
ORDER BY SAL
4
按ENTER键,表示不进入任何行,然后用RUN检验和重新运行查询。
4)在一行上添加一原文
用APPEND命令,将一原文加到缓冲区中当前行的末端: SQL>LIST
3* ORDER BY SAL
SQL>APPEND DESC
3* ORDER BY SAL DESC
使用RUN检验和重新运行查询。
5)删除一行
? ?
用LIST命令列出要删除的行。 用DEL命令删除。
SQL>LIST
3* ORDER BY SAL DESC SQL>DEL
6)用系统编辑程序编辑命令
在SQL*PLUS中运行操作系统缺省的文本编辑程序(EDIT),命令形式为:
SQL>EDIT
EDIT将缓冲区中的内容装入系统缺省的文本编辑器,然后用文本编辑器的命令编辑文本。完成后保存编辑的文本,然后退出。该文本保存到当前的缓冲区。 7)保存SAVE命令
SQL>SAVE 文件名
例如:SQL>LIST 1
SELECT EMPNO, ENAME, JOB, SAL 2 FROM EMP WHERE SAL < 2500; 然后用SQVE保存到EMPINFO文件中: SQL>SAVE empinfo Created file empinfo
8)运行命令文件
可用命令START 文件名或者@ 文件名的命令格式。
如上例:
SQL>START EMPINFO
第7页
或SQL>@ EMPINFO
9)清缓冲区
SQL>CLEAR BUFFER
10)DESCRIBE列出表的结构
如:
SQL>DESC EMP Name Null? EMPNO NOT NULL ENAME JOB MGR HIREDATE SAL COMM
DEPTNO NOT NULL
四.上机作业
1. 用SQL Plus连接数据库。 2. 用Show命令显示当前用户。 3. 练习SQL命令:
SELECT * FROM EMP;。 4. 用LIST显示缓冲区内容。
5. 用CHANGE命令修改当前行。 6. 用APPEND增加一部分命令。 7. 用EDIT编辑缓冲区内容。
8. 用SAVE命令保存缓冲区内容到EMPFILE中。 9. 用START命令运行EMPFILE文件。 10. 清除缓冲区。
Type
NUMBER(4) VARCHAR2(10) VARCHAR2(10) NUMBER(4) DATE
NUMBER(7,2) NUMBER(7,2) NUMBER(2)
第8页
第二章 数据表的创建
一.上机目的
1.了解并掌握Oracle中表结构的定义。
2.了解并掌握Oracle中的用Create命令定义表的方法,以及表的完整性定义。 3.了解并掌握Oracle中的用Alter命令 和Drop命令对表的修改和删除。
二.预备知识
DDL是SQL命令的子集,用来创建、修改、删除Oracle数据库结构。这些命令能立即影响数据库和数据字典字段信息。 1. 表名命名规则
所用的表名必须满足下面的条件: a) 名字必须以A-Z 或a-z的字母开始;
b) 名字可以包括字母、数字和特殊字母(_)。字符$和#也是合法的,但是这种用法不提倡; c) 名字大小写是一样的;例如EMP、emp和eMp是表示同一个表; d) 名字最长不超过30个字符; e) 表名不能和其它的对象重名; f)
表名不能是SQL保留字。
表2-1 表名命名举例
名 字 EMP85 85EMP FIXED_ASSETS FIXED ASSETS UPDATE
2. 字段类型
表2-2 字段类型
数据类型 VARCHAR2(w) CHAR(w) NUMBER NUMBER(w) NUMBER(w,s) 描述 变长字符,长度为w。最长为2000个字符。 定长字符,长度为w。默认为1个字符;最长为255个字符 38位有效数字的浮点数 W位精确度的整数,范围从1至38 W是精度,或总的数字位,范围从1至38。S是比例,或是小数点右边的数字位。比例的范围从-84至127 日期值,范围从公元前14712年1月到公元314712年12月 31变长字符串,其最大长度为2G(或2-1个字节) 面向字节数据,可存储字符串、浮点数,二进制数据等 合 法 YES NO(开始不是字母) YES NO(包含空格) NO(SQL保留字) DATE LONG RAW 和LONG RAW
3. Create命令 1)、CREATE TABLE table_name( column_name type(size), column_name type(size), …);
第9页
例如:
CREATE TABLE DEPT (DEPTNO NUMBER(2),
DNAME VARCHAR2(12), LOC VARCHAR2(12)); 2)、CREATE TABLE table_name [(column_name,…)] AS SELECT statement;
例如:
CREATE TABLE DEPTNO10 (NAME,LOCATION) AS SELECT DNAME,LOC FROM DEPT WHERE DEPTNO = 10;
4.完整性约束
Oracle允许用户为表和列定义完整性约束来增强一定的规则。 可分为:表约束和字段约束 5.约束类型
1)、NOT NULL约束 NOT NULL约束保证字段值不能为NULL。没有NOT NULL约束的字段,值可以为NULL。
2)、UNIQUE约束 指定一个字段或者字段的集合为唯一键。在表中没有两行具有相同的值。如果唯一键是基于单条记录的,NULL是允许的。
表约束命令格式:
,[CONSTRAINT constraint_name] UNIQUE (Column, Column, …) 字段约束命令格式:
[CONSTRAINT constraint_name] UNIQUE 例如:
CREATE TABLE DEPT
(DEPTNO NUMBER, DNAME VARCHAR2(9), LOC VARCHAR2(10),
CONSTRAINT UNQ_DEPT_LOC UNIQUE(DNAME,LOC)); UNQ_DEPT_LOC是一个表约束。
3)、主键约束(Primary Key Constraint) 主键约束强制字段和字段集合的唯一性,并且用一个唯一索引来管理它。每个表中只能用一个主键,这样可以通过主键来标识表中的每条记录。NULL值不允许在主键字段出现。
表约束命令格式:
,[CONSTRAINT constraint_name] PRIMARY KEY (Column, Column, …) 字段约束命令格式:
[CONSTRAINT constraint_name] PRIMARY KEY 例如:用字段约束定义DEPTNO为主键
CREATE TABLE DEPT
(DEPTNO NUMBER(2) CONSTRAINT DEPT_PRIM PRIMARY KEY, …);
4)、外键约束 外键提供表内或表间的完整性规则。外键必须依赖于一个primary或unique key。
第10页