Oracle01

1.安装oracle 环境

  注意 不要有中文路径  关闭杀毒软件

安装完毕之后 使用 终端 验证

sqlplus  system/123456

只要看到

SQL>

2.验证语言环境

  select  userenv('lang') from dual;

    配置环境变量 

  NLS_LANG

    AMERICAN_AMERICA.UTF8 

3.执行初始化脚本

  SQL>@路径/脚本名

4.java中数据的存储问题

    内存中      易失 容量小  贵      ----- 快

  File    空间大  不易失  偏移  ---- 慢  数据量大了 不利用维护  和 数据的管理

  DB(data base ) ---- DBMS(database manager system)

5.主流的dbms

  都是 RDBMS  (relation database manager system) 关系型数据库管理系统

  基于二维表的数据库管理系统

  表头  table header

  行      row

  列      column

  字段名  field  name

  字段值  field  value

6.主流的关系型数据库管理系统

  Oracle        甲骨文                    oracle9i  oracle10g  oracle11g

  db2          IBM            db2

  sqlserver    微软                        sqlserver2008


  非商业级      mysql  sun  -----  oracle

7.操作数据库的语言  SQL(struct  query  language  结构化查询语言) 10*10*10

  dql (data query language)  数据查询语言 

      select 

  DDL (data define language)  数据定义语言

      create table  建表

      drop  table  删表

      alter  table  修改表

  DML(data  manipulation language) 数据操作语言

      insert  插入数据

      delete  删除数据

      update  修改数据

  TCL(transaction control language) 事务控制语句

      commit    提交数据

      rollback  回滚数据

      savepoint  保存点

  DCL(data  control language)  数据控制语言

      grant    授权

      revoke  回收权限

  8.from 子句 (select语句)

    8.0 查看表结构

    desc  表名;

    8.1 如何从表中查询一个字段对应的内容?

    select  字段名  from  表名;

        查询 s_emp 表中 所有的salary

    select salary from s_emp; 

        查看一下 s_dept 表  然后 查询 s_emp 表中的所有的name

    desc  s_dept;

    describe  s_dept;

    SQL> desc s_dept;

    Name                                      Null?    Type

    ----------------------------------------- -------- --------------

    ID                                        NOT NULL NUMBER(7)

    NAME                                      NOT NULL VARCHAR2(25)

    REGION_ID                                          NUMBER(7)

    select  name  from  s_dept; 


    8.2 如何查询多个字段对应的内容?

    select  字段名1,字段名2,字段名3  from  表名;

        查询s_emp 表中的  id  first_name  salary

    select  id,first_name,salary from s_emp;

    col  字段名  for  an;    对字段名  设置 一行最多n 个字符

    col  first_name  for  a21;

        注意不能对数字类型的字段 设置宽度

      练习:

      查询  s_emp  表中  id  manager_id  salary

  select  id,manager_id,salary from  s_emp;


  8.3 查询 s_dept 表中 所有的字段对应值

  SELECT  ID,NAME,REGION_ID FROM  S_DEPT;

      查询 s_emp 表中 所有的字段对应值

select ID,

LAST_NAME,

FIRST_NAME,

USERID,

START_DATE,

COMMENTS,

MANAGER_ID,

TITLE,

DEPT_ID,

SALARY,

COMMISSION_PCT  from  s_emp;

  * 号可以代表 所有的字段

  select  * from  s_emp;


  8.4 sql中的数学运算

  +  -  *  /

  显示s_emp 表中的 salary  并且  加上 1000 进行显示

  select  salary,salary+1000  from  s_emp;

  显示s_emp 表中的 salary  并且  显示每天的平均工资

  select  salary,salary/22  from  s_emp;

  显示s_emp 表中的 salary  并且  显示年薪  (13 薪)

  select  salary,salary*13  from  s_emp;   


  8.5 别名问题

  给一个字段  或者 表达式 起一个别名  方便以后程序 通过名字获取数据

    select  salary  sal,salary*13 yearsal from  s_emp; 

  可以通过 双引号 来让别名原样显示

    select  salary  sal,salary*13 "yearsal" from  s_emp;   

  注意别名 只能有一个

    select  salary  sal,salary*13 "year sal" from  s_emp; 

  8.6 sql 中字符串的表达

      使用 单引号  引起一串字符 

  ''  ' '  'a'  'hello world'

  8.7 字符串的连接

  ORACLE  中字符的连接  使用 ||(字符串拼接符)

  把 s_emp 表中的first_name  和  last_name  拼接起来

  select  first_name , last_name from  s_emp;

  select  first_name  last_name from  s_emp;

  上面的都无法达到要求

    select  first_name || last_name from  s_emp;

    要求在 first_name  和 last_name 之间拼接一个下划线字符串

    select  first_name ||'_'||last_name from  s_emp;

    要求在 first_name  和 last_name 之间拼接一个单引号字符串

    /* 两个单引号 转义之后 翻译成一个单引号  */

    select  first_name ||''''||last_name from  s_emp;

  8.8 NULL值的处理

    为什么要处理NULL 值

      NULL值和任何值做运算结果都是NULL

  重新计算年薪  年薪的计算 是 月薪乘以 12  加上 月薪乘以 12 乘以 提成/100

  select  salary*12,salary*12 + salary*12*commission_pct/100  yearsal

    from  s_emp;   

  oracle 公司为了处理null值 引入一个函数 叫

    nvl(par1,par2)  当par1 为NULL时  则返回par2的值

    当par1 不为NULL时  则返回par1 本身。

    select  salary*12,nvl(salary*12 + salary*12*commission_pct/100,0) yearsal

    from  s_emp;

  NULL 要尽早处理  不要等NULL值运算之后再处理

    select  salary*12,salary*12 + salary*12*nvl(commission_pct,100)/100 yearsal

    from  s_emp;

  第二天重启时  如果连接不上数据库  就重新开启 服务中的XE 和 监听两个服务

  再连接数据库  

你可能感兴趣的:(Oracle01)