sqlplus登录 普通用户登录 c:\>sqlplus 请输入用户名:scott 请输入口令: sqlplus scott/11 quit退出 管理员登录 sqlplus /nolog 连接数据库 SQL>connect /as sysdba
--查询当前用户下的所有的表 --select * from tab; --tab是数据字典(是oracle的管理员分配给oracle普通用户的一些资源 tab是oracle系统提前定义的关键字) scott用户下 DEPT部门表 DEPTNO DNAME LOC --------- -------------- ----------- 10 ACCOUNTING NEW YORK 20 RESEARCH DALLAS 30 SALES CHICAGO 40 OPERATIONS BOSTON --查询dept部门表结构的定义 SQL> desc dept; 名称 是否为空? 类型 ----------------------------------------- -------- ------------------- DEPTNO NOT NULL NUMBER(2) DNAME VARCHAR2(14) LOC VARCHAR2(13)
SQL> set linesize 120 --设置行宽 SQL> set pagesize 120 --设置页 --设置每一列的宽度 SQL> col empno(列名) for 999999 --对于数字用一个9代表占1个单位 SQL> col empname(列名) for a20 --对于字符用a20表示占20个单位 --清屏 SQL> host cls select语言后面可以跟*、多个列名、表达式、别名 --查询员工姓名、工资 SQL> select ename,sal from emp; --别名、表达式 SQL> select ename as "姓名",sal 工资,sal*12 年薪 from emp; 姓名 工资 年薪 ---------- ---------- ---------- SMITH 800 9600 ALLEN 1600 19200 --注意点:假如工资之间有空格或者其他特殊字符,必须加"" --sql语句大小写不敏感 --表达式遵循算术表达式规则 --如果SQL语句写错了,可以使用ed命令进行修改(在ed命令打开的文本框里不要加;--分号),保存后,键入"/"执行命令
oracle中的空值 --空值是无效的,未指定的,未知的或不可预知的值 --空值不是空格或者0 --包含空值的数学表达式的值都为空值(即空值与任何有效值进行计算,结果都是空值) --滤空函数修正空值 --nvl(列名,自己想要的值) SQL> select sal "月薪",sal*12+nvl(comm,0) 年薪 from emp; 月薪 年薪 ---------- ---------- 800 9600 1600 19500 --查询奖金为空的员工 SQL> select * from emp 2 where comm is null;(where comm = null这是错误写法) --查询奖金不为空的员工 select * from emp where comm is not null(where comm != null这是错误写法)
--连接符 "||" SQL> select ‘hello1‘|| ‘hello2‘ from emp; --注意点:在sql语句中出现了日期和字符串要使用单引号括起来,别名是双引号 --dual虚表,由oracle管理员分配,查询和表没有任何关系的数据时,要用虚表(伪表),一个数据字典 SQL> select ‘hello1‘|| ‘hello2‘ from dual; ‘HELLO1‘||‘H ------------ hello1hello2 --distinct 删除重复行 SQL> select distinct deptno from emp;
原文:http://www.cnblogs.com/zhanggaofeng/p/6254277.html