Oracle语句

简介:

Oracle语句-基本查询

Oracle的数据类型

1、字符类型
CHAR:一个定长字符串,当位数不足自动用空格填充来达到其最大长度。如非NULLCHAR(12)总是包含12字节信息。CHAR字段最多可以存储2,000字节的
信息。
VARCHAR2:目前这也是VARCHAR 的同义词。这是一个变长字符串,与CHAR 类型不同,它不会用空格填充至最大长度。VARCHAR2(12)可能包含0

12字节的信息。VARCHAR2最多可以存储4,000 字节的信息。

CHARVARCHAR2的比较
CHAR(4) “A“ 实际在数据库中存储为"A “
“ABCDE”超长报错
VARCHAR2(4) “A” 存储的还是“A”
“ABCDE”超长报错
汉字:每个汉字占多少字节,要看具体的编码方式,如UTF-81-3字节)、
GB23122字节)、GBK2字节)、GB18030124字节)

 

2、数字类型

NUMBER:该数据类型能存储精度最多达38位的数字。每个数存储在一个变长字段中,其长度在022字节之间。OracleNUMBER类型精度很高, 远远高于许多编程语言中常规的FLOATDOUBLE类型。

NUMBER( p,s ) p表示精度(总长度) s表示小数位置且四舍五入

NUMBER(10,3) 10是总长度,3是小数位数的长度
123.456
123.4567 :将存储为123.457
12345679.899 :精度超长了,10是总长度,3是小数位, 整数位为10-3=7
NUMBER(10)==NUMBER(10,0) Java.lang.Integer
NUMBER(19)==NUMBER(19,0) java.lang.Long

 

3、日期类型

DATE:一个7字节的定宽日期/时间数据类型。其中总包含7个属性,包括:世纪、世纪中哪一年、月份、月中的哪一天、小时、分钟和秒。

注意不要写成datetime

TIMESTAMP:一个字节或12.字节的定宽日期/时间数据类型。它与DATE 数据类型不同,因为TIMESTAMP 可以包含小数秒(fractional second);带小数秒的TIMESTAMP 在小数点右边最多可以保留9位。

 

4、二进制及大文本数据

BLOB: (binary large object)Oracle9i及以前的版本中, 这种数据类型允许存储最多4GB的数据, 在oracle 10g及以后的版本中允许存储最多(4GB×(数据库块大小)字节的数据。BLOB包含不需要进行字符集转换的二进制数据,如果要存储电子表格、字处理文档、图像文件等就很适合采用

 

CLOB:(Character Large Object)在Oracle9i及以前的版本中, 这种数据类型允许存储最多4GB的数据, 在Oracle 10g及以后的版本中允许存储最多(4GB×(数据库块大小)字节的数据。CLOB包含要进行字符集转换的信息。这种数据类型很适合存储纯文本信息。

text一样


建立自己表空间:

1
2
3
4
5
6
7
8
9
10
11
create  tablespace xy
datafile  'd:/app/209/xy.dbf'
size  50M
autoextend  on
next  10M
 
create  user  itxy
identified  by  itxy
default  tablespace xy
 
grant  dba  to  itxy;

登录:

使用oracle客户端工具,连接远程服务器:

    system/orc123@10.0.19.252/orcl  

    用户名/密码 @ 远程服务器的IP/远程网络服务名(SID)


system / sys / scott   oracle系统用户


role privilege : 

     角色是身份的象征,本质是一群权限的集合

--当前用户

SQL> show user

USER 为 "SCOTT"

--当前用户的表

SQL> select * from tab;                                           

--员工表的结构

SQL> desc emp

 

--查询所有的员工信息

SQL> select * from emp;

 

--设置行宽

SQL> show linesize

linesize 80

SQL> set linesize  150

--设置列宽

SQL> col ename format a8

SQL> col sal for 9999

SQL> /

--通过列名查询

SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno

  2  from emp;

--SQL优化的原则:

SQL> 1.尽量使用列名

SQL> host cls

--查询员工信息:

员工号 姓名 月薪 年薪

SQL> select empno,ename,sal,sal*12

  2  from emp;

 

SQL> --查询员工信息:员工号 姓名 月薪 年薪 奖金 年收入

SQL> select empno,ename,sal,sal*12,comm,sal*12+comm

  2  from emp;

--SQL中的null值:

1. 包含null的表达式都为null

SQL> 2. null永远!=null

SQL> select empno,ename,sal,sal*12,comm,sal*12+nvl(comm,0)

  2  from emp;

--2. null永远!=null

SQL> --查询奖金为null的员工

SQL> select *

  2  from emp

  3  where comm=null;

 

未选定行

 

SQL> select *

  2  from emp

  3  where comm is null;

--修改sql

--c

员工号 姓名 月薪

SQL> select empno,ename,sal

  2  form emp;

form emp

     *

 2 行出现错误:

ORA-00923: 未找到要求的 FROM 关键字

 

SQL> --c命令 change

SQL> 2

  2* form emp

SQL> c /form/from

  2* from emp

SQL> /

 

--ed

已写入 file afiedt.buf

 

  1  select empno as "员工号",ename "姓名",sal 薪    水,sal*12,comm,sal*12+nvl(comm,0)

  2* from emp

SQL> /

select empno as "员工号",ename "姓名",sal 薪    水,sal*12,comm,sal*12+nvl(comm,0)

                                                *

 1 行出现错误:

ORA-00923: 未找到要求的 FROM 关键字

 

SQL> ed

已写入 file afiedt.buf

 

  1  select empno as "员工号",ename "姓名",sal "薪    水",sal*12,comm,sal*12+nvl(comm,0)

  2* from emp

SQL> /

--distinct 去掉重复记录

SQL> select deptno from emp;

 

SQL> select distinct deptno from emp;


SQL> select job from emp;

 

SQL> select distinct job from emp;                                

 

SQL> select distinct deptno,job from emp;

--distinct 作用于后面所有的列

--连接符 ||

SQL> -- concat

SQL> select concat('Hello','  World');

select concat('Hello','  World')                  

 1 行出现错误:

ORA-00923: 未找到要求的 FROM 关键字

 

SQL> select concat('Hello','  World') from emp;

--dual

SQL> select concat('Hello','  World') from dual;

 

CONCAT('HELL                                                                         

SQL> select 3+2 from dual;

 

SQL> select * from tab;


SQL> --dual表:伪表

SQL> --伪列

SQL> select 'Hello'||'  World'  字符串 from dual;

--字符串  

SQL> --查询员工信息:***的薪水是****

SQL> select ename||'的薪水是'||sal 信息 from emp;

SQL> --字符串

SQL> select * from emp;


本文转自 叫我北北 51CTO博客,原文链接:http://blog.51cto.com/qinbin/1934422

相关文章
|
SQL Oracle 算法
Mybatis: 兼容Oracle数据库批量插入语句
当前项目需要在不同环境下部署,不同环境下有不同的数据库,有pg、oracle、mysql等,项目中的所有sql均为pg数据库相关的sql,由于oracle数据库比较特殊所以需要兼容相关的sql。批量插入的语句,pg和oracle有着较大的差别,不能同一条语句兼顾两种数据库:,所以需要查找方案来解决。
932 0
|
SQL Oracle 关系型数据库
Oracle ASM磁盘和磁盘组的常用SQL语句
Oracle ASM磁盘和磁盘组的常用SQL语句
191 0
|
SQL Oracle 关系型数据库
【数据库】解决 oracle: SQL 错误 [900] [42000]: ORA-00900: 无效 SQL 语句
【数据库】解决 oracle: SQL 错误 [900] [42000]: ORA-00900: 无效 SQL 语句
1926 0
【数据库】解决 oracle: SQL 错误 [900] [42000]: ORA-00900: 无效 SQL 语句
|
SQL 存储 Oracle
Oracle数据库 | SQL语句解析
Oracle数据库 | SQL语句解析
246 0
Oracle数据库 | SQL语句解析
|
Oracle 关系型数据库 数据库
Oracle 常用语句
了解Oracle 常用语句。
|
SQL 存储 Oracle
Oracle数据库 | SQL语句执行计划、语句跟踪与优化实例
Oracle数据库 | SQL语句执行计划、语句跟踪与优化实例
258 0
|
Oracle 关系型数据库 数据库
Oracle语句判断字符串是否为数字及translate函数解析
Oracle语句判断字符串是否为数字及translate函数解析
367 0
|
SQL Oracle 关系型数据库
oracle学习90-oracle之基本的sql_select语句全
oracle学习90-oracle之基本的sql_select语句全
79 0
oracle学习90-oracle之基本的sql_select语句全
|
SQL Oracle 关系型数据库
oracle学习89-oracle之基本的sql_select语句之课后练习
oracle学习89-oracle之基本的sql_select语句之课后练习
88 0
oracle学习89-oracle之基本的sql_select语句之课后练习
|
SQL Oracle 关系型数据库
oracle学习48-oracle命令窗口执行sql语句
oracle学习48-oracle命令窗口执行sql语句
157 0
oracle学习48-oracle命令窗口执行sql语句

推荐镜像

更多