ORACLE常用的SQL

WBOY
发布: 2016-06-07 14:58:10
原创
1065 人浏览过

ORACLE常用命令 spool host 无 -- 使用sqlplus连接数据库-- 标准用法sqlplus username/password@hostname:port/SERVICENAME-- 示例sqlplus payment/password@192.168.117.1/pay-- hostname:port/SERVICENAME 可配置为别名到 tnsnames.ora 文件sqlplus payment

ORACLE常用命令
spool
host
<无>
-- 使用sqlplus连接数据库
-- 标准用法
sqlplus username/password@hostname:port/SERVICENAME

-- 示例
sqlplus payment/password@192.168.117.1/pay

-- hostname:port/SERVICENAME 可配置为别名到 tnsnames.ora 文件
sqlplus payment/password@tnsname

-- 先进入 sqlplus, 然后使用 conn 方法进行连接
sqlplus /nolog
conn payment/password@192.168.117.1/pay

-- copy 几条 
-- 操作系统认证,不需要listener进程
sqlplus / as sysdba

-- 只能连接本机数据库,同样不需要listener进程
sqlplus username/password

-- 这种方式需要listener进程处于可用状态。最普遍的通过网络连接。
sqlplus username/password@tnsname

登录后复制
-- 登录服务器, 切换至oracle用户
su - oracle

-- 进入文件夹,后续所有对文件的操作都是基于该目录
cd  /oracle/database/

-- sqlplus 连接具体的数据库
sqlplus payment/password

-- 确定用户是否正确
show user;

-- 执行payment.sql
-- 所有的内容输出至 payment.log,该文件位于 /oracle/database/ 目录
spool payment.log
@payment_indexs_execute.sql
spool off

-- 使用host 命令可以转为 linux 命令执行
host more payment.log


-- 还可使用 conn 命令连接数据库
conn payment/password
show user;



登录后复制
-- 查看数据库表的索引
SELECT * FROM USER_INDEXS WHERE TABLE_NAME=’TableName’;

-- 查看索引所建立的列信息
SELECT * FROM USER_IND_COLUMNS WHERE INDEX_NAME=UPPER(‘IndexName’);

-- 创建主键
--1) 创建表的时候指定主键
CREATE TABLE Persons
(
P_ID int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CONSTRAINT PK_Persons PRIMARY KEY (P_ID,LastName)
)
--2) ALTER Table 添加的两种方法
ALTER TABLE TableName ADD PRIMARY KEY(Column1);
-- 这种方式是否支持多列? 这种方式没有指定主键名称,主键默认名称是什么
ALTER TABLE TableName ADD CONSTRAINT PK_TabeName PRIMARY KEY(Column1, Column2);

-- 创建唯一性索引
ALTER TABLE TableName ADD CONSTRAINT U_INDEX_NAME UNIQUE (Column1, Column2);
CREATE UNIQUE INDEX U_INDEX_NAME ON TableName(Column1, Column2);

-- 创建普通索引 是否有ALTER 方法创建?
CREATE INDEX I_INDEX_NAME ON TableName (Column1, Column2);


-- 当索引列存在重复时, 创建唯一性索引会报 “找到重复关键字"
/*1. 将重复的记录进行修改
2. 建立 enable novalidate 索引*/
ALTER TABLE TableName ADD CONSTRAINT U_IDX_NAME ENABLE NOVALIDATE;

-- 修改索引类型:  ENABLE NOVLIDATE —> ENABLE VALIDATE
ALTER TABLE TableName ENABLE VALIDATE CONSTRAINT U_IDX_NAME;

-- 删除索引
ALTER TABLE TableName DROP CONSTRAINT U_IDX_NAME;

-- 将表设置为只读表
ALTER TABLE T READ ONLY;
-- 取消只读(设置为读写)
ALTER TABLE T READ WRITE;
登录后复制
-- 更新一个字段
/*
括号内的conditions 为 Table1和Table2的关联
括号外的conditions 为 Table1更新的范围
*/
UPDAE Table1 SET Column1=(
SELECT Column FROM Table2 WHERE Conditions
) WHERE Conditions;


-- 更新多个字段,多个字段之间使用逗号 , 分割
UPDATE Table1 SET Column1, Column2=(
SELECT Column1, Column2 FROM Table2 WHERE Conditions
) WHERE Conditions;

-- 将001和002机构的MCC,MCCDescription 两个字段 关联MCCDetail表 进行更新
UPDATE Merchant t1 SET MCC,MCCDescription=(
SELECT MCC,MCCDescription FROM MCCDetail t2
WHERE T1.MCC=T2.MCC
) WHERE T1.MerchantNo IN ('001', '002');

登录后复制
相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!