oracle修改主键命令,Oracle基本命令

Oracle基本命令

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值