zoukankan      html  css  js  c++  java
  • 数据库 oracle数据库基本知识

    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;
    sql优化①:select中使用列名查询比使用*查询效率更高
    select子句中的别名不可以用在where子句中,但是from子句中别名可以在where中使用
  • 相关阅读:
    高并发系统如何设计
    PHP的垃圾回收机制(开启垃圾回收机制后的优缺点是什么)
    移动端网站如何开发(电脑端网站到手机端网站我们需要在html代码中添加哪个meta标签)
    家庭洗车APP --- Androidclient开展 之 网络框架包介绍(一)
    一天JavaScript示例-判定web页面的区域
    左右margin top问题百分比值
    Ubuntu14.04设备JDK
    三层架构,四大天王——删
    MEMO:UIButton 中的图片和标题 左对齐
    HDU 3874 离线段树
  • 原文地址:https://www.cnblogs.com/zhanggaofeng/p/6254277.html
Copyright © 2011-2022 走看看