Oracle--sqlplus--常用命令
登陆:win+R输入sqlplus即可
如果前期没有用户可以输入sqlplus /nolog 记得sqlplus后有一个空格
--格式化命令
进行数据查询时,默认的方式排版会很乱,如果我们要解决这个问题,那么可以设置屏幕的宽度。
我们还可以通过sqlplus 来设置每行的字符数
1 SERLINESIZE 300;
解决分页现实:
1 SET PAGESIZE 30;
--对于创建特别长的sql 使用ed命令 ed xx 就会提示你是否创建xx.sql
随后可用@xx来执行此文件中的sql内容
ed xx; @xx;
不过在windows上大可不必这样,直接使用notepad,编写好后复制粘贴即可
--关于用户切换(登陆/连接到某用户)
CONN 用户名/密码 [AS SYSDBA];
例:CONN SYS/change_on_install AS SYSDBA;
--如果使用的是sys用户则需要加上AS SYSDBA
--现实当前用户
1 SHOW USER;
如果登陆了sys用户,那么想查找其它用户的表,需要在表名前加上用户名 例如
1 SELECT * FROM c##scott.emp;
--登陆一个普通用户
1 CONN c##scott/tiger;
即CONN 用户名/密码;
--查看所有的表
1 SELECT * FROM tab;
--如果在查找表时,发现查询出来的结果排版不整齐。
按如下代码查找(局部格式化)
1 COL tname FOR A20; 2 COL tabtype FOR A20; 3 COL clusterid FOR A20; 4 SELECT * FROM tab;
--局部格式化
--查看某表的结构
1 DESC 表名;
--sqlplus 除了执行自己的命令之外 也可以执行本机的命令,只要在相关命令前加上host即可
例如host dir
host copy d:/x.jpg d:/xx.jpg
--只要记得链接和sql即可 一般都用nvicat
使用oracle 12 c 推荐添加c##scott.sql用户 命令如下
-- 使用超级管理员登录 CONN sys/change_on_install AS SYSDBA ; -- 创建c##scott用户 CREATE USER c##scott IDENTIFIED BY tiger ; -- 为用户授权 GRANT CONNECT,RESOURCE,UNLIMITED TABLESPACE TO c##scott CONTAINER=ALL ; -- 设置用户使用的表空间 ALTER USER c##scott DEFAULT TABLESPACE USERS; ALTER USER c##scott TEMPORARY TABLESPACE TEMP; -- 使用c##scott用户登录 CONNECT c##scott/tiger -- 删除数据表 DROP TABLE emp PURGE ; DROP TABLE dept PURGE ; DROP TABLE bonus PURGE ; DROP TABLE salgrade PURGE ; -- 创建数据表 CREATE TABLE dept ( deptno NUMBER(2) CONSTRAINT PK_DEPT PRIMARY KEY, dname VARCHAR2(14) , loc VARCHAR2(13) ) ; CREATE TABLE emp ( empno NUMBER(4) CONSTRAINT PK_EMP PRIMARY KEY, ename VARCHAR2(10), job VARCHAR2(9), mgr NUMBER(4), hiredate DATE, sal NUMBER(7,2), comm NUMBER(7,2), deptno NUMBER(2) CONSTRAINT FK_DEPTNO REFERENCES DEPT ); CREATE TABLE bonus ( enamE VARCHAR2(10) , job VARCHAR2(9) , sal NUMBER, comm NUMBER ) ; CREATE TABLE salgrade ( grade NUMBER, losal NUMBER, hisal NUMBER ); -- 插入测试数据 —— dept INSERT INTO dept VALUES (10,'ACCOUNTING','NEW YORK'); INSERT INTO dept VALUES (20,'RESEARCH','DALLAS'); INSERT INTO dept VALUES (30,'SALES','CHICAGO'); INSERT INTO dept VALUES (40,'OPERATIONS','BOSTON'); -- 插入测试数据 —— emp INSERT INTO emp VALUES (7369,'SMITH','CLERK',7902,to_date('17-12-1980','dd-mm-yyyy'),800,NULL,20); INSERT INTO emp VALUES (7499,'ALLEN','SALESMAN',7698,to_date('20-2-1981','dd-mm-yyyy'),1600,300,30); INSERT INTO emp VALUES (7521,'WARD','SALESMAN',7698,to_date('22-2-1981','dd-mm-yyyy'),1250,500,30); INSERT INTO emp VALUES (7566,'JONES','MANAGER',7839,to_date('2-4-1981','dd-mm-yyyy'),2975,NULL,20); INSERT INTO emp VALUES (7654,'MARTIN','SALESMAN',7698,to_date('28-9-1981','dd-mm-yyyy'),1250,1400,30); INSERT INTO emp VALUES (7698,'BLAKE','MANAGER',7839,to_date('1-5-1981','dd-mm-yyyy'),2850,NULL,30); INSERT INTO emp VALUES (7782,'CLARK','MANAGER',7839,to_date('9-6-1981','dd-mm-yyyy'),2450,NULL,10); INSERT INTO emp VALUES (7788,'SCOTT','ANALYST',7566,to_date('19-04-1987','dd-mm-yyyy')-85,3000,NULL,20); INSERT INTO emp VALUES (7839,'KING','PRESIDENT',NULL,to_date('17-11-1981','dd-mm-yyyy'),5000,NULL,10); INSERT INTO emp VALUES (7844,'TURNER','SALESMAN',7698,to_date('8-9-1981','dd-mm-yyyy'),1500,0,30); INSERT INTO emp VALUES (7876,'ADAMS','CLERK',7788,to_date('23-05-1987','dd-mm-yyyy')-51,1100,NULL,20); INSERT INTO emp VALUES (7900,'JAMES','CLERK',7698,to_date('3-12-1981','dd-mm-yyyy'),950,NULL,30); INSERT INTO emp VALUES (7902,'FORD','ANALYST',7566,to_date('3-12-1981','dd-mm-yyyy'),3000,NULL,20); INSERT INTO emp VALUES (7934,'MILLER','CLERK',7782,to_date('23-1-1982','dd-mm-yyyy'),1300,NULL,10); -- 插入测试数据 —— salgrade INSERT INTO salgrade VALUES (1,700,1200); INSERT INTO salgrade VALUES (2,1201,1400); INSERT INTO salgrade VALUES (3,1401,2000); INSERT INTO salgrade VALUES (4,2001,3000); INSERT INTO salgrade VALUES (5,3001,9999); -- 事务提交 COMMIT;