当前位置:Gxlcms > mysql > ORACLE常用的SQL

ORACLE常用的SQL

时间:2021-07-01 10:21:17 帮助过:10人阅读

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
<无>
  1. -- 使用sqlplus连接数据库
  2. -- 标准用法
  3. sqlplus username/password@hostname:port/SERVICENAME
  4. -- 示例
  5. sqlplus payment/password@192.168.117.1/pay
  6. -- hostname:port/SERVICENAME 可配置为别名到 tnsnames.ora 文件
  7. sqlplus payment/password@tnsname
  8. -- 先进入 sqlplus, 然后使用 conn 方法进行连接
  9. sqlplus /nolog
  10. conn payment/password@192.168.117.1/pay
  11. -- copy 几条
  12. -- 操作系统认证,不需要listener进程
  13. sqlplus / as sysdba
  14. -- 只能连接本机数据库,同样不需要listener进程
  15. sqlplus username/password
  16. -- 这种方式需要listener进程处于可用状态。最普遍的通过网络连接。
  17. sqlplus username/password@tnsname
  1. -- 登录服务器, 切换至oracle用户
  2. su - oracle
  3. -- 进入文件夹,后续所有对文件的操作都是基于该目录
  4. cd /oracle/database/
  5. -- sqlplus 连接具体的数据库
  6. sqlplus payment/password
  7. -- 确定用户是否正确
  8. show user;
  9. -- 执行payment.sql
  10. -- 所有的内容
输出至 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;
  1. -- 查看数据库表的索引
  2. SELECT * FROM USER_INDEXS WHERE TABLE_NAME=’TableName’;
  3. -- 查看索引所建立的列信息
  4. SELECT * FROM USER_IND_COLUMNS WHERE INDEX_NAME=UPPER(‘IndexName’);
  5. -- 创建主键
  6. --1) 创建表的时候指定主键
  7. CREATE TABLE Persons
  8. (
  9. P_ID int NOT NULL,
  10. LastName varchar(255) NOT NULL,
  11. FirstName varchar(255),
  12. Address varchar(255),
  13. City varchar(255),
  14. CONSTRAINT PK_Persons PRIMARY KEY (P_ID,LastName)
  15. )
  16. --2) ALTER Table 添加的两种方法
  17. ALTER TABLE TableName ADD PRIMARY KEY(Column1);
  18. -- 这种方式是否支持多列? 这种方式没有指定主键名称,主键默认名称是什么
  19. ALTER TABLE TableName ADD CONSTRAINT PK_TabeName PRIMARY KEY(Column1, Column2);
  20. -- 创建唯一性索引
  21. ALTER TABLE TableName ADD CONSTRAINT U_INDEX_NAME UNIQUE (Column1, Column2);
  22. CREATE UNIQUE INDEX U_INDEX_NAME ON TableName(Column1, Column2);
  23. -- 创建普通索引 是否有ALTER 方法创建?
  24. CREATE INDEX I_INDEX_NAME ON TableName (Column1, Column2);
  25. -- 当索引列存在重复时, 创建唯一性索引会报 “找到重复关键字"
  26. /*1. 将重复的记录进行修改
  27. 2. 建立 enable novalidate 索引*/
  28. ALTER TABLE TableName ADD CONSTRAINT U_IDX_NAME ENABLE NOVALIDATE;
  29. -- 修改索引类型: ENABLE NOVLIDATE —> ENABLE VALIDATE
  30. ALTER TABLE TableName ENABLE VALIDATE CONSTRAINT U_IDX_NAME;
  31. -- 删除索引
  32. ALTER TABLE TableName DROP CONSTRAINT U_IDX_NAME;
  33. -- 将表设置为只读表
  34. ALTER TABLE T READ ONLY;
  35. -- 取消只读(设置为读写)
  36. ALTER TABLE T READ WRITE;
  1. -- 更新一个字段
  2. /*
  3. 括号内的conditions 为 Table1和Table2的关联
  4. 括号外的conditions 为 Table1更新的范围
  5. */
  6. UPDAE Table1 SET Column1=(
  7. SELECT Column FROM Table2 WHERE Conditions
  8. ) WHERE Conditions;
  9. -- 更新多个字段,多个字段之间使用逗号 , 分割
  10. UPDATE Table1 SET Column1, Column2=(
  11. SELECT Column1, Column2 FROM Table2 WHERE Conditions
  12. ) WHERE Conditions;
  13. -- 将001和002机构的MCC,MCCDescription 两个字段 关联MCCDetail表 进行更新
  14. UPDATE Merchant t1 SET MCC,MCCDescription=(
  15. SELECT MCC,MCCDescription FROM MCCDetail t2
  16. WHERE T1.MCC=T2.MCC
  17. ) WHERE T1.MerchantNo IN ('001', '002');

人气教程排行