网站导航网学 原创论文 原创专题 网站设计 最新系统 原创论文 论文降重 发表论文 论文发表 UI设计定制 论文答辩PPT格式排版 期刊发表 论文专题
返回网学首页
网学原创论文
最新论文 推荐专题 热门论文 论文专题
当前位置: 网学 > 交易代码 > SQL语法 > 正文

Oracle入门学习讲义1

论文降重修改服务、格式排版等 获取论文 论文降重及排版 论文发表 相关服务

【网学网提醒】:网学会员为大家收集整理了Oracle入门学习讲义1提供大家参考,希望对大家有所帮助!


    oracleSQLSQLstruncturedquerylanguage(结构化查询语言)
    文件FILEDATABASE(数据库)SQLDDL(datadefinitionlanguage数据定义语言画表头):createtable创建表(column列数据类型datatype,width)(constraint约束)altertable(修改表结构)droptable(删除表)DML(datamanipulationlanguage数据操作语言数据):
    insert插入数据update修改数据delete删除数据TCL(transactioncontrollanguage事物控制语言):commit(提交)rollback(回滚)DQL(dataquerylanguage数据查询语言):select(查询)DCL(datacontrollanguage数据控制语言):grant(授权)revoke(回收权限)databaseobject数据库对象table(表)index(索引)view(视图)sequence(顺序号系列号)
    RDBMS(relationshipdatabasemanagementsystem数据库管理系统)
    oracle10gsoftwaremysql
    IBMdb2
    MSSQLServer
    度宽
    -------DBA(databaseadministrator)
    installorcale10g(安装orcale10g软件)
    createdatabase(创建数据库)
    startup(open打开状态)
    -----------SD(softwaredeveloper)
    ---->登录数据库(建立数据库连接)
    ---->SQL语句
    telnet192.168.2.205
    openlab/open123%$shell提示符
    sqlplus
    dbopemlab/open123SQL>select
    echo$ORACLE_SID(环境变量--oracledbservere(oracle数据库服务器)的名字)open状态
    sqlplus
    setenvORACLE_SIDhiloo
    ERROR
    ORA-01234:ORACLEnotavailable
    没有hiloo这个oracle数据库服务
    cmd(windows)shell(unix)都是命令解释器
    C/Sclient/server(客户端/服务器)
    客户端程序和服务器端程序在同一台机器上sqlplus
    客户端程序和服务器端程序不在同一台机器上jdbc(tcp/ip)
    客户端程序和服务器端程序在同一台机器上
    D:/ORACLE_SID=hiloo
    D:/setORACLE_ID
    ORACLE_SID=hiloo
    %setenvORACLE_SIDhiloo
    %echo$ORACLE_SID
    C/Sclient/server(客户端/服务器)
    sqlplus/oracleserver
    createtabledept_sunw(
    deptnonumber(2),dnamechar(20),locationchar(20));insertintodept_sunwvalues(10,'developer','beijing');insertintodept_sunwvalues(20,'account','shanghai');insertintodept_sunwvalues(30,'sales','guangzhou');insertintodept_sunwvalues(40,'operations','tianjin');commit;select*fromdept_sunw;createtableemp_sunchw(empnonumber(4),enamevarchar2(20),jobvarchar2(15),salarynumber(7,2),bonusnumber(7,2),hiredatedate,mgrnumber(4),deptnonumber(10));insertintoemp_sunchwvalues(1001,'张无忌','Manager',10000,2000,to_date('2009-12-03','yyyy-mm-dd'),1005,10);insertintoemp_sunchwvalues(1002,'刘苍','Anayst',8000,1000,to_date('2009-12-03','yyyy-mm-dd'),1001,10);insertintoemp_sunchwvalues(1003,'李','Anayst',9000,1000,to_date('2009-12-03','yyyy-mm-dd'),1001,10);松
    翔
    insertintoemp_sunchwvalues(1004,'郭芙蓉','Programmer',5000,null,to_date('2009-12-03','yyyy-mm-dd'),1001,10);insertintoemp_sunchwvalues(1005,'张三丰','Prisdent',15000,null,to_date('2009-12-03','yyyy-mm-dd'),null,20);insertintoemp_sunchwvalues(1006,'杨小','Manager',5000,400,to_date('2009-12-03','yyyy-mm-dd'),1005,20);insertintoemp_sunchwvalues(1007,'陆无六
    双
    ','clerk',3000,500,to_date('2009-12-03','yyyy-mm-dd'),1006,20);insertintoemp_sunchwvalues(1008,'黄','Manager',5000,500,to_date('2009-12-03','yyyy-mm-dd'),1005,30);容
    insertintoemp_sunchwvalues(1009,'韦小宝','salesman',4000,null,to_date('2009-12-03','yyyy-mm-dd'),1008,30);insertintoemp_sunchwvalues(1010,'郭','salesman',4500,500,to_date('2009-12-03','yyyy-mm-dd'),1008,30);靖
    setLinesize150colempnofor9999colmgrfor9999coldeptnofor99colsalaryfor99999.99commit;
    select*fromemp_sunchw;
    源表from后面的表名结果集select语句的查询结果
    select语句select子句from子句select投影操作(select子句)选择操作,连接操作selext子句列表表达式函数
    算术表达式,字符表达式(字符串的拼接)语法检查,语义检查,生成执行计划,执行该计划,产生结果集
    select表达式列表名fromtabname
    字符窜串用单引号
    字符查找时大小写敏感
    列表名用双引号空格或者大小写敏感
    insert包含null没值,算术表达式中包含null值结果一定为null.null可以按无穷大理解
    nvl(p1,p2)返回值nvl(bonus,0)空值转换函数p1,p2distinct不同区别:去重distinctbonusbonus包含多个null值结果集包含一个null值
    distinctdeptno,jobfromemp_sunchw;distinct之后,from之前的所有列合去重
    联
    selectfromwherewhere子句实现选择操作where条件表达式列名比较运算符值where子句可执行在select子句之前所有列表名不能用于where子句,表达式,比较运算符值(尽量不用)upper()将字符串转化为大写lower()将字符串转换为小写betweenand闭区间范围>=和<=
    in(集合)<=>=any(跟集合里的任意一个值都相等)<=>=or=like像字符
    通配符%0或多个字符's'like's%'
    _任意一个字符
    _%一个代表通配符,一个代表它本身判断一个列的取值是否为空用isnull否定形式isnullnotnull=的否定形式<>!=betweenandnotbetweenand比小的小,比大的大like的否定形式notlikein的否定形式notinnotin<=><>all(跟集合里的所有值都不相等)<=>and<>对于in来说,集合里面是否包含null值,对结果集没影响
    对于notin来说,集合里面包含null值,结果集里一定是norows
    selectec.(没有任何记录)
    建立连接
    DDLDMLTCL
    selectdistinctfromwhere
    fromwhereselectdistinct
    where数据类型比较运算符
    课堂练习
    1:列出员工名称以及工资
    selectename,salaryfromemp_sunchw;
    2:列出员工名称以及年薪
    selectename,salary*12fromemp_sunchw;
    3:列出员工名称以及一年的总收入
    selectename||'''stotalsalaryis'||(salary+nvl(bonus,0)*12)empfrom
    emp_sunchw;
    4:公司里有哪些不同职位
    selectdistinctjobfromemp_sunchw;
    5:公司里每个部门有哪些不同职位
    selectdistinctdeptno,jobfromemp_sunchw;
    6:工资大于5000的员工的名称和工资
    selectename,salaryfromemp_sunchwwheresalary>5000;
    7:工资大于5000的员工的名称和年薪
    selectename,(salary+nvl(bonus,0))*12fromemp_sunchwwheresalary>5000;
    8:年薪大于60000的员工的名称和年薪
    selectename,(salary+nvl(bonus,0))*12fromemp_sunchwwhere
    (salary+nvl(bonus,0))*12>60000;
    9:哪些员工的职位是clerk
    selectename,jobfromemp_sunchwwherejob='Clerk';
    10:哪些员工的职位是manager
    selectename,jobfromemp_sunchwwherejob='Manage';
    11:哪些员工的职位是clerk,不知道clerk的大小写
    selectename,jobfromemp_sunchwwhereupper(job)='CLERK';
    selectename,jobfromemp_sunchwwherelower(job)='clerk';
    12:找出工资在5000到10000之间的员工的名称和年薪
    selectename,(salary+nvl(bonus,0)*12)fromemp_sunchwwheresalary
    between5000and10000;
    13:哪些员工的职位是clerk或Manager或salesman
    selectename,jobfromemp_sunchwwherejob
    in('Clerk','Manager','Salesman');
    14:哪些员工的名字的第二个字符是a
    15:哪些员工的职位的前两个字符是j_(j_salesman符合条件)
    转义
    selectename,jobfromemp_sunchwwherejoblike'j_%'escape'\';
    16:哪些员工没有奖金
    selectename,bonusfromemp_sunchwwherebonusisnull;
    17:哪些员工有奖金
    关于null的讨论
    insert包含null,没值,算术表达式中包含null值,结果一定为null.null
    可以按无穷大理解。
    distinctbonus,bouns包含多个null值,结果集包含一个null值
    判断一个列的取值是否为空,用isnull
    null=null不成立,1<>null不成立null<>null不成立
    对于notin
    
  • 上一篇资讯: ORACLE分页查询SQL语法
  • 下一篇资讯: Oracle中的SQL语言技巧
  • 设为首页 | 加入收藏 | 网学首页 | 原创论文 | 计算机原创
    版权所有 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2020 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号 常年法律顾问:王律师