一、SQL语言分类:

    1.DDL(数据定义语言): create(创建) alter(修改) drop(删除)——————主要是对表操作。
    2.DML(数据操作语言): insert(插入) delete(删除) update(更新) select(查询) 、select……for update(查询更新)——表中数据进行操作
    3.DQL数据查询语言:基本语句、Order by 子句、Group by 分组语句
    4.TCL(事务控制语言):Commit(提交) 、Savepoint(保存) 、rollback(回滚)、
    5.DCL(数据控制语言):Grant(授权)、revoke(撤销)命令。

    二、Oracle数据类型:
    Char: 字符型(最大长度2000,定长、不足时以空格补充)
    Varchar2:字符型 最大长度 4000,变长,实际长度由存储的数据长度决定(与存储的数据长度一致)
    Number(x,y):既可以存储浮点型,也可以存储整形,x表示有效位数的最大位数,y表示小数位最大位数。
    Date:存储时间类型。默认格式:dd—mm—yy: 天-月-年。
    Clob:存储较大的文本,比如存储非结构化XML文档,最大为 4G
    Blob:存储二进制对象,如图形、视频、声音等。
    Long :存储较长字符串,最大长度为2G

    三、表管理:

    1.创建表:
    Create table 表名(
    字段名称 类型 约束

    2.修改表结构

    2.1、添加列
    Alter table 表名 add( 字段名称 数据类型 )

    例子:alter table test_tb add(test_name varchar2(200))

    2.2、删除表中一列

    Alter table 表名 set unused column 列名

    例子:alter table test_tb set unused column test_name

    一般:不建议删除数据库中的列。

    2.3、修改列名
    Alter table 表名 rename column 旧列名 to 新列名

    例子:alter table test_tb rename column test_msg to msg

    2.4、修改表名:
    Rename 表名1 (旧名字)to 表名2(新名字)

    例子:rename test_tb to test_tb1

    2.5、修改表字段
    Alter table 表名 modify( 字段名称 新的字段类型 )

    例子:alter table test_tb1 modify(msg varchar(4000))

    2.6、添加表约束:
    Alter table 表名 add Constraint 约束名 约束内容

    例子:
    alter table test_tb1 add constraint p_k primary key(test_num)——-主键约束

    alter table test_tb1 add constraint c_k check(msg=’男’ or msg=’女’)—-检查约束

    Not null——非空约束

    四、数据操作语言:DML

    对oracle自带的表进行训练操作

    简单查询 :

    Select *|列名|表达式 from 表名 where 条件 order by 列名

    1.* 表示所有列

    2.列名可以选择若干个表中列名,各个表中列名用逗号分隔。

    3.表达式可以是函数,列名,常数等组成表达式。

    4.Where子句是查询的条件

    5.Order by 要求在查询结果中排序,默认是升序。

    例子:

    select * from emp order by sal desc(降序)

    select * from emp order by sal (升序)

    select * from emp order by sal asc(升序)

    插入:
    Insert into 表名 values(所有字段对应值);
    Insert into 表名(字段名1,字段名称2….) values(对应字段值)
    例子:insert into test_tb1(test_num,msg) values(666,’MSG values’)

    更新:
    Update 表名 set 字段名称 =值 where 更新条件
    例子:update test_tb1 set msg=’hello oracle’ where test_num=123

    删除:
    Delete 表名 where 条件

    例子:delete test_tb1 where msg=’hello oracle’

    Truncate—将表中数据一次性删除
    语法: truncate table 表名
    Truncate和detele区别:

    1、truncate是DDL命令,删除数据不能回复;delete是DML命令,删除数据可以通过数据库的日志文件进行恢复。
    2、如果一个表中记录很多,truncate相对delete速度快。
    警告:由于truncate命令比较危险,所有在实际开发中,truncate命令慎用。

    五、操作符:
    算术操作符: + 、 - 、* 、/ (加、减、乘、除)
    关系运算和逻辑运算符:
    = 等于

    大于

    <>或 != 不等于
    <= 小于或等于
    < 小于

    = 大于或等于

    逻辑运算符:
    And 、 or 、 in 、not in
    And:且
    Or: 或者
    Not in 不在…中
    In:在…..中
    —加法
    例子:SELECT ename,job,(sal+comm) FROM emp;
    —减法
    例子:SELECT ename,job,(sal-comm) FROM emp;
    —双竖线 ||
    例子:SELECT (ename||’的工资’||(sal+comm)) FROM emp;
    字符串连接操作符: || (双竖线)
    例子:select (ename||’ 的工资是:’||(sal+comm)) from emp

    oracle如何创建视图
    视图的优点:
    1.对数据库的访问,因为视图可以有选择性的选取数据库里的一部分。
    2.用户通过简单的查询可以从复杂查询中得到结果。
    3.维护数据的独立性,试图可从多个表检索数据。
    4.对于相同的数据可产生不同的视图。

    视图分为简单视图和复杂视图:
    1、简单视图只从单表里获取数据,复杂视图从多表;
    2、简单视图不包含函数和数据组,复杂视图包含;
    3、简单视图可以实现DML操作,复杂视图不可以。

    创建视图
    CREATE [OR REPLACE] [FORCE|NOFORCE] VIEW view_name
    [(alias[, alias]…)]
    AS subquery
    [WITH CHECK OPTION [CONSTRAINT constraint]]
    [WITH READ ONLY]

    详细说明:
    OR REPLACE:若所创建的试图已经存在,ORACLE自动重建该视图;
    FORCE:不管基表是否存在ORACLE都会自动创建该视图;
    NOFORCE:只有基表都存在ORACLE才会创建该视图:
    alias:为视图产生的列定义的别名;
    subquery:一条完整的SELECT语句,可以在该语句中定义别名;
    WITH CHECK OPTION:插入或修改的数据行必须满足视图定义的约束;
    WITH READ ONLY:该视图上不能进行任何DML操作。

    —举例说明:
    CREATE OR REPLACE VIEW dept_sum_vw(name,minsal,maxsal,avgsal)

    1. AS SELECT d.dname,min(e.sal),max(e.sal),avg(e.sal)
    2. FROM emp e,dept d
    3. WHERE e.deptno=d.deptno
    4. GROUP BY d.dname;<br />Oracle创建视图

    create or replace view view_aa
    as
    select title,author from t_forum a,t_forumtype b where a.forumid=b.forumtypeid;
    select * from view_aa;

    视图的优点:
    1.安全:根据个人的权限只允许看到某几个字段
    2.隐藏数据的复杂性
    3.简化用户的SQL命令
    4.将引用程序与基表的修改隔离
    注意:
    1.视图不能包含伪列(currval,nextval,rownum)
    2.视图中如果包含连接,集合分组等函数不能删除更新插入只能查询(常见视图都是用于查询了,基本上不会出现更改)
    3.基表和视图的数据是绑定的
    4.视图中可以使用分组函数