第二次课-启动以及简单查询

1.启动一系列操作:

```

开始--cmd           cmd

启动服务            net start oracleserviceorcl

进入sqlplus            sqlplus

以超级管理员登录        sys/Oracle11 as sysdba

查看当前用户            show user

解锁scott            alter user scott identified by tiger account unlock;

切换到scott            conn scott/tiger

查看                        show user

```


2.问题:

     如何查看用户下有哪些表? select * from tab;

      如何查看表有哪些属性?desc[ribe] tablename;


SQL: structure query language 结构化查询语言。


DQL:数据查询语言: select

DDL:数据定义语言: create,alter,drop

DML:数据修改语言: insert,update,delete

DCL:数据控制语言: commit,rollback,grant,revoke


查询: select

1、最简单的查询: select  from ;

(a) 查询表中所有记录。用*

  select * from emp;

(b) 查询特定属性。多个属性之间用逗号分隔。

  查询每个员工的工号、姓名和参加工作时间。

  select empno,  ename, hiredate from emp;

(c) 可以用distinct去掉重复记录。

  select deptno from emp;

  select distinct deptno from emp;

  select distinct deptno,sal from emp;

(d) 可以用||把多个属性连接在一起。

  查询每个员工的工资,要求显示格式为: XX员工的工资是:XX

  select ename,sal from emp;

  select ename||'员工的工资是:'||sal from emp;


注意: 所有sql语句以分号为结束标志。

      所有出现的标点符号应该是英文半角状态下的。

2、条件查询:  select from where;

  (a) 条件表达式的组成: 属性名  运算符  比较值


  (b) 算数运算符: > < >= != <>

  查询工资超过2000的员工姓名。

  select ename,sal from emp where sal>2000;


  (c) 逻辑运算符: not and or

  查询20号部门工资超过2000的员工姓名。 deptno=20 and sal>2000

  (d) in(几个中的一个),between and(连续值域)

  查询20号、30号部门员工的姓名和经理号。

  select ename,mgr from emp where deptno=20 or deptno=30 or deptno=40 or deptno=50;

                                  deptno in(20,30,40,50)

  (e) 空值: null.空值不代表任何一个具体的值,其与任何数进行运算,结果永远是空值。 3+null 3>null  .



  问题: 如何查询空值?

   1. 查询哪些员工奖金为空。

   select ename from emp where comm=null;

  is运算符: comm is null  comm is not null

  2. 查询每个员工的月收入。 sal+comm

  select ename,sal+nvl(comm,0) from emp;

 3.   空值处理函数: nvl(a,b) ,当a为空,返回b,否则返回a.

                  nvl2(a,b,c)

注意:Oracle是大小写不敏感的,但当字符出现在比较表达式中时,要严格区分大小写。

你可能感兴趣的:(第二次课-启动以及简单查询)