SQLPlus
    Q进入sqlplus?
    A 运行中输入sqlplus

    Q连接?
    A scotttiger

    查询emp表:
    SELECT*FROM emp

    排版?
    SET LINESIZE300设置行显示数
    SET PAGESIZE30设置页显示记录数

    Sqlplus中输入方便(修改行)没输入方法?
    @e:文件名
    找应文件运行

    户?
    Conn systemmanager
    查前户?
    SHOW user
    查户信息?
    SELECT*FROM SCOTTEMP
    *连接户时输入密码显示

    查前户表?
    SELECT tname FROM tab
    知道标表结构?
    DESC emp
    字段类型?
     NUMBER(4)数字类型长度4
    ‚ VARCHAR2(10)字符串类型长度10
    ƒ DATE: 时间类型
    ④ NUMBER(72):数字类型7位中数占2位

    解锁账号密码:
    ALTER USER scott ACCOUNT UNLOCK
    CONN scott
    输入新口令两遍


    1 课程名称:sql语句
    章容:
    简单查询
    限定查询
    单行函数
    2 需表
    讲解中需scott户表namescott表?
    EMPBONUSDEPTSALGRADE

    EMP雇员表
    编号
    字段
    类型
    备注
    1
    EMPNO
    NUMBER(4)
    雇员编号
    2
    ENAME
    VARCHAR(10)
    雇员名称
    3



    4



    5



    6



    什sql?
    SQL(Structured Query Language)

    3简单查询
    语法格式:
    SELECT*|字段 FROM 表名称
    范例:查询全部
    SELECT*FROM emp

    范例:查询雇员编号姓名工作
    SELECT empnoenamejob FROM emp
    范例:查询时候列起名
    SELECT empno 编号ename 姓名job 工作 FROM emp
    范例:查询工作(DISTINCT)
    SELECT DISTINCT job FROM emp
    范例:求查询出雇员编号姓名求格式:(||’’)
    编号:7369雇员姓名:SMITH工作室:CLERK
    SELECT 编号:’||empno||雇员姓名:’||ename||工作室:’||job
    FROM emp
    范例:运四运算求出雇员姓名年薪
    SELECT enamesal*12 年薪 FROM emp

    4 限定查询

    语法格式:

    范例:查询出工资1500雇员信息
    SELECT * FROM emp WHERE sal >1500
    范例:查询没奖金雇员
    SELECT * FROM emp WHERE comm IS NULL
    查询奖金雇员?
    SELECT * FROM emp WHERE comm IS NOT NULL
    范例:1求查出基工资1500时领取奖金雇员
    2commNULL两条件需时满足AND
    SELECT*FROM emp WHERE sal>1500 AND comm IS NOT NULL
    范例:查出基工资1500者领取奖金雇员信息(者OR链接)
    SELECT*FROM emp WHERE sal>1500 OR comm IS NOT NULL
    范例:求查出基工资1500时领取奖金雇员信息
    SELECT*FROM emp WHERE sal<1500 AND comm IS NULL
    范例:基工资15003000全部雇员信息(BETWEENAND)
    SELECT*FROM emp WHERE sal>1500 AND sal<3000
    语法格式
    SELECT*FROM 表名称 WHERE 字段 BETWEEN 值 AND 值


    述办法稍微麻烦BETWEENAND解决
    SELECT*FROM emp WHERE sal BETWEEN 1500 AND 3000
    述结果表明betweenand包含值

    范例:查询出1981年雇佣全部雇员信息
    SELECT*FROM emp WHERE hiredate BETWEEN 11 月 81’AND 3112月 81’
    范例:查出姓名Smith雇员信息
    SELECT*FROM emp WHERE ename smith’
    结:SQL语法区分写数容严格区分写

    范例:查询雇员编号736974997521(IN)
    SELECT*FROM emp WHERE empno7369 OR empno7499 OR empno7521
    述麻烦IN解决
    SELECT*FROM emp WHERE empno IN(736974997521)
    范例:查询ALLENKING雇员信息
    果指定查询范围中指定额外容影响程序运行
    SELECT*FROM emp WHERE ename IN(ALLEN’’KING’’dddddff’)

    LIKE生活中like查询
    通配符:
    :匹配意长度容
    _:匹配长度容
    范例:查询出雇员姓名中第二字母包含M雇员信息
    果没关键字会样?
    SELECT*FROM emp WHERE ename LIKE _M’
    范例:查询出雇佣1981雇员信息
    SELECT*FROM emp WHERE hirdate LIKE 81’
    范例:查询出工资中包含6雇员信息
    SELECT*FROM emp WHERE sal LIKE 6’
    SQL语句中判断运算符?
    > < <>

    5 结果进行排序(ORDER BY字句)
    语法格式:
    SELECT {DISTINCT}*|字段1字段2
    FROM 表名
    WHERE 条件(s) AND|OR条件(s)

    ORDER BY 字段名称 ASC|DESC
    范例:求工资低高排序
    SELECT*FROM emp ORDER BY sal
    SELECT*FORM emp ORDER BY sal ASC
    结:默认排序方式升序排列
    范例:求工资高底排列
    SELECT*FROM emp ORDER BY sal DESC
    范例:求查询出10部门雇员信息查询信息工资高低排序果工资相等古铜日期早晚排序
    *解析
    SELECT*
    FROM emp
    WHERE deptno10
    ORDER BY sal DESChirdate ASC


    6 单行函数
    数库系统中数库间区函数支持函数完成系列操作功
    61字符函数
    介绍:
    范例:写字母变写字母(UPPER)
    SELCET UPPER(hello’)FROM dual
    范例:查询时没考虑名字写保证查询?
    SELECT*FORM emp WHERE enameUPPER(simth’)

    范例:写字母变成写字母(LOWER)
    SELECT LOWER(HELLO’)FROM dual
    范例:单词第字母编程写INITCAP
    SELECT INITCAP(HELLO’)FROM dual

    范例:雇员表中雇员姓名变开头字母写
    SELECT INITCAP(ename)FROM emp
    范例:字符串||连接外CONCAT()函数进行连接操作
    SELECT CONCAT(enamesal)FROM emp
    CONCAT连接字符串没||
    范例:字符串进行操作进行字符串截取求出长度进行指定容换
    *字符串截取:substr()
    *字符串长度 :length()
    *容换:replace()
    SELECT SUBSTR(hello’03)字符串截取
    replace(hello’’i’’o’)容换
    Length(hello)字符串长度
    提示:substr中01开始效果样

    范例:求显示雇员姓名姓名三字符
    SELECT enamesubstr(enamelength(name)23)FROM emp

    62数值函数
    包含:
    *四舍五入:ROUND()
    *截取数位:TRUNC()
    *取模(取余):MOD()
    范例:四舍五入操作
    SELECT RPUND(31415926)FROM dual
    范例:保留两位数
    SELECT ROUND(314159262)FROM dual
    直接整数进行四舍五入进位
    SELECT ROUND(12160982)FROM dual
    范例:验证TRUNC()函数
    SELECT TRUNC(1216098)FROM dual
    结:发现round具四舍五入功直接舍

    范例:通TRUNC()指定数点保留位数
    SELECT TRUNC(12160981)FROM dual
    范例:负数表示位数
    SELECT TRUNC(12160982)FROM dual
    范例:MOD()函数进行取余操作
    SELECT MOD(12160981)FROM dual


    63日期函数
    Oracle中提供日期操作相关函数包括加减日期等等日企进行加减时候规律:
    *日期数字日期
    *日期+数字日期
    *日期日期数字(天数)
    范例:显示10部门雇员进入公司星期数
    *分析:果求出进入公司天数必须知道现时间
    SELECT SYSDATE FROM dual
    *求出星期数:前日期雇日期天数7星期数
    SELECT (SYSDATEHIREDATE)7 FROMemp
    Oracle中提供日期函数支持:
    *MONTHS_BETWEEN()求定日期范围月数
    *ADD_MONTHS()指定日期加制定月数求出日期
    *NEXT_DAY()星期天日期
    *LAST_DAY()求定日期改约天日期
    范例:验证MONTHS_BETWEEN()员工已雇佣少月
    SELECT MONTHS_BETWEEN(SYSDATEhiredate) FROM emp
    陈旭查询中包含数点课ROUND()进行四舍五入操作
    SELECT ROUND(MONTHS_BETWEEN(SYSDATEhiredate)) FROM emp
    范例:验证ADD_MONTHS()函数
    SELECT ADD_MONTHS(SYSDAE3) FROM emp
    范例:验证NEXT_DAY()函数(周)
    *函数求出定日期数
    SELECT NEXT_DAY(SYSDATE’星期五’) FROM dual
    范例:验证LAST_DAY()函数
    *求出月天
    SELECT LAST_DAY(SYSDATE) FROM dual
    64转换函数
    转换函数种:
    *TO_CHAR()转换成字符串
    *TO_NUMBER()转换成数字
    *TO_DATE转换成日期
    范例:查询雇员编号姓名雇日期
    SELECT empnoenamehirdate FROM emp
    TO_CHAR()现求年月日进行分开时TO_CHAR()函数进行拆分拆分时候必须知道拆分通配符:
    *年:yyyy:表示4位份值
    *月:mm:表示2位月份
    *日:dd:表示2位日期值
    SELECT empnoenameTO_CHAR(hiredate’YYYY’)年
    TO_CHAR(hiredate’MM’)月
    TO_CHAR(hirdate’DD’)日
    FROM emp
    to_char()函数进行日期显示转换功
    *oracle中默认日期格式:235月87
    *中国喜欢日期格式:1999222
    SELECT TO_CHAR(hiredate’YYYYMMDD’)FROM emp
    SELECT TO_CHAR(hiredate’’FMYYYYMMDD’)FROM emp
    运行结果发现(fm):日期值19前面会0补齐fm
    to_char()函数日企数字

    范例:查询全部雇员编号姓名工资数字钟加入符号分割太长数字
    *通配符:9表示数字
    SELECT empnoenameTO_CHAR(sal’9999999’)FROM emp

    果时希数字明确表示出取余两种符号:
    *:表示美元符号
    *L表示语言钱符号
    SELECT empnoenameTO_CHAR(sal’9999999’)FROM emp
    SELECT empnoenameTO_CHAR(sal’L9999999’)FROM emp
    TO_NUMBER()字符串变数字种函数
    SELECT TO_NUMBER(99’)+1 FROM emp
    吧字符串变数字进行数字加法操作

    TO_DATE():函数讲字符串变DATE类型数
    范例:2016216字符串现变DATE类型
    SELECT TO_DATE(2016216’’YYYYMMDD’) FROM dual


    65通函数
    介绍种:
    NVL()NULL
    DECODE()相SWITCH
    范例:求求出雇员年薪
    求出年薪时候应该加奖金格式(sal+comm)*12
    SELECT (sal+comm)*12 FORM emp
    NVLcommNULL时NULL加数NULLNVL吧NUMBER类型NULL转换指定数字
    SELLECT NVL(comm10)FROM emp
    DECODE函数DECODE()类似SWITCH CASE CASE 语句
    语法:
    DECODE(值值1容1值2容2’默认值’)
    范例:验证DECODE()函数
    SELECT DECODE(31’AAA’2’BBBBB’3’CCCCC’)FROM dual
    运行结果程序容景行更改显示结果变
    直接emp表函数例:现求:
    *雇员工作
    CLERK业务员
    SALESMAN售货员
    PRESIDENT总裁
    MANAGER理
    ANALYST:分析员
    范例:求查询出雇员编号姓名雇佣日期工作工作换成信息
    SELECT DECODE(job’clerk’’业务员’’SALESMAN’’售货员’’业’)FROM emp

    8练
    1查询部门30 雇员信息
    2列出业务员(CLERK)姓名编号部门编号
    3找出奖金高薪金员工
    4找出奖金高薪金40员工
    5找出部门10中理(MANAGER)部门20中业务员(CLERK)详细资料
    6找出部门10中理(MANAGER)部门20中业务员(CLERK)理办事员气薪金等2000员工详细资料
    7找出收取佣金员工工作
    8找出收取佣金收取佣金低100员工
    9找出月倒数第3天受雇员工
    10找出早30年前受雇员工
    11首字母写方式显示员工姓名

    12显示正5字符员工姓名
    13显示带R员工姓名
    14显示员工姓名前三字符
    15显示员工姓名a换A
    16显示满30年服务年限员工姓名受雇日期
    17显示员工详细资料姓名排序
    18显示员工姓名受雇日期根服务年限老员工排前面
    19显示员工姓名工资奖金工作降序排序工作相薪金升序排序
    20显示员工姓名加入公司年份月份受雇日期月排序月份相早年份员工排前面
    21显示月30天情况员工日薪金忽略余数
    22找出(年份)2月首批员工
    23员工显示器加入公司天数
    24显示名字字段位置包含A员工姓名
    25年月日方式显示员工服务年限
    第二讲:
    预讲知识点:
    1表查询SQL:1999语法表查询支持
    2分组统计统计函数
    3字查询结合表查询分组统计做复杂查询
    4数库更新操作
    5食物处理数库死锁
    1 表查询
    11表查询基语法
    前查询时张表果张表称表查询表查询语法:
    SELECT{DISTINCT}*|查询列 1名1查询 2名2
    FROM 表名称 1 名1表名称2 名2
    {WHERE 条件(s)}

    {ORDER BY 排序字段 ASC|DESC排序字段ASC|DESC}
    范例:面表查询事查询empdept表
    SELECT*FROM emp dept
    发现:出现56条数emp表14条数dept表4条数
    56条记录emp表14条记录*dept表4条记录果表数越name笛卡尔积会越开发中简易表查询
    想掉笛卡尔积必须字段进行关联操作
    emp表中存deptno字段dept表中存deptno字段发现emp表中deptno取值范围dept表deptno’规定范围中
    Emp中deptnodept中deptno属关联字段
    表查询中加入where语句消笛卡尔积

    范例:修改前查询操作(关联操作)
    SELECT*FROM empdept WHERE empdeptnodeptdeptno
    SELECT*FROM emp edept d WHERE edeptnoddeptno
    果表名长话表起表名

    范例:求查询出雇员编号雇员姓名部门编号部门名称部门位置
    SELECT eempnoeenameddeptnoddnamedloc
    FROM emp edept d
    WHERE edeptnoddeptno
    范例:求查询出雇员姓名工资雇员直接级领导姓名
    SELECT eenameejobmename
    FROM emp eemp m
    WHERE emgrmempno

    emp表中mgr表示领导编号果现想查询雇员级领导必须emp表身相关联

    范例:体基础进步扩展时需领导部门列出
    SELECT eenameejobmenameddname
    FROM emp eemp mdept d
    WHERE emgrmempno AND ddeptnoedeptno
    思考:
    现求查询出雇员姓名工资部门名称工资公司等级(salgrade)领导姓名工资公司等级
    *先确定工资公司等级
    *判断查询张表查询条件查询字段
    SELECT eenameesalddnamesgrademenameggrade
    FROM emp edept dsalgrade semp msalgrade g
    WHERE edeptnoddeptno AND esal BETWEEN slosal AND shisal
    AND NVL(emgreempno)mempno AND msal BETWEEN glosal AND ghisal

    时完成第步:雇员姓名工资部门名称工资公司等级(salgrade)
    分解:领导姓名工资公司等级

    12 左右连接(重点)
    现dept表中存四条数:
    empdept表关联查询查询字段:雇员编号姓名部门编号名称址
    SELECT eempnoeenameddeptnoddnamedloc
    FROM emp edept d
    WHERE edeptnoedeptno
    发现:查询14行数中emp表数全部查询出发现dept表中编号40部门没查询出原emp表中没40部门员工
    SELECT eempnoeenameddeptnoddnamedloc
    FROM emp edept d
    WHERE edeptno(+)ddeptno
    发现时40部门应出现时右链接开发较
    *(+)左边表示右连接
    *(+)右边表示左连接

    范例:查询雇员编号姓名领导编号姓名
    SELECT eempnoeenamemempnomename
    FROM emp eemp m
    WHERE emgrmempno(+)
    13 SQL1999语法SQL支持(解)
    SQL语法格式
    SELECT table 1columntable 2column
    FROM table1[CROSS JOIN table2]|
    [NATURAL JOIN table2]|
    [JOIN table2 USING (column_name)]
    [JOIN table2 ON(table1column_nametable2column_name)]
    [LEFT|RIGHT|FULL OUTER JOIN table2 ON(table1column_nametable2column_name)]
    范例:交叉连接(CROSS JOIN)产生笛卡尔积
    SELECT*FROM emp CROSS JOIN dept
    查询出56行记录已产生笛卡尔积

    范例:然连接(NATURAL JOIN):动进行关联字段匹配
    SELECT*FORM emp NATURAL JOIN dept
    范例:USING居:直接关联操作系列
    SELECT*FROM emp JOIN dept USING(deptno)
    范例:ON字句:户子字句编写连接条件
    SELECT*FROM emp e JOIN dept d ON(edeptnoddeptno)
    范例:做链接(左外连接)链接(右外连接):LEFT JOINRIGHT JOIN
    SELECT*FROM emp e RIGHT OUTER JOIN dept d
    ON(deptnoddeptno)
    2 组函数分组统计(重点)
    分组:例吧男生分组 女生分组
    果想求出组均身高均年龄等需分组函数
    21 组函数
    SQL 中常组函数:
    *COUNT()求出全部记录数
    *MAX():求出组中值
    *MIN():求出值
    *AVG():求出均值
    *SUM():求
    范例:COUNT()函数
    SELECT COUNT(*)FROM emp
    范例:MAX()MIN()般数字应
    *求出雇员中高工资
    SELECT MAX(sal)FROM emp
    *求出雇员中低工资
    SELECT MIN (sal)FROM emp
    范例:求均值
    *求出20部门中总工资(sum)
    SELECT SUM(sal)FROM emp WHERE deptno20
    *求出员工均工资(avg)
    SELECT AVG(sal)FROM emp

    22分组统计
    想分组统计首先应该固定语法GROUP BY进行分组时SQL语法格式:
    SELECT{DISTINCT}*|查询列1 名1查询2 名2
    FROM 表名1 名1表名称2 名2
    {WHERE 条件(s)}
    {GROUP BY分组条件}
    {ORDER BY排序字段 ASC|DESC排序字段ASC|DESC}
    范例:求出部门雇员数量肯定应该部门编号(deptno)划分
    SELECT deptnoCOUNT(emptno)
    FROM emp
    GROUP BY deptno
    范例:求出部门部门编号均工资
    SELECT deptnoAVG(sal)
    FROM emp
    GROUP BY deptno
    注意点:观察代码
    SELECT deptnoempnoCOUNT(empno)

    FROM emp
    Group by deptno
    代码正确执行原:
    *程序中存GROUP BY制定分组条件样条件起查询出
    *果适分组话单独分组函数
    *非分组字段查询

    范例:部门分组显示部门名称部门员工数
    SELECT ddnameCOUNT(eempno)
    FROM emp edept d
    WHERE edeptnoddeptno
    GROUP BY ddname
    范例:求显示出均工资2000部门编号均工资
    *条件:AVG(sal)>2000
    SELECT deptnoAVG(sal)
    FROM emp
    WHERE AVG(sal)>2000
    GROUP BY deptno
    代码报错原分组函数分组中允许WHERE中出现果现假设制定分组条件通第二种条件指令:HAVING时SQL语法格式:
    SELECT{DISTINCT}*|查询1 名1查询2 名2
    FROM表名称1 名1表名称2 名2
    {WHERE 条件(s)}
    {GROUP BY 分组条件{HAVING 分组条件}}
    {ORDER BY 排序字段ASC|DESC排序字段ASC|DESC}

    范例:HAVING 完成操作
    SELECT deptnoAVG(sal)
    FROM emp
    GROUP BY deptno HAVING AVG(sal)>2000
    范例:显示非销售员工作名称事统工作雇员工资综合满足事意工作雇员月工资合计55000输出结果月工资合计升序排列:
    1显示全部非销售员:job<>’SALESMAN’
    2工作分组事求出工资综合
    SELECT jobSUM(sal)
    FROM emp
    WHERE job<>’SALSMAN’
    GROUP BY job HAVING SUM(sal)>5000
    ORDER BY SUM(sal)ASC
    分组简单原:
    *列存重复容菜考虑分组
    注意:
    *分组函数嵌套组函数嵌套时候出现分组条件查询语句
    范例:求出均高部门工资
    错误代码:

    23 子查询
    子查询查询部包括外查询次查询称子查询子查询格式:
    SELECT{DISTINCT}*|查询列1 名1查询列2 名2
    FROM 表名称1 名1表名称2 名 2
    (SELECT {DISTINCT}*|查询列1 名1查询列2 名2
    FROM 表名称1 名1表名称2 名 2
    {WHERE 条件(s)}
    {GROUP BY 分组条件 {HAVING 分组条件}}
    {ORDER BY 排序字段ASC|DESC排序字段ASC|DESC}
    )名
    {WHERE 条件(s)
    (SELECT {DISTINCT}*|查询列1 名1查询列2 名2
    FROM 表名称1 名1表名称2 名 2
    {WHERE 条件(s)}
    {GROUP BY 分组条件 {HAVING 分组条件}}
    {ORDER BY 排序字段ASC|DESC排序字段ASC|DESC}


    }
    {GROUP BY分组条件{HAVING 分组条件}}
    {ORDER BY 排序字段 ASC|DESC排序字段ASC|DESC}
    范例:求查询出7654工资搞全部雇员信息
    *首先知道7654雇员工资少
    *结果作续查询工资sal表示符合条件
    SELECT*FROM emp where sal>(select sal from emp where empno7654)
    子查询必须()中编写

    子查询操作中分三类:
    *单列子查询:返回结果列单列出现率高
    *单行子查询:返回列条完整记录
    *行子查询:返回条记录
    范例:求查询出工资7654高时7788事相工作全部雇员信息
    *查询出7654工资
    *查询出7788工资
    *综合两条件查询
    Select*from emp
    Where sal>(select sal from emp where empno7654) and job(select job from emp where empno7788)
    范例:求查询出工资低雇员详细信息
    *低工资
    *低工资条件查询低工资相等
    Select*from emp where sal(select min(sal) from emp)

    思考题:
    求查询出:部门名称部门员工数部门局工资部门低收入雇员姓名
    解析:
    程序需关联两张表
    select rsdnrsctrsageename 低
    from emp e
    (select ddname dncount(eempno) ctavg(esal) agmin(esal) mn
    from emp edept d
    where edeptnoddeptno
    group by ddname)rs
    where esalrsmn
    问题分三步走:
    1果想求出部门员工数量评价工资肯定分组统计deptnoi进行分组
    2果想查出部门名称需dept表进行关联
    3求出低收入雇员姓名
    Select ddnameCOUNT(eempno)
    From emp edept d
    Where edeptnoddeptno
    Group by ddname
    果时部门中时存两工资低雇员程序会出现错误
    子查询中存三种查询操作符号:
    *IN
    *ANY
    *ALL
    IN操作符制定查询范围
    范例:求出部门低工资雇员信息
    *部门低工资返回值肯定锁时IN制定操作
    范围
    Select * from emp e
    Where sal IN (select min(sal)from emp group by deptno)
    ANY操作:完成题
    *ANY效果等IN
    Select * from emp e
    Where sal ANY (select min(sal)from emp group by deptno)
    *>ANY值
    *>ANY值
    ALL操作:
    *>值
    *>值
    子查询讲进行列子查询子查询中时返回喝查询列
    Select *
    From emp
    Where(salNVL(comm1))in(select salNVL(comm1)from emp where deptno20)
    3 数库更新操作
    数库操作分两种:
    *数库查询操作:select
    *数库更新操作:insert(增加)update(修改更新)delectable(删)
    时保证原始emp表信息进行增加修改删操作前先表赋值份:
    Create table test as(select*from emp)
    *语句讲emp表机结构数完整复制出

    31添加数
    添加数语法:
    Insert into 表名称[(字段名称1字段名称2)]values(值1值2)
    范例:test表中添加条新纪录
    *标准做法插入条数(推荐)
    Insert into test(empnoenamejobmgrhiredatesalcommdeptno)values(1111’老王’查水表7369sysdate1000null20)
    创建完成面进行查询操作观察记录否已myemp表中:
    必须次提醒:
    *数字加’字符串必须加
    简略写法(推荐)现添加字段容处写字段名称值数量序数表中致
    Insert into test values(1111’老王’查水表7369sysdate1000null20)
    范例:现求插入新雇员雇员展示没领导没奖金
    *第种做法:明确写出插入字段
    Insert into test(empnoenamejobhiredatesaldeptno) values(444’哦哦’’查水表’sysdate100020)
    查询结果发现新插入数里面没领导没奖金
    *第二种做法:果插入没明确写出字段名称话null表示具体容
    Insert into test(empnoenamejobmgrhirdatesalcommdeptno)values(5555’老王’’查水表’nullsysdate1000null20)
    前插入数时候日期格式表中固定种格式果现样日期20160116日期格式name现八折中格式日期插入进呢?
    Insert into test(empnoenamejobmgrhiredatesalcommdeptno)values(6666老王’’查水表’7369’16月16’1000null20)
    Insert into test(empnoenamejobmgrhiredatesalcommdeptno)values(6666老王’’查水表’7369TO_DATE(’20161010’’yyyymmdd’)1000null20)
    32修改数
    SQL语法中UPDATE语句完成数修改功语句语法:
    修改全部:UPDATE 表名称 SET 修改字段 新值修改字段
    般开发角度讲修改操作般加入修改条件
    范例:现test表中雇员佣金修改1000修改全部
    Update test set comm1000
    范例:编号3333雇员工资修改5000指定更新条件
    Update test set sal5000 where empno3333
    范例:编号3333雇员领导编号取消
    Update set mgrbull where empno3333
    注意:工作中更新时需写更新条件拒绝批量更新
    范例:736988997788领导奖金取消
    Update test set mgrnullcommnull where empno in(736988997788)
    33 删数
    SQL语句中delete命令删记录语法格式:
    删全部:delete from表名称
    删局部:delete from表名称where删条件
    范例:删编号3333雇员信息
    Delete from test where empno3333
    范例:删编号333344445555雇员信息
    Delete from test where empno in(333344445555)

    范例:删全部领取奖金雇员
    Delete from test where comm is nto null
    范例:删表全部容
    *删时知道删条件表示删表中全部记录
    Delete from test
    删全部做法开发中建议
    4 事物处理
    范例:创建值包含雇员10时表
    Create table emp10 as select*from emp where deptno10
    删条数次查询前窗口发现数已删
    开sqlplus窗口查询发现数然存没删oracle 中事物处理概念
    事务处理:谓事务处理保证数操作完整性操作时成功时失败
    Oracle中连接数库窗口(sqlplus)连接实际会数库连接建立session:连接数库户表示创建session
    session数库进行修改会立刻反应数库真实数语序回滚session提交操作数库真正作出修改
    数库操作中提供两命令完成事务处理:
    *提交事务:commit
    *事务回滚:rollback
    果事务已提交法回滚
    Oracle中关事务处理会存种死锁概念
    session果更新数库中记录session法立更新等方提交允许更新

    1列出少员工部门
    2列出薪金SMITH员工
    3列出员工姓名直接级姓名
    4累出受雇日期早直接级员工编号姓名部门名称
    5列出部门名称部门员工信息时列出没员工部门
    6列出CLERK(办事员)姓名部门名称部门数
    7列出低工资1500种工作事工作全部雇员数
    8列出部门SALES(销售部)工作员工姓名假设知道销售部部门编号
    9列出工资高公司均工资员工部门级领导公司工资等级
    10列出SCOTT事相工作员工部门名称
    11列出工资等部门30中员工工资员工姓名工资
    12工资高部门30工作员工列出员工姓名工资部门名称
    13列出部门工作员工数量均工资均服务期限
    14列出员工姓名部门名称工资
    15列出部门详细信息部门数
    16列出种工作低工资事工作雇员姓名
    17列出部门MANAGER(理)低工资
    18列出员工年工资年薪低高排序
    19查出某员工级求出中工资超3000
    20求出部门名称中带’S’ 字符部门员工工资合计部门数
    21职日期超30年加薪10



    第三讲:
    课程知识点梳理:
    1 表查询:张表进行查询称表查询表查询时候表制定名方式简化列编写表查询中会产生笛卡尔积两张表总数相结果果想消笛卡尔积需通关联条件
    2 分组统计统计函数:
    *统计函数:COUNT()AVG()SUM()MAX()MIN()
    *统计函数必须出现分组统计中谓分组指列中存重复容GROUP BY方式进行分组统计
    *果加入分组条件编写HAVING子句统计函数作条件haunted职HAVING中出现WHERE中出现
    *分组时候定注意查询时候够出现分组函数分组条件
    *分组函数运行嵌套嵌套查询字段包括分组字段
    3 子查询
    *查询中继续包含外查询称子查询
    *子查询出现意位置:SELECT FROM WHERE
    *子查询结合分组统计表关联完成复杂查询功
    4 数库更新操作
    *复制表:CREATE TABLE 表名称 AS(子查询)
    *数增加:INSERT INTO表名称(字段)VALUES(值)
    +字符串加’数字加
    +果插入日期时候固定日期格式编写TO_DATE函数进行转换指定格式yyyymmdd
    +果表中列增加话INSERT语句时候免写字段
    *数修改:UPDATE表名称SET字段值WHERE条件
    +更新新数时候般加条件果加条件表示更新全部
    *数删:DELETE FROM表名称WHERE删条件
    5 事务处理
    *操作全部成功全部失败
    *Oracle中连接数库表表示sessionsession修改会立刻反映数库真实容二十等户提交户通commit提交者rollback进行回滚操作
    *Oracle中会出现死锁情况回想等方提交
    2 创建理表
    Oracle中前empdeptsalgrade系统建表nameSQL语法中样支持表创建语句想创建表首先应该解Oracle中常集中数类型
    21常数类型
    常数类型前emp表中已出现三种:NUMBER\VARCHAR\DATE
    No
    数类型
    描述
    1
    VARCHARVARCHAR2
    表示字符串长度限制255
    2
    NUMBER
    NUMBER(n):表示整数数字长度nINT
    NUMBER(mn):表示数数字数长度n整数长度mnFLOAT
    3
    DATE
    表示日期类型日期标准日期格式进进行存放
    4
    CLOB
    象表示文数般存放4G文
    5
    BLOB
    象表示二进制数存放4G例:存放电影歌曲图片
    22标建立
    标建立标准语法进行表建立会指定约束name处先出表建立简单语法
    表建立语法:
    CREATE TABLE表名称(

    字段名称1 字段类型DEFAULT默认值
    字段名称2 字段类型DEFAULT默认值

    字段名称n 字段类型DEFAULT默认值

    前学赋值表语法:
    CREATE TABLE表名称AS(子查询)
    *表结构表数起复制:SELECT*FROM emp
    *复制表结构复制表容:加入成立条件条件例12
    范例:复制表结构
    CREATE TABLE testEmp AS(SELECT*FROM emp WHERE 12)
    现假设创建张表person表表中字段类型等示:
    No
    字段名称
    字段类型
    描述
    1
    pid
    VARCHAR2(18)
    表示员编号
    2
    name
    VARCHAR2(200)
    表示员姓名
    3
    age
    NUMBER(3)
    表示员年龄
    4
    birthday
    DATE
    表示员生日
    5
    sex
    VARCHAR2(3)
    表示员性默认男
    范例:创建表
    CREATE TABLE person(
    Pid varchar2(18)
    Name varchar2(200)

    Age number(3)
    Birthday date
    Sex varchar(3) DEFAULT’男’

    范例:想表中增加数
    INSERT INTO person(pidnameagebirthday)values(111张三’18sysdate)
    果现希表中增加address(varchar2(200))字段表先删重建
    23表删
    表删语法:
    DROP TABLE 表名称
    范例:删person表
    DROP TABLE person
    然次创建新表添加进需字段
    果现假设表中已存量记录删话理想做法SQL中提供修改表结构命令增加列修改列
    24表修改(解)
    SQL语法操作中提供ALTER命令通ALTER命令增加新列
    ALTER TABLE表名称 ADD(字段名称 字段类型(长度)DEFAULT 值)
    范例:早Person表增加address列
    ALTER TABLE person ADD(address VARCHAR2(50))
    修改表结构语法:
    ALTER TABLE 表名称MODIFY(字段名称 字段类型(长度)DEFAULT(值)
    修改表结构时候果数库中应字段里长数法表长度缩例:现name字段中存长度20字符字母原name容纳20容时字段长度修改10肯定法实现

    范例修改person中name字段name长度修改50默认值名氏
    ALTER TABLE person MODIFY(name varchar2(50)
    表中插入数果插入bane值name默认值
    开发中般少修改表结构里点IBM DB2数库中没ALTER TABLE 指令建表时定考虑位
    25表重命名(解)
    Orcale中提供RENAME命令表重命名语句Oracle中
    语法格式:
    RENAME表名称TO新名称
    范例:person表重新命名tperson
    REBANE person TO tperson
    26截断表(解)
    前讲果现讲person表中条数DELETE语句删通rollback进行回滚果现假设想清空张表数时需回滚立刻释放资源需阶截断表(TRUNCATE)语法
    TRUNCATE TABLE 表名称
    范例:截断tperson表
    TRUNCATE TABLE tperson
    27思考题
    现张国家表里面国家名称字段国家中国美国巴西荷兰现求通查询实现战功
    分析:运笛卡尔积战
    1创建表
    Create table country(countryName varchar2(20))
    2插入数
    Insert into country(countryName)values(中国’)
    3查询
    Select*from country ccountry o where ccountry<>ocouuntry
    3约束
    31约束分类(重点)
    实际中约束分五种:
    l 键约束:键表示唯表示身空
    例:身份证编号唯重复空
    l 唯约束:表中值运行建立键约束列果希出现重复值话唯约束
    l 检查约束:检查列容否合法
    例:年龄0150
    例:性男女
    l 非空约束:姓名样字段里面空
    l 外键约束:两张表中进行约束操作

    32 键约束(primary key)(重点)
    键般id身已默认容空键约束建立表时候指定:
    范例:建立person表pid增加键约束
    create table person(
    pid varchar2(18) primary key
    name varchar2(200)
    age number(3)
    birthday date

    sex varchar2(3) default '男'
    )
    范例:插入数中插入键重复代码插入两次
    insert into person(pidnameagebirthdaysex)
    values('111''张三'28to_date('19790213''yyyymmdd')'女')
    insert into person(pidnameagebirthdaysex)
    values('111''李四'30to_date('19770516''yyyymmdd')'男')
    错误信息

    错误信息出编号形式实际编号表示约束名称
    范例:数键空

    错误信息明确指出scott户person表pid字段允许空
    约束属系统动分配约束名称通constraint制定约束名称
    范例:person中pid指定名称

    Person_pid_pk:表示前建立数库表时候指定约束名称
    23 非空约束(not null)(重点)
    非空约束表示字段容空:插入数时候必须插入容
    drop table person
    create table person(
    pid varchar2(18)
    name varchar2(200) not null
    age number(3) not null
    birthday date
    sex varchar2(3) default '男'
    constraint person_pid_pk primary key(pid)
    )
    范例:插入空数

    24 唯约束(unique)(重点)
    表示字段中容唯列允许重复
    假设:现姓名允许出现重名情况

    drop table person
    create table person(
    pid varchar2(18)
    name varchar2(200) unique
    age number(3)
    birthday date
    sex varchar2(3) default '男'
    constraint person_pid_pk primary key(pid)
    )
    第二
    drop table person
    create table person(
    pid varchar2(18)
    name varchar2(200)

    age number(3)
    birthday date
    sex varchar2(3) default '男'
    constraint person_pid_pk primary key(pid)
    constraint person_name_uk unique(name)
    )
    范例:表中插入数数插入两条

    25 检查约束(check)(重点)
    检查判断列中插入容否合法
    范例:年龄取值范围性取值范围
    drop table person
    create table person(
    pid varchar2(18)
    name varchar2(200) not null
    age number(3)not null check(age between 0 and 150)
    birthday date
    sex varchar2(3) default '男'check(sex in('男''女''中'))
    constraint person_pid_pk primary key(pid)
    constraint person_name_uk unique(name)
    )

    范例:插入错误年龄性

    两条错误信息中约束错误采动命名形式check中手工命名形式:
    drop table person
    create table person(
    pid varchar2(18)
    name varchar2(200) not null
    age number(3)not null
    birthday date
    sex varchar2(3) default '男'
    constraint person_pid_pk primary key(pid)
    constraint person_name_uk unique(name)
    constraint person_age_ck check(age between 0 and 150)
    constraint person_sex_ck check(sex in('男''女''中'))
    )
    次插入错误数:

    26 外键约束(foreign key)(重点)
    前讲全部约束针张表约束外键约束针两张表约束
    什需外键约束
    范例:求完成程序书属
    l 书身应该张表书中必然字段表示属
    drop table person
    create table person(
    pid varchar2(18)
    name varchar2(200) not null
    age number(3)not null
    birthday date
    sex varchar2(3) default '男'
    constraint person_pid_pk primary key(pid)
    constraint person_name_uk unique(name)
    constraint person_age_ck check(age between 0 and 150)
    constraint person_sex_ck check(sex in('男''女''中'))
    )

    drop table book
    create table book(
    bid number primary key not null
    bname varchar2(30)
    bprice number(52)
    pid varchar2(18)
    constraint person_book_pid_fk foreign key(pid) references person(pid)
    )
    时执行数插入操作

    时保证两张表数完整性会出现找应数情况
    外键关联时候注意点:
    l 子表中设置外键父表中必须键
    l 删时应该先删子表删
    DROP TABLE person
    DROP TABLE book

    说明现根法删父表应存关联关系
    DROP TABLE book
    DROP TABLE person
    强制性删
    Drop table person cascade constraint
    约束直接删种做法般
    回顾:
    前学emp表dept表实际两张表外键关联
    范例:现想emp表中增加50部门部门编号
    l dept表中身存50部门编号

    时提示没找父项关键字法插入成功
    外键关联中级联删情况
    l 现数库中数例
    l 先person表book表分插入数
    insert into person(pidnameagebirthdaysex)
    values('111''1111'11to_date('19710213''yyyymmdd')'男')
    insert into book(bidbnamebpricepid)values(4321'九阳神功'40111)
    删表中编号111数时员现book表中存书

    子表中存项关联法删时果先完成删操作话必须book表中应数删掉
    果希表中数删时动删掉中应子表记录级联删操作
    CREATE TABLE book(
    bid NUMBER PRIMARY KEY NOT NULL
    bname VARCHAR(30)
    bprice NUMBER(52)
    pid VARCHAR2(18)
    CONSTRAINT person_book_pid_fk FOREIGN KEY(pid) REFERENCES person(pid) ON DELETE CASCADE
    )
    37修改约束
    语法
    ALTER TABLE 表名称 ADD CONSTRAINT 约束名称 约束类型(约束字段)
    关约束类型命名定统
    l Primary key:键字段_pk
    l Unique字段_uk
    l Check:字段_ck
    l Foreign key父字段_子字段_fk
    添加该约束

    增加外键约束
    ALTER TABLE book ADD CONSTRAINT person_book_pid_fk FOREIGN KEY(pid) REFERENCES person(pid) ON DELETE CASCADE

    删约束条件
    ALTER TABLE 表名称 DROP CONSTRAINT 约束名称
    范例:删person表中agesex约束
    Alter table person drop constraint person_name_uk
    Alter table person drop constraint person_age_ck

    4ROWNUM
    RUWNUM表示行号实际列列伪列列张表中出现
    例1:查询雇员表加入rownum
    SELECT ROWNUMenameempno FROM emp
    显示前五条记录
    SELECT ROWNUM enameempno FROM emp WHERE ROWNUM<5
    查询出中间510条记录
    SELECT *
    FROM (SELECT ROWNUM rempnojobsalhiredate FROM emp WHERE ROWNUM<10) temp WHERE tempr>5
    5 集合操作(重点)
    Oracle中提供三种类型集合操作(UNION)交(INTERSECT)差(MINUS)
    *UNION:查询结果组合查询结果中没重复容
    *UNION ALL查询结果组合刀查询中包含重复值
    *INTERSECT返回查询结果中相部分
    *MINUS:返回两查询结果差集
    更观察查询结果面复制emp表20部门雇员信息取出
    CREATE TABLE emp20 AS SELECT*FROM emp WHERE deptno20
    51验证UNION
    返回两集合容包括重复容:
    Select*from emp20
    Union
    Select*from emp

    52验证UNION ALL
    返回两查询重复容
    SELECT*FROM emp
    UNION ALL
    SELECT*FROM emp20

    53验证INTERSECT
    两张表中20部门容重复返回20部门数
    SELECT*FROM emp
    INSERSECT
    SELECT*FROM emp20

    54验证MINUS
    两张表中重复容查询出
    SELECT*FROM emp
    MINUS

    SELECT*FROM emp20
    1 知识点
    11章容知识点回顾
    1 表建立:CREATE TABLE表名称
    *Oracle中数类型:
    +VARCHAR2(长度):表示字符串长度限制
    +NUMBER()表示数字表示整数数
    +DATE:表示日期格式日期指定格式编写
    +CLOB存储文兑现海量文字
    +BLOB:存储二进制数例:电影音乐图片
    2 复制表:CREATE TABLE 表名称AS子查询
    3 般表建立修改果非修改 ALTE TABLE指令
    *ALTER TABLE表操作功:
    +增加列:ALTER TABLE 表名称ADD(字段名称 字段类型 DEFAULT默认值)
    +修改列:ALTER TABLE 表名称MODIFY(字段名称 字段类型 DEFAULT默认值)
    +删列:ALTER TABLE 表名称DROP(COLUMN 字段名称)
    4 约束:约束保证数库中数完整性(5约束)
    5 SQL中约束分5种:
    *单表约束:
    +PRIMARY KEY实例表般建立键表示唯编号
    +NOT NULL列容允许插入空值
    +UNIQUE表示列容允许重复
    +CHECK:表示列容设置时限制
    *关联表约束:
    +FOREIGN KEY:表示子表取值父表中值相关联
    +删时候应该先删子表删父表
    +果现想直接删父表采Oracle强制手段:
    DROP TABLE表名称CASCADE CONSTRAINT
    级联删:ON DELETE CASCADE父表中容删子表应容删掉
    *约束身修改建议修改约束
    +增加约束:ALTER TABLE ADD CONSTRAINT 约束名称 约束类型(约束字段)
    +删约束:ALTER TABLE DROP CONSTRAINT 约束名称
    +果建立约束时候没定约束名称系统会动分配约束名称名称删时候较麻烦建立表时候采CONSTRAINT语句指定约束名字
    6 ROWNUM伪列:记录中存列户表示行编号实际中通列结合子查询完成表中部分数显示
    7 集合操作:交差
    12章容
    1 掌握视图作定义
    2 掌握序列:SEQUENCE
    3 掌握PowerDesigner设置工具
    4 解义词解户理解嵌套表变数组
    5 理解数库设置方式
    2 具体容
    21视图(重点)
    视图功:视图实际封装复杂查询语句
    创建视图语法:
    CREATE VIEW视图名称AS子查询
    *实际时子查询表示条非常复杂语句
    范例:创建视图视图包含全部20部门雇员信息(empnoename)
    CREATE VIEW emp20 AS SELECT*FROM emp WHERE deptno20
    视图创建查找表样直接视图进行查询操作
    范例:查询视图
    SELECT*FROM emp20
    时通视图找20部门数发现视图包装需查询语句时果需视图包含字段信息:job
    CREATE VIEW emp20 AS SELECT empnoenamejob FROM emp WHERE deptno20
    错误信息:
    ORA22955:名称已现兑现
    执行语句发现出现错误提示证明视图法重名时删重建视图
    删视图语法:
    DROP VIEW 视图名称
    范例:删emp20视图
    DROP VIEW emp20
    需述添加信息重新执行创建视图语句
    果代码样写肯定麻烦果想修改视图肯定删视图Oracle中方便户修改视图提供换命令时完整视图创建语法:
    CREATE OR REPLACE VIEW 视图名称AS子查询
    语法更改视图时候先删执行系统会户动进行删重建功
    CREATE OR REPLACE VIEW emp20 AS SELECT empnoenamejob FROM emp WHERE deptno20

    视图封装复杂查询现查询返回部门名称部门数均工资低工资雇员姓名
    CREATE VIEW temp1 AS(
    SELECT ddnametempagtempcteename
    FROM emp edept d
    (SELECT MIN(sal) miAVG(sal) agCOUNT(eempno)ct
    FROM emp e
    GROUP BY deptno)temp
    WHERE edeptnoddeptno AND tempmiesal)
    果开发中次写长SQL语句肯定方便时应该建立成视图方便户查询操作
    SELECT*FROM temp1
    然直接查询视图面结果
    范例:创建包含20部门雇员视图
    CREATE VIEW emp20 AS SELECT*FROM emp WHERE deptno20
    面进行更新视图操作视图中应该包含真数程中创建视图实际存创建条件条件deptno20果现视图中7369部门编号修改30
    范例:修改视图中7369部门编号
    UPDATE emp20 SET deptno30 WHERE empno7369
    时已存提示视图正常进行更新重新查询视图会发现视图中已没7369雇员
    发现emp表中7369雇员肯编号已修改30样明显合适创建视图时候条件旦修改条件破坏创建视图时候SQL中提供两重参数:
    *WITH CHECK OPTION更新师徒创建条件
    范例:视图创建中参数
    CREATE VIEW emp20
    AS
    SELECT*FROM emp
    WHERE deptno20
    WITH CHECK OPTION
    时现视图进行更新操作观察问题:
    UPDATE emp20 SET deptno30 WHERE empno7369
    错误信息:
    ORA01402:视图WITH CHECK OPTION where子句违规
    创建条件更新字段呢?例:现7369雇员姓名修改
    范例:修改视图中7369雇员名称
    UPDATE emp20 SET ename’smith’ WHERE empno7369
    发现修改视图身作查询应该运行更改时第二参数:
    *WITH READ ONLY:创建视图读
    范例:创建读视图
    DROP VIEW emp20
    CREATE VIEW emp20
    AS
    SELECT*FROM emp
    WHERE deptno20
    WITH READ ONLY
    范例:次执行更新操作更新雇员姓名
    UPDATE emp20 SET ename’smith’ WHERE empno7369

    错误信息:
    ORA42399:法读视图执行DML操作
    22 序列(重点)
    数库系统中存动增长列果现想oracle中完成增长功序列完成动增长操作需户手工处理
    序列创建格式
    CREATE SEQUENCE sequence
    [INCREMENT BY n][START WITH n]
    [{MAXVALUE n | NOMAXVALUE}]
    [{MINVALUE n | NOMINVALUE}]
    [{CYCLE|NOCYCLE}]
    [{CAXHE n |NOCACHE}]
    范例:创建myseq序列验证动增长操作
    Create sequence myseq
    序列创建动增长应该户处理序列中提供两种操作:
    l nextVal:取序列容
    l cueeVal:取序列前容
    范例:建立张验证序列操作
    create table mytest(
    next number
    curr number
    )
    面表中添加数添加数时候需手工序列
    insert into mytest values(myseqnextValmyseqcurrVal)

    面代码执行5次观察序列变化

    结果中发现nextval容进行动增长操作currval取出前操作序列结果
    说现种序列次增长幅度1修改序列增长幅度
    参数:
    l 次增长幅度:increment by 长度
    范例:重新建立序列
    CREATE SEQUENCE myseq increment by 2
    次插入数测试:先截断表插入数
    Insert into mytest values(myseqnextValmyseqcurrVal)
    发现次数字次2
    默认情况序列1开始start with指定开始位置
    Create sequence myseq
    Start with 10
    次插入数测试:先截断表插入数
    Drop sequence myseq
    Insert into mytest values(myseqnextValmyseqcurrVal)
    序列开始位置10直接10开始进行序列计算
    面创建序列取值固定13579循环序列
    Create sequence mysq
    Maxvalue 10 increment by 1 start with 1
    Cache 2 cycle

    Create sequence myseq 创建序列 序列名称
    Maxvalue 10 increment by 2 start with 1 值 值 次增长21开始
    Cache2 cycle缓存2 遇值返回
    截断表插入数发现序列容开始循环操作
    实际序列常create sequence 序列名称


    23 义词(解)
    前直存样种查询语句:
    Select sysdate from dual
    前直强调dual张虚拟表然虚拟表时表底里定义呢?
    查询 systemmanager syschange_on_install表
    Conn systemmanager
    Conn syschange_on_install as sysdba
    sys户存表表sysscott户直接通表名称访问正常情况果访问户表需户名表名称
    创建义词语法:
    Create synonym 义词名称 for 户名表名称
    范例:scottemp定义emp义词
    Create synonym emp for scottemp
    果删义词语法:
    Drop synonym 义词名称
    范例:删emp义词
    Drop synonym emp
    特性适oracle数库


    24户理
    oracle中户进行建立授权操作
    创建户语法:
    Create user户名 identified by 密码
    范例:
    Create user test identified by test23
    果想创建户首先应该理员进行登录
    创建户开启新sqlplus窗口户进行登录出现错误提示:

    提示test户没创建session操作权限没session权限意味着法登陆果户授权格式
    Grant create 权限1权限2···to 户
    范例:创建session全权限test户
    Grant create session to test
    test户进行连接连接数库表示创建session
    户连接数库面进行建表操作
    范例:建立tab表
    Create table tt(
    Id number primary key not null
    Name varchar2(30)
    )
    错误信息:

    实际新户权限分赋予果出现假设想权限赋予户权限定义成组角色
    语法:
    Grant 权限 to 户名
    oracle中提供两角色:connectresource直接两角色赋予test户
    Grant connectresource to test
    突然天test理员超级理员汇报 忘记密码时修改户密码格式
    Alter user 户 identified by 密码
    范例:test户密码改hello
    Alter user test identified by hello

    般系统中存户第次登陆时候修改密码想完成功手工密码失效格式:
    Alter user 户名 password expire
    范例:
    Alter user test password expire
    户锁住密码格式
    Alter user 户名 account lock
    范例:test户锁住
    Alter user test account lock
    解锁户语法
    Alter user 户名 account unlock
    范例:test解锁
    Alter user test account unlock
    现test户访问scott表否?

    错误信息:

    果现想访问户表需授予表访问权限
    范例:scott户emp表查询删权限test户
    Grant selectdelete on scottemp to test
    然权限授予户回收权限回收权限revoke语法语法:
    Revoke deleteselect on 表名称 from户
    范例:回收户selectdelete权限
    Revoke deleteselect on sottemp from test
    25数库备份恢复(解)
    数库运行期间需断进行备份玩意假设系统弄崩溃备份中恢复中数
    Oracle安装完成两命令进行数备份恢复:
    *数库备份:exp
    *数库恢复:imp
    D盘建立date文件文件夹中保存备份文件果备份需命令方式进d\date文件夹中
    备份完成检查备份效果数库中数全部删imp命令备份文件恢复
    清回收站:
    PURGE recydebin
    26数库设计范式(解)
    数库范式实际非常重实际开发果真全部范式做优查询语句会变复杂
    ORACLE中scott户全部表实际已体现种设计思路雇员部门关系
    261第范式
    例:现假设数库创建脚
    *Person表pidnameinfo字段
    CREATE TABLE person(
    Pid VARCHAR2(18)
    Name varchar2(50)
    Info varchar2(200)
    )
    插入测试数:
    Insert into person(pidnameinfo)values(111’张三’性男爱:xx址:厦)
    实际员信息部分组成:
    *生日:1983年11月23日
    *省事:背景
    *区:西城区
    *详细信息
    字段分数库创建脚修改:
    Create table person(
    Pid varchar2(18)
    Name varchar2(50)
    Sex varchar2(3)
    Hobby varchar2(30)
    Address varchar2(200)
    )
    表address拆分成省市区具体址
    数表中字段拆分
    262第二范式
    第范式求非常简单保证列意义果操作第范式会存问题:
    现建立张学生课表:学号(stuno)姓名(stuname)年龄(stuage)课程名称(cname)成绩(grade)学分(credit)
    Create table student(
    Stuno varchar2(20)
    Stuname varchar2(20)
    Stuage number
    Cname varchar2(30)
    Grade number(52)
    Credit number(31)
    )


    数库脚符合第范式求果现第范式设计话会存问题:
    Insert into student(stunostunamestuagecnamegradecredit)values(111’张三’28java888)
    Insert into student(stunostunamestuagecnamegradecredit)values(111’张三’28oracle888)
    Insert into student(stunostunamestuagecnamegradecredit)values(222’李四’28java888)
    数库创建脚发现课程信息冗余存问题:
    *果门课程没学生选择课程学校彻底消失
    *课程身应该包含课程编号果设计课程编号肯定重复
    *果更改课程信息考虑许条记录
    第二范式修改数库脚:
    *学生应该实体表信息
    Create table student(
    Stuno varchar(20) primary key not null
    Stuname varchar2(20)
    Stuage number
    )
    *课程应该实体标信息
    Create table course(
    Cno varchar(20) primary key not null
    Cname varchar2(20)
    Credit number(31)
    )

    *学生选课:学生选门课程门课程会学生参加学生课程成绩样应该建立张关系表表示出概念
    Create table selectcourse(
    Stuno varchar2(20)
    Cno varchar2(20)
    Grade number(53)
    Constraint student_selectcourse_stuno_fk foreign key(stuno) references student(stuno)
    Constraint course_selectcourse_cno_fk foreign key(cno) references course(cno)
    )
    设计解决问题:
    *学生选课时候课程信息会消失
    *根新课程时候直接更新课程表
    *关联关系关系表中体现
    263第三范式
    实际开发中第三范式频率高
    例现求设计张学生表包含学号姓名年龄院校学院址学院电话时肯定第范式现果第二范式:
    Create table student(
    Stuno varchar2(20) primary key not null
    Stuname varchar2(20)
    Stuage number
    )
    Create table college(
    Cno varchar2(20)primary key not null

    Cname varchar2(20)
    Address varchar2(20)
    Telephone varchar2(20)
    )
    Create table selectcollege(
    Stuno varchar2(20)
    Cno varchar2(20)
    约束
    )
    设计学生学院时课学院时会学生时做法:学院包含学生学生属学院实际加设计完全类似部门雇员表设计结构
    Create table college(
    Cno varchar(20) primary key not null
    Cname varchar2(20)
    Address varchar2(200)
    Telephone varchar2(20)
    )
    Create table student(
    Stuno varchar2(20) primary key not null
    Stuname varchar2(20)
    Stuage number
    Cno varchar2(20)
    Constraint college_student_cno_fk foreign key)(cno) references college(cno)
    )
    明显关系设计
    三范式算参考数库唯原:

    数库表关联查询越少越SQL语句复杂度越低越

    文档香网(httpswwwxiangdangnet)户传

    《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
    该内容是文档的文本内容,更好的格式请下载文档

    下载文档到电脑,查找使用更方便

    文档的实际排版效果,会与网站的显示效果略有不同!!

    需要 3 香币 [ 分享文档获得香币 ]

    下载文档

    相关文档

    oracle学习心得

    oracle学习心得第一篇:oracle学习心得一、sql server的理解sql server服务器就像一栋大楼,大楼里的机房就像服务器的数据库,机房里的电脑如同数据库里的表1、 登录用户...

    11年前   
    691    0

    oracle实验报告

    《Oracle数据库设计与 实现》 总结报告 成绩:-------------- ...

    2年前   
    503    0

    Oracle常用命令大全

    一、ORACLE的启动和关闭 1、在单机环境下 要想启动或关闭ORACLE系统必须首先切换到ORACLE用户,如下 su - oracle a、启动ORACLE系统 oracle>svrmgrl...

    4年前   
    842    0

    SQL中调用ORACLE存储过程

    SQL Server 调用Oracle的存储过程 收藏 原文如下:通过SQL  Linked  Server 执行Oracle 存储过程小结1 举例我们可以通过下面的方法在SQL Server...

    3周前   
    85    0

    Oracle中国大变阵

    Oracle中国大变阵刚开始对杨文胜来讲还真是有点不习惯,以前是自己亲自打单,尽管遇到的困难很多,费的周折很大,但是作为身处一线的销售经理很有挑战性,很刺激。从1992年踏入Oracle中国公...

    11年前   
    449    0

    Oracle数据库考试试题

      Oracle数据库考试试题(A卷) 一、单选题(共30小题,每题2分,总计60分)datacompass (1)SQL语言进行查询的主要语句是( ) A)USE B)DEC...

    11年前   
    12757    0

    数据库面试题(SQL+ORACLE)

    数据库基础(面试常见题)一、数据库基础1. 数据抽象:物理抽象、概念抽象、视图级抽象,内模式、模式、外模式2. SQL语言包括数据定义、数据操纵(Data Manipulation),数据控制...

    9年前   
    550    0

    Oracle2014课程设计题with answer

     Oracle课程设计报告 姓 名 班级学号 指导教师 ...

    5年前   
    1393    0

    Oracle 10g课后练习 软件0905

    Oracle 10g 课后习题 第一章Oracle 10g简介 1.简述数据库系统的组成 答:数据库系统由数据库、操作系统、数据库管理系统、应用开发工具、应用程序、数据库管理员和用户等组...

    10年前   
    9177    0

    某移动公司oracle数据库调整及优化心得

    某移动公司oracle数据库调整心得   经过三次oracle数据库调整, 针对DS4800存储上的hdisk2磁盘IO使用率经常在100%的情况已经有部分改善。调整前hdisk2磁盘在数...

    5年前   
    916    0

    Oracle电子商务套件构建ERP系统应用案例-ERP解决方案

    Oracle电子商务套件构建ERP系统应用案例-ERP解决方案  综述  为了进一步提升企业的财务管理水平,缩短与国际一流水平电信企业的差距,中国联合通信有限公司(以下简称中国联通)积极地推进...

    10年前   
    724    0

    oracle电子商务套件特别版-白皮书

    Oracle电子商务套件特别版产品白皮书版本:2.0目 录Oracle电子商务套件特别版概述 3Oracle总帐管理 (Oracle General Ledger) 5Ora...

    9年前   
    480    0

    51CTO下载-Oracle_DB常用经典sql查询

    oracle常用经典SQL查询 常用SQL查询:   1、查看表空间的名称及大小   select t.tablespace_name, round(sum(bytes/(1024...

    5年前   
    880    0

    Oracle_APEX_学习心得体会

    APEX 简介这一部分主要使读者熟悉 APEX 的基本概念、环境和使用。本部分介绍了APEX 主要特性,三个组件(应用程序构建器、SQL 工作室、实用工具)和四类用户。本部分回答了以下问题:什么...

    6年前   
    1355    0

    Oracle工程管理协同系统应用案例-管理系统解决方案

    Oracle工程管理协同系统应用案例-管理系统解决方案  内蒙古大唐托克托发电有限责任公司于1995年11月在呼和浩特市组建成立。从“十五”开始,由于电网的输送能力限制,电力供需矛盾日益突出,...

    11年前   
    598    0

    Oracle电子行业资源管理系统应用案例-管理系统解决方案

    Oracle电子行业资源管理系统应用案例-管理系统解决方案  广东省电信有限公司惠州市分公司下辖惠阳市、惠东县、博罗县、龙门县及大亚湾经济技术开发区电信局。主要经营惠州市范围内的国内固定电信网...

    8年前   
    826    0

    Oracle ERP系统湘潭钢铁应用案例-ERP解决方案

    Oracle ERP系统湘潭钢铁应用案例-ERP解决方案  综述   湘潭钢铁集团有限公司(以下简称湘钢)利用 Oracle ERP 11i 和 Oracle 数据库成功部署企业级 ERP 系...

    11年前   
    560    0

    华夏银行ORACLE RAC方案介绍

    Oracle 10.2 for AIX软件安装手册安装前的准备工作:1、 添加组和用户 # mkgroup dba # mkgroup oinstall #...

    2年前   
    277    0

    「精品」Oracle汽车供应商解决方案

    Oracle 汽车供给商解决方案目录Oracle 完整的应用解决方案改变您的业务方式 3加强产品开发的国际合作 4新产品开发前景 4Oracle Product Development Exc...

    2年前   
    357    0

    oracle数据库期末考试试题及答案

        期 末 考 试 卷(卷) 课程名称:  ORACLE数据库       考试方式:开卷( )闭卷(√) **学院 (郭)   题号 一 二 三 四 五 ...

    5年前   
    1692    0