您的位置:首页 > 数据库 > Oracle

oracle的基本命令

2013-08-13 13:13 671 查看

1. SQL简介

在第一学期的SQL Server学习中,已经知道,SQL是结构化查询语言(Structured Query Language),专门用于数据存取、数据更新及数据库管理等操作。并且已经学习了用SQL语句对数据库的表进行增删改查的操作。

 

在Oracle开发中,客户端把SQL语句发送给服务器,服务器对SQL语句进行编译、执行,把执行的结果返回给客户端。Oracle SQL语句由如下命令组成:

Ø  数据定义语言(DDL),包括CREATE(创建)命令、ALTER(修改)命令、DROP(删除)命令等。

Ø  数据操纵语言(DML),包括INSERT(插入)命令、UPDATE(更新)命令、DELETE(删除)命令、SELECT … FOR UPDATE(查询)等。

Ø  数据查询语言(DQL),包括基本查询语句、Order By子句、Group By子句等。

Ø  事务控制语言(TCL),包括COMMIT(提交)命令、SAVEPOINT(保存点)命令、ROLLBACK(回滚)命令。

Ø  数据控制语言(DCL),GRANT(授权)命令、REVOKE(撤销)命令。

 

目前主流的数据库产品(比如:SQL Server、Oracle)都支持标准的SQL语句。数据定义语言,表的增删改操作,数据的简单查询,事务的提交和回滚,权限的授权和撤销等,Oracle与SQL Server在操作上基本一致。

1.   Oracle数据类型

Oracle数据库的核心是表,表中的列使用到的常见数据类型如下:

 

类型
含义
CHAR(length)
存储固定长度的字符串。参数length指定了长度,如果存储的字符串长度小于length,用空格填充。默认长度是1,最长不超过2000字节。
VARCHAR2(length)
存储可变长度的字符串。length指定了该字符串的最大长度。默认长度是1,最长不超过4000字符。
NUMBER(p,s)
既可以存储浮点数,也可以存储整数,p表示数字的最大位数(如果是小数包括整数部分和小数部分和小数点,p默认是38为),s是指小数位数。
DATE
存储日期和时间,存储纪元、4位年、月、日、时、分、秒,存储时间从公元前4712年1月1日到公元后4712年12月31日。
TIMESTAMP
不但存储日期的年月日,时分秒,以及秒后6位,同时包含时区。
CLOB
存储大的文本,比如存储非结构化的XML文档
BLOB
存储二进制对象,如图形、视频、声音等。
表1  Oracle的部分数据类型

1.   Oracle数据类型

Oracle数据库的核心是表,表中的列使用到的常见数据类型如下:

 

类型
含义
CHAR(length)
存储固定长度的字符串。参数length指定了长度,如果存储的字符串长度小于length,用空格填充。默认长度是1,最长不超过2000字节。
VARCHAR2(length)
存储可变长度的字符串。length指定了该字符串的最大长度。默认长度是1,最长不超过4000字符。
NUMBER(p,s)
既可以存储浮点数,也可以存储整数,p表示数字的最大位数(如果是小数包括整数部分和小数部分和小数点,p默认是38为),s是指小数位数。
DATE
存储日期和时间,存储纪元、4位年、月、日、时、分、秒,存储时间从公元前4712年1月1日到公元后4712年12月31日。
TIMESTAMP
不但存储日期的年月日,时分秒,以及秒后6位,同时包含时区。
CLOB
存储大的文本,比如存储非结构化的XML文档
BLOB
存储二进制对象,如图形、视频、声音等。
表1  Oracle的部分数据类型

 

1.创建表和约束

Oracle创建表同SQL Server一样,使用CREATE TABLE命令来完成。创建约束则

 

使用如下命令:

 

 

语法格式:ALTER TABLE命令

   ALTER TABLE 表名 ADD CONSTRAINT 约束名 约束内容。
 

不论创建表还是约束,与SQL Server基本相同,注意:在Oracle中default是一

 

个值,而SQL Server中default是一个约束,因此Oracle的default设置可以在

 

建表的时候创建。

 

案例1:创建一个学生信息(INFOS)表和约束

 

 

create table infos

( stuId char(10) primary key,

  stuname varchar(15) not null,

  stuSex char(3) check(stuSex in ('男','女')),

  stuAge number(2) not null,

  stuAdress varchar(20) default '地址不详',

  stuClass varchar(10) not null

);

     数据操纵语言(DML)

数据操纵语言(DML)用于对数据库的表中数据进行添加、修改、删除和SELECT…For
UPDATE(后面专门学习该查询)操作。对比一期学习过的SQL
Server操作,接下来一一介绍在Oracle中的操作。

 

²  简单查询

 

数据查询是用SELECT命令从数据库的表中提取信息。SELECT语句的语法是:

 

语法结构:简单查询

SELECT *|列名|表达式 FROM 表名 WHERE 条件 ORDER
BY列名
语法解析:

1.       *表示表中的所有列。

2.       列名可以选择若干个表中的列名,各个列表中间用逗号分隔。

3.       表达式可以是列名、函数、常数等组成的表达式。

4.       WHERE子句是查询的条件。

5.       ORDER
BY 要求在查询的结果中排序,默认是升序。

 

eg:select * from infos;

   //显示infos 表格内部的全部信息;

 

   select stuname , stuAge  from  infos  where stuId = '04095043' OR  stuId = '04095042';

//显示infos表格内部学生号为04095043 和04095042学生的姓名、年龄。

select stuId,stuname , stuAge  from  infos  where stuId = '04095043' OR  stuId = '04095042' order
by stuAge;

//显示infos表格内部学生号为04095043 和04095042的学生的学号,姓名,年龄,此外按照学生年龄排升序。

²  数据插入

 

用INSERT命令完成对数据的插入。

 

语法结构:根据结果集创建表

INSERT INTO 表名(列名1,列名2……) VALUES (值1,值2……)
语法解析:

1.       列名可以省略。当省略列名时,默认是表中的所有列名,列名顺序为表定义中列的先后顺序。

2.       值的数量和顺序要与列名的数量和顺序一致。值的类型与列名的类型一致。

 

 例如:

            insert into infos values('04095043','yuyu','男',21,'西安','软件0902');

            insert into infos values('04095042','yueve','女',20,'山西','软件0901');
                  @ commit是把用户操作(添加、删除、修改操作)提交,只有提交操作后,数据才能真正更新到表中,否则其他用户无法查询到当前用户操作的结果

 

²

²  更新数据

 

Oracle在表中更新数据的语法是:

 

语法结构:UPDATE操作

UPDATE 表名 SET 列名1=值,列名2=值…… WHERE 条件
 

代码演示:UPDATE操作

SQL> UPDATE INFOS SET CLASSNO='1002',STUADDRESS='山东莱芜'

WHERE STUNAME='阮小二';

1 rows updated

SQL> commit;
 

²  删除数据

 

Oracle在表中删除数据的语法是:

 

语法结构:DELETE操作

DELETE FROM表名 WHERE 条件
 

代码演示:DELETE操作

SQL> DELETE FROM INFOS WHERE STUID='s100103';

1 ROW DELETED

SQL> COMMIT;
 

²  TRUNCATE

truncate

在数据库操作中, TRUNCATE命令(是一个DDL命令)可以把表中的所有数据一次性全部删除,语法是:

 

语法结构:TRUNCATE

TRUNCATE TABLE 表名
 

TRUNCATE和DELETE都能把表中的数据全部删除,他们的区别是:

1.       TRUNCATE是DDL命令,删除的数据不能恢复;DELETE命令是DML命令,删除后的数据可以通过日志文件恢复。

2.       如果一个表中数据记录很多,TRUNCATE相对DELETE速度快。

 

由于TRUNCATE命令比较危险,因此在实际开发中,TRUNCATE命令慎用。

 
Oracle默认安装中,已经创建了一个SCOTT用户,默认密码是:tiger,该用户下有四张表分别是:雇员表(EMP),部门表(DEPT),工资登记表和奖金表,请参考本章后面的附表。接下来很多操作都是在该用户下完成的。
 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: