• 数据表的基本概念


    # 基本概念

      方案=用户

       实体:Java中的类

       记录:Java中的对象,行

       字段:java中的属性,列

       表:同一个实体中,所有的记录、字段组合起来就是表。

    # varchar2和char的区别:
     
    varchar2:是可变字符串,在声明长度时,如果存储不满,可自动缩小长度
    char:定长字符串,在声明长度时,如果存储不满,用空格填补满。
     
     
    # varchar和varchar2区别:
     
    varchar:汉字占2个字节,英文占1个字节;varchar2:都占2个字节
    varchar是标准的sql;varchar2是oracle独有的
    varchar不对空字符串处理;varchar2对空字符串记作null
    varchar存放固定长字符串,最大长度为2000个字节;varchar2存放可变字符串,最大长度为4000字节。
     
     
    # 大文本BLOB,CLOB不能进行alter修改 -->先删除该列,再重新追加。
     

    # 基本命令

    show user;  ---查看当前用户
    =======================================================
    select * from tab;  ---查看当前用户下的所有表
    ========================================================
    Dos查看设置:
    
      set linesize 300
    
      set pagesize 300
    =========================================================
    host cls 清屏

    # 数据查询
    --列别名,注意:年薪不要分开写,最好加上" "

    select ename 姓名,salary*15 年薪 from s_emp;

    # null值的计算
    --nvl(参数1,参数2):若参数1为空,返回参数2;若参数2为空,返回参数1 类似"三目运算"

    select ename,salary*16+nvl(commission_pct,0) from s_emp;

    --排重 distinct

    select distinct salary,manager_id from s_emp; --多字段排重,会以组合的形式出现

    --where关键字
    --特殊条件(极限条件)

    select * from emp where 1=1;--永真
    select * from emp where 1!=1; --永假


    # 模糊查询

    1.like... '李%'、'%丽%'、'_博%'、'%e_'、'%\_%' escape '\'

    select * from emp where ename like '%\_%' escape '\'; --模糊查询出带有下划线的名字

    2.between...and... 在特定范围内 "从小到大"


    3.in... 查询出某一列内容与所列的匹配内容 ---注意:not in...不能出现null,若出现null,结果为null

    select * from emp where eno not in (10,20,30,null); ---结果为空
    select * from emp where mgr not in(select mgr from emp);
    --null、not null
    
    select ename from s_emp where commission is null;

    # 排序:order by... desc/(asc) 排序永远在语句的最后

    select * from s_emp order by salary desc; --(大――>小)
    select empno,ename,sal from emp order by 3 desc; 
    select * from s_emp order by dept_id desc,salary desc,id asc;
    --order by 字段名|表达式|序号
    
    select * from s_emp order by salary desc; 
    select empno,ename,sal from emp order by 3 desc; 
    select * from emp order by sal+1000 desc; --null值在排序的时候默认是最大的
    select empno,ename,sal from emp order by sal desc nulls last; --将null扔到后面

    # 追加排序(command)

    SQL> select empno,ename,sal from emp;
    SQL> a order by sal desc;
    1* select empno,ename,sal from emporder by sal desc
    SQL> /
    
    
    --修改写错单词
    SQL> select * fron emp;
    
    SQL> c /fron/from
    1* select * from emp
    SQL> /

    # 运算符


    算术运算符:+、-、*、/、mod(a,b)
    逻辑运算符:and or not
    比较运算符:>、<、=、>=、<=、<>、!=(非SQL92标准)

    注意:现在用的是SQL99标准,若接触到MyCat中间件的时候,在增添数据的时候要遵守SQL92标准。

    # DDL数据定义语言

    1.建表

    create table 表名(
    字段名1 数据类型(长度),
    字段名2 数据类型(长度),
    字段名3 数据类型(长度),
    ...
    )

    2.修改表结构/表名

    alter table 表名 add 列名 数据类型;
    
    alter table 表名 drop column 列名;
    
    alter table 表名 rename 原列名 to 新列名;
    
    alter table 表名 rename to 新表名;

    3.删除表

    delete from emp;--可以回退,支持闪回,不会释放空间(换了个地方存储数据)
    truncate table emp; --不可回退,不支持闪回,清空空间
    delete 会产生碎片,truncate不会
    如果碎片太多,需要整理碎片:
      a. alter table 表名 move;
      b. 导入导出
    set time on/off --显示时间

    # DML数据操纵语言

    1.增、删、改

    insert into 表名 values(列值名1,列值名2...);
    delete [from] 表名 [where<删除条件>];
    update 表名 set 列名1=列值1,列名2=列值2...[where<更新条件>]; ---若修改错了,记得rollback;
      # (CRUD)增、删、改、查(DQL非官方)
  • 相关阅读:
    C++字符串(srtring)反转
    字典(Dictionary)
    畅通工程
    子串计算
    神奇的口袋
    SLT 优先队列 哈弗曼树最小带权路径
    大数阶乘
    整数拆分
    A+B (带有,的数字)
    Hdu 1232 畅通工程
  • 原文地址:https://www.cnblogs.com/wzhqzm/p/13358020.html
Copyright © 2020-2023  润新知