知识大全 oracle数据库中sql基础
Posted 知
篇首语:博观而约取,厚积而薄发。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 oracle数据库中sql基础相关的知识,希望对你有一定的参考价值。
一 关系数据库的一些概念 主键的值一般不可以改变 外键 指向另一个表或本表的主键或唯一键的字段 外键的值一定要和某一主键相同 或者为空 数据库对像 表 视图 序列 索引 同义词 程序(进程 函数 sql和pl/sql数据) sql mand 类别 data retrieval数据检索:select data manipulationlanguage (DML)数据操作语言:insert update delete data definition language (DDL)数据定义语言 create alter drop rename truncate transaction control事务控制:mit rollback savepoint data control language(DCL)数据控制语言 grant revoke DCL 和DDL命令的执行会导致一次隐式提交 之前未提交的操作(包括DML 命令)都会提交写入日志文件 并在适当地时候写入数据文件 二 SQL的语法 ) 连接号 || ) 把两个字符连接起来 eg:select game_card_type_id||name from game_card_type; ) select distinct dept_id title from emp 对多个字段的唯一 ) order by desc(降序) order by asc(升序) ) where column is (not) null ) like _a% _表示一个字符 %表示多少字符 like %x\\_y% escape \\ :显示包括x_y的字符 ) where lumn(+)=lumn place the operator on the side of the join where there is no value to join to ) 联接类型: equijoin:等式查询 non_equijoin:不等式查询 self:自己和自己建立关联 out join:where lumn=lumn(+) 可以用的操作符是 = and 不可以用 or in ) COUNT 函数所用的列包含空值时 空值行被忽略 ) where 后的in any all 的区别 in 等于子查询的任何一个数 any 与子查询的每一个值相比 只要比其中一个大(小)就可以了 all:与子查询的所有值相比要比所有的的都大(小) !=ALL作用跟NOT IN 一样 三 SQL*PLUS的环境(可以在glogin sql中定义初始参数) ) START 命令用以执行一个已储存的文件 等同于@ ) SAVE命令用以创建一个文件 ) EDIT命令用以调用编辑器编辑已存文件的内容 ) CHANGE 是SQL*Plus的编辑命令 用于在当前一行把旧文段转换为新文段 ) DEL 命令用以删除文本中一行或多行文字 ) SPOOL命令用以把查询结果储存在一个已有文件中 注意与SAVE区别 ) GET命令用以一个文件的内容写进一个SQL块中 ) SPOOL OUT命令用以把文件的结果发送到系统打印机 ) set pause off/on:设置页面的滚动 按enter看下一页 ) PAGESIZE 指定每页显示的行的数值 ) LONG 设置LONG类型数据显示的最大宽度 ) FEEDBACK 设置查询返回记录的最大值 ) DESCRIBE :用于显示表和视图的结构 同义词 或指定函数和过程的详述 ) Timing 可以看到语句执行的时间 ) Autotrace 可以看到sql的执行计划 sysdba执行/home/oracle/product/ /sqlplus/admin/plustrce sql脚本 而且必须把plustrace角色赋给执行用户 执行用户必须运行/home/oracle/product/ /rdbms/admin/utlxplan sql ) 在各种数据类型中 只有NUMBER数据类型的默认显示是靠右对齐的 而CHAR DATE和VARCHAR 是靠左对齐的 ) QUIT 是SQL*PLUS命令 用以结束一个SQL*PLUS的对话 ) ttitle: ttitle selina 设select 的结果的抬头为selina tti 显示ttitle的状态 tti off/on btitle end 设结果的尾部 ) Column a) column name heading 名字 format a b) column id justify left format c) column start_date format a null not hired //当字段为空的时候则显示成not hired d) column :显示所有的column设置 e) column columnname:显示某一个字段的设置 f) clear column :清除所有column设置 g) column columnname clear:清除某一字段的设置 h) 以上的column可用col代替 clear可以用cle代替 )定义变量 用& 由用户输入变量值 此变量可以存在于where后 做为整个查询语句的变量 也可以在order by 后 做为字段的变量 也可以放在select 后 做为字段或表达式的变量 用&& 如果多个地方引用此变量 只用输入一次 SQL> SELECT empno ename job &&column_name FROM emp ORDER BY &column_name; accept 由用户输入变量值 accept 变量名 datatype prompt 告诉用户需要输入的信息 hide 引用的时候 &变名 define(undefined) 一开始就定义变量值 四 函数 字符函数 lower:把字符转成小写 upper:把字符转成大写 initcap:把单词的第一个字母变成大写 concat:连接字符 concat( good morning )=goodmoring SUBSTR (column\\expression m[ n]) 用于对字符串进行截取操作 从第m个位置开始 把其后的连续n个字符的部分截取下来 如果m位负值 则从末尾开始计算 eg:substr( string ) =str substr( string )=ing INSTR( String r )= LPAD(sal * ) =*******sal length: 用于返回表达式中的字符数 注意返回的是NUMBER NVL(expression expression ) NVL 函数用以把一个空值转换为一个实值 如 NVL( /quantity ) 要是quantity为空值 该函数返回一个 如果两个字段类型不同必须进行转换 Min():返回最小值 如果是字符 A<a 数学函数 round:四舍五入 round( )= round( )= trunc: 截断 trunc( )= trunc( )= mod: mod(m n):m n*flood(m/n) file://flood是取整数 日期函数: a) months_beeen(date date ) 算date 和date 之间的月的数量 可以是小数可以是负数 months_beeen( sep jan )= b) add_months(date n) 为date加上N个月 N只可以是整数 c) next_date(date char ) 查找date的下一个星期N next_date( sep FRIDAY )= SEP d) last_day(date):查找date月的最后一天 e) rount(date) 把日期四舍五入 f) rount( MAY MONTH )= JUN g) rount( MAY YEAR )= JAN h) trunc(date) 把日期截断 i) trunc ( MAY MONTH )= MAY j) trunc ( MAY YEAR )= JAN k) 日期中RR与YY的区别 RR格式对日期作类似于舍入的操作 YY格式对日期作类似于截取的操作 RR YY oct oct oct oct 用法 select to_char(sysdate YY ) from dual; select to_char(to_date( RR MM DD ) YYYY MM DD ) from dual; select to_char(to_date( YY MM DD ) YYYY MM DD ) from dual; 转换函数 TO_CHAR TO_CHAR(date fmt ) fm前缀用来去除首尾的空字符或 TO_CHAR(total fm$ ) 如果想转成$ 那就要写成fm$ 可以把日期转换成字符 TO_CHAR(log_time MM/YY ) TO_CHAR(lot_time fmdd of; mm yyyy ) 具体格式如下 HH :MI:SS AM : : pm DD of MONTH of MAY Ddspth fourteenth Ddsp fourteen ddth th YYYY MM MONTH MAY group 函数avg count max min stddev sum variance 五 数据字典 用户表 由用户创建 包含用户的内容 数据字典 由系统建立 包含数据库的信息 前缀: USER_ 由用户创建 显示用户拥有的所有对象 ALL_ 由受权的用户访问 用户可以访问的对象名 DBA_ 由受了DBA权限的人访问 显示数据库的所有对象 V$ 由受了DBA权限的人访问 显示数据字典数据库服务器性能信息 通常是DBA用于显示系统的统计表和动态性能表 数据字典 DICTIONARY数据字典提供用户可以访问的数据字典表和视图的描述 USER_OBJECTS显示用户拥有的对象 USER_VIEWS显示用户拥有的视图 USER_TABLES显示用户拥有的表 ALL_TABLES显示用户可以访问的表 ALL_VIEWS显示用户可以访问的视图 USER_CATALOG显示用户拥有的所有表 视图 同义词和序列 USER_CONS_COLUMNS显示带约束的列 DBA_CONS_COLUMNS显示数据库里的所有表 视图和同义词 USER_TAB_PRIVS_MADE 本用户赋给别的用户赋予权限的表 USER_TAB_PRIVS_RECD 其他用户给本用户赋予权限的表 USER_COL_PRIVS_MADE 本用户赋给别的用户赋予权限的字段 USER_COL_PRIVS_RECD 其他用户给本用户赋予权限的字段 ROLE_SYS_PRIVS:有什么系统权限赋给role ROLE_TAB_PRIVS:有什么关于表的权限赋给role USER_ROLE_PRIVS:role和用户的对应表 常用的表 user_objects 用户对象表(存储用户的所有对象)存储以下的类型的数据 Selina Sql>select distinct object_type from user_objects; INDEX LOB PACKAGE PACKAGE BODY PROCEDURE SEQUENCE SYNONYM TABLE TRIGGER VIEW User_catalog:用户类表 存储以下的类型的数据 Selina Sql>select distinct table_type from user_catalog; SEQUENCE SYNONYM TABLE VIEW cha138/Article/program/Oracle/201311/17719相关参考
ORACLE中常用的SQL语法和数据对象 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 一数据控
Oracle数据库编程动态SQL 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 动态SQL 编
Oracle数据库PL/SQL介绍 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 什么是PL/S
OraclePL/SQL语言基础 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! PL/SQL是O
数据批量sql*load导入Oracle数据库 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! S
oracle数据库PL/SQL序列(组图) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 序列是
Oracle数据库-PL/SQL整理(1) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 获取系
ORACLE入门之查看数据库的SQL 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 查看表空间的
现在你可以通过字符串建立索引提高性能 许多PL/SQL程序对数据进行操作通常是通过使用SQL在数据库中直接操作数据你经常还需要在PL/SQL程序本身内声明和管理数据这个程序数据可能由一些单独的值
Oracle数据库维护常用SQL语句集合(3) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 性