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中使用
  • 相关阅读:
    在 Windows 上测试 Redis Cluster的集群填坑笔记
    vmware安装黑苹果教程
    微信支付v3发布到iis时的证书问题
    Linux下安装SQL Server 2016(连接篇SQL Server on linux)
    Linux下安装SQL Server 2016(连接篇SQL Server on linux)
    Linux下安装SQL Server 2016(安装篇SQL Server on linux)
    Linux下安装SQL Server 2016(准备篇SQL Server on linux)
    客服端与服务端APP支付宝支付接口联调的那些坑
    ASP.NET MVC]WebAPI应用支持HTTPS的经验总结
    .net平台下C#socket通信(中)
  • 原文地址:https://www.cnblogs.com/zhanggaofeng/p/6254277.html
Copyright © 2011-2022 走看看