Oracle基本命令

来源:未知 责任编辑:智问网络 发表时间:2013-11-04 19:54 点击:

 

SET LINESIZE 300;    设置行高

SET PAGESIZE 50;     设置每页显示的数目

CONN SYSTEM/manager AS SYSDBA;   以SYSTEM登陆

SHOW USER;           显示当前的用户

SELECT * FROM tab;   显示当前数据库所有的表

DESC 表名;            显示表的结构

CLEAR SCR;           清除屏幕

/                    上次查询

 

 

字符串函数:

UPPER()              将所有字母转换为大写     SELECT UPPER(ENAME) FROM EMP;

LOWER()              将的有字母转换为小写     SELECT LOWER(ENAME) FROM EMP;

INITCAP()            将所有首写字母转换为大小,其它字母为小写    SELECT INITCAP(ENAME) FROM EMP;

CONCAT()             字符串相连            SELECT CONCAT('HELLO',' WORLD') FROM DUAL; 

SUBSTR()             截取字符串             SELECT SUBSTR('HELLO',1,3) FROM DUAL;

LENGTH()             获得字符串的长度        SELECT LENGTH('HELLO') FROM DUAL;

REPLACE()            字符串替换             SELECT REPLACE('HELLO','L','X');

 

 

数值函数

ROUND()              四舍五入     ROUND(789.536)---[790]      ROUND(789.536,2)---[789.54]

TRUNC()              截断小数位    TRUNC(789.536)---[789]     TRUNC(789.536,2)---[789.53]

MOD()                取模          SELECT MOD(10,3) FROM DUAL;---[1]

 

 

日期函数

SYSDATE              取出当前日期

MONTHS_BETWEEN()     求出给定日期范围的月数      

ADD_MONTHS()         在指定的日期上加上指定的月数    SELECT TO_CHAR(ADD_MONTHS(SYSDATE,5),'yyyy-mm-dd') FROM DUAL;

NEXT_DAY()           下一个的今天是哪一个日期        

LAST_DAY()           求出给定日期的最后一天日期       

 

 

转换函数

TO_CHAR()           将数字转换成字符串    SELECT TO_CHAR(SYSDATE,'yyyy-mm-dd') FROM DUAL;

TO_NUMBER()         将字符串转换成数字    SELECT TO_NUMBER('2010-01-11') FROM DUAL;

TO_DATE()           将字符串转换成日期    SELECT TO_DATE('2009-12-31','yyyy-mm-dd') FROM DUAL;

 

通用函数

NVL()               将一个指定的NULL变为指定的内容(计算Null值,必须使用NVL)     SELECT NVL(NULL,0) FROM DUAL;

 

DECODE()                  

 

 

 

常用数据类型:

NUMBER(M)--INT    |  NUMBER(M,N)--FLOAT   M:表示整数   N:表示小数位数                    

VARCHAR()   |   VARCHAR2()     表示字符串,有长度限制,为255字符

DATE()                         表示日期类型

CLOB                           表示大的对象(表示:文本数据 一般可以存放4G的文本) 

BLOB                           表示大的对象(表示:二进制数据 一般可以存放4G的文本 电影,歌曲,图片)

 

 

 

创建表

 

CREATE TABLE myemp AS SELECT * FROM emp      创建emp表的副本

 

CREATE TABLE table_name(

   column_name1    DATA_TYPE   [DEFAULT]

   column_name2    DATA_TYPE   [DEFAULT]

   columb_name3    DATA_TYPE   [DEFAULT]

);                                           创建新表

 

 

删除表

DROP TABLE table_name;                       删除表

 

修改表

ALTER TABLE table_name ADD (column_name DATA_TYPE DEFAULT);       添加列 

 

ALTER TABLE MODIFY(column_name DATA_TYPE DEFAULT);                修改列(类型长度只能增,不能少) 

 

RENAME oldTable TO newTable                  重命名表

 

TRUNCATE TABLE table_name                    截断表(不产生日志)

 

 

数据约束

一、主键约束:

1.PRIMARY KEY(系统分配约束)

CREATE TABLE person(

   pid NUMBER(18) PRIMARY KEY,

   name VARCHAR2(20) NOT NULL

);

 

2.PRIMARY KEY(指定约束名称)

CREATE TABLE person(

   pid NUMBER(18) PRIMARY KEY,

   name VARCHAR2(20) NOT NULL,

   CONSTRAINT person_id_pk PRIMARY KEY (pid)

);

 

ALTER TABLE person ADD CONSTRAINT person_pid_pk PRIMARY KEY (pid);      修改person表,为表添加person_pid_pk主键

 

二、非空约束(NOT NULL)

1.CREATE TABLE person(

   pid NUMBER(5),

   name VARCHAR2(20) NOT NULL,

   CONSTRAINT person_pid_pk PRIMARY KEY (pid)

);

 

2.ALTER TABLE person MODIFY(name VARCHAR2(20) NOT NULL);

 

 

 

 

三、唯一约束(UNIQUE)

1.CREATE TABLE person(

   pid NUMBER(5),

   name VARCHAR2(20)  NOT NULL UNIQUE,

);

 

2.CREATE TABLE person(

   pid NUMBER(5),

   name VARCHAR2(20) NOT NULL UNIQUE,

   CONSTRAINT person_name_uk UNIQUE (name)

);

 

3.ALTER TABLE person ADD CONSTRAINT person_name_uk UNIQUE (name);       修改唯一约束

 

四、检查约束(CHECK)

1.CREATE TABLE person(

   pid NUMBER(5),

   name VARCHAR2(20) NOT NULL UNIQUE,

   age NUMBER(2) NOT NULL CHECK(age BETWEEN 0 AND 100),

   sex VARCHAR2(2) NOT NULL DEFAULT '男' CHECK(sex IN('男','女'))

);

 

2.CREATE TABLE person(

   pid NUMBER(5),

   name VARCHAR2(20) NOT NULL UNIQUE,

   age NUMBER(2) NOT NULL,

   sex VARCHAR2(2) NOT NULL DEFAULT '男',

   CONSTRAINT person_age_ck CHECK(age BETWEEN 0 AND 100),

   CONSTRAINT person_sex_ck  CHECK(sex IN('男','女'))

);

 

3.ALTER TABLE person ADD CONSTRAINT person_age_ck CHECK(age BETWEEN 0 AND 100);

  ALTER TABLE person ADD CONSTRAINT person_sex_ck CHECK(sex IN('男','女'));

 

 

五、主-外键约束(FOREIGN KEY)

1.CREATE TABLE book(

   bid NUMBER(3) NOT NULL,

   person_id NUMBER(5) NOT NULL,

   name VARCHAR2(50) NOT NULL,

   price NUMBER(5,2) NOT NULL,

   CONSTRAINT person_book_personid_fk FOREIGN KEY (price) REFERENCES person(pid) ON DELETE CASCADE

);

 

 

六、删除约束

ALTER TABLE table_name DROP CONSTRAINT constraint_name     根据提供的table_name表删除constraint_name约束

 

 

 

ROWNUM      Oracle每个表中都会有一个ROWNUM列

 

 

视图管理:

CREATE VIEW view_name AS SELECT * FROM emp;         创建视图

 

DROP VIEW view_name                                 删除视图

 

CREATE OR REPLACE VIEW view_name AS SELECT ....       创建或替换视图

 

CREATE OR REPLACE VIEW view_name AS SELECT ....

   WITH CHECK OPTION  不能更新创建视图时列的条件

   WITH READ ONLY 只准许视图能读

 

序列管理:

CREATE SEQUENCE myseq;

INCREMENT BY 2 指定步长             CREATE SEQUENCE myseq INCREMENT BY 2;     步长为:2

START WITH  0  指定起始位置

MAXVALUE 10    指定最大值

CYCLE          while

 

DROP SEQUENCE myseq;    删除序列

 

同义词:

CREATE SYNONYM 同义词名称FOR 用户名.表名称;       创建同义词

CREATE SYNONYM emp FOR SCOTT.emp;

DROP SYNONYM emp;

 

 

用户管理:

 

创建用户:

CREATE USER 用户名 IDENTIFIED BY 密码        创建用户和密码

CREATE USER lixing IDENTIFIED BY lixing        创建用户和密码

 

用户授权:

GRANT 权限1,权限2..... TO 用户名                   给用户授权

GRANT CREATE SESSION TO lixing;                  为lixing用户创建session权限

GRANT CONNECT,RESOURCE TO lixing;                为lixing用户赋CONNECT RESOURCE权限

GRANT SELECT,DELETE,UPDATE ON scott.emp TO lixing;      把scott.emp表的增、删、改的权限赋给lixing用户

REVOKE SELECT,DELETE,UPDATE ON scott.emp FROM lixing;        回收scott.emp表赋给用户lixing的权限

 

 

修改用户:

ALTER USER 用户名IDENTIFIED BY 新密码;           修改密码

ALTER USER lixing IDENTIFIED BY newlixing;      修改用户lixing密码为newlixing

 

ALTER USER 用户名PASSWORD EXPIRE;                用户第一次登陆要求修改密码

ALTER USER lixing PASSWORD EXPIRE;               要求用户第一次登陆必须修改密码

ALTER USER lixing ACCOUNT LOCK;                  锁定用户lixing

ALTER USER lixing ACCOUNT UNLOCK;                解除锁定用户

 

 

 

 

数据备份与还原

 数据库备份:exp

 数据库还原:imp

本文出自 “李新的博客” 博客

    发表评论
    请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
    用户名: 验证码:点击我更换图片
    最新评论 更多>>

    推荐热点

    • Table函数使用简介
    • Oracle数据库Constraint约束的常用操作及异常处理
    • Bulk Collect性能分析(zz)
    • export/import的使用
    • OCP043第十五讲 Database Security
    • ORACLE10gr2数据导入MySQL方案
    • oracle 让sys用户可以使用isqlplus
    • 在oracle数据库下使用iSQL*Plus DBA访问数据库
    • Oracle行列转换小结
    网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
    Copyright © 2008-2015 计算机技术学习交流网. 版权所有

    豫ICP备11007008号-1