(2) 查询所处的时区

SQL> select dbtimezone from dual;

DBTIME

------

-07:00

运实例

  • Yelp的广告分析系统
  • Spotify的持有用户信息囤积

(3) 使用ORACLE_ADMIN账号(它装有DROP USER特权)删除用户DROPME:

SQL> connect oracle_admin/oracle_admin

已连接。

SQL> drop user dropme;

drop user dropme

*

ERROR 位于第 1 行:

ORA-01922: 必须指定 CASCADE 以删除'DROPME'

脚简单讲一下,我们为什么要以cassandra。

2. TIMESTAMP

<column_name> TIMESTAMP [SECONDS_PRECISION]

例如:

SQL> create table other_company_events(

2 event_name varchar2(100),

3 event_date date,

4 event_timestamp timestamp);

表已创建。

SQL> insert into other_company_events(event_name,event_date,event_timestamp) values('Created COMPAN

_EVENTS table',sysdate,sysdate);

已创建 1 行。

SQL> column event_name format a28;

SQL> column event_date format a18;

SQL> column event_timestamp format a28;

SQL> select event_name,to_char(event_date,'DD-MON-YY HH24:MI:SS') event_date,event_timestamp from ot

her_company_events;

EVENT_NAME EVENT_DATE EVENT_TIMESTAMP

---------------------------- ------------------ ----------------------------

Created COMPANY_EVENTS table 31-12月-12 16:26:5 31-12月-12 04.26.59.000000

9 下午

在这个事例中,我们往星星只列EVENT_DATE和EVENT_TIMESTAMP中插了SYSDATE。当从这个表中甄选数据的上,我们尽管可知看出TIMESTAMP列为SECOND字段提供了6号数字之精度,而DATE列没有存储小数部分的秒。

cassandra的特征好处

  • 便宜扩展存储
  • 出弹性的模式定义
  • 赛写副性能。

1. 约束语法

CREATE TABLE [SCHEMA.].<table_name>(

<column_name> <data type> [DEFAULT <expression>] [<constraint>]

[,<column_name> <data type> [DEFAULT <expression>] [<constraint>]

[,…]

);

尚得利用ALTER TABLE 语句向表中添加约束,如下所示:

ALTER TABLE [SCHEMA.]<table_name>

ADD [CONSTRAINT [<name>]]

<constraint definition>

);

恰好开头利用cassandra的早晚,不极端明白为什么要使cassandra。在纪念就此mysql或redis等无是足以替代cassandra吗?
为什么要花费时间去打听下她也?

2. 字符数据类型转换表

发明3-3 字符数据类型转换表

可用SQL数据类型

Oracle等价数据类型

CHARACTER(size)

CHAR(size)

CHAR(size)

CHAR(size)

CHARACTER VARYING(size)

VARCHAR(size)

CHAR VARYING(size)

VARCHAR(size)

NATIONAL CHARACTER(size)

NCHAR(size)

NATIONAL CHAR(size)

NCHAR(size)

NCHAR(size)

NCHAR(size)

NATIONAL CHARACTER VARYING(size)

NVARCHAR2(size)

NATION CHAR VARYING(size)

NVARCHAR2(size)

NCHAR VARYING(size)

NVARCHAR2(size)

适用场景

  • 敏捷支付应用程序:Schema
    Free的特性,让Cassandra可以快适应你的头变更;如果你下关系项目数据库,那么就不得不从数据表、DAO层、Logic/Service层到UI层进行层层变更,哪怕只有是一个很小的列名或字段类型变更;

  • 大方写入、统计与剖析:Cassandra的列族设计是包括数据涉嫌和排序的,并且可以无存储不待之数据,这大减省了发明接和冗余字段带来的特性开销,后者刚刚是高并发写入操作、统计分析时涉嫌项目数据库的瓶颈;

  • 亟需扩大的部署组织:Cassandra是面向分布式的筹划,这给它们可活地水平扩展,以在运维阶段满足你的要求,而不必考虑“将数据迁为更胜性能的服务器”这样的题材。

(1) 连接ORACLE_ADMIN账号,建表DROPME授权

SQL> connect oracle_admin/oracle_admin

已连接。

SQL> create user dropme

2 identified by doomed

3 default tablespace users

4 temporary tablespace temp

5 quota unlimited on users

6 /

用户已创建

SQL> grant create session,create table to dropme

2 /

授权成功。

实际说

  • 便民扩展存储

Cassandra是分布式系统,==只待增加节点就足以扩大存储空间==;众所周知,mysql的单表数据量是发瓶颈的,当数据量到达一定级别,就需要考虑分库分表或者分区等等。并且mysql不是一个分布式的数据库(虽然来基本,这不是当真含义及之分布式)。

动用cassandra,则未需要考虑该问题,当数据量增加,只需要充实cassandra的机器即可(运维层面扩展),对于开发来讲,几乎从来不影响。

  • 来弹性的模式定义

cassandra的设计编制控制了,它的数模式(列的增减)的反的本金是不行低的。在mysql中,对相同布置老数额的说明展开schema改动(列的增删改)的本是颇坏强之,一不小心就会见导致锁表,导致事情特别。而==有的工作数据量很挺而且由需求的未稳定性会经常要求更改数据的模式定义==,这时便足以设想cassandra,Cassandra很适合做如此的从事;

  • 高写副性能

Cassandra写副性能是非常大之,Netflix曾经以相同软测试中达成每秒超过100万浅的写照副;非常适合高写副的采用,如广告点击记录,用户浏览记录等等

  • 比高(不低)的读取性能

有的事情于选用cassandra的时会因由某些材料里得知,cassandra的读取性能大没有,而不敢使用。这点莫过于是误会,在cassandra的首版本确实是这般。但是随着cassandra的前行,该问题曾获取了斐然缓解。具体可参考DataStax公司的CTO兼联合创始人的即刻篇稿子至于cassandra的错误观点。

可是当你的作业对读取有较高的要求时,建议选择是的cassandra版本并开展客观之测试

3.1 数据定义语言

DDL通常用于建和保管数据库。它好应用SQL建立目标、配置数据库安全、管理统计数据以及形成其他力量。

于第2章中,我COMMIT和ROLLBACK。在表明中尽插入、更新与去等操作后以COMMIT语词,就足以使修改结果在用户数据库被永远存在。

当用户向数据库有DDL语句之上,则当说话执行前后就有隐匿之COMMIT语句(即使DDL失败)。这是为DDL不克展开回滚,而且,这也代表DDL语句以之前其他没有交的更动吧无可知进行回滚。

以DDL完成后(由于她不能够进行回滚),ORACLE会调用另一个隐式的COMMIT,为用户开始一个初的事务处理。伪代码如下:

Insert into some_table values(…):

Insert into some_table values(…):

Create table another_table(column1 data type,column2 data type);

Insert into another_table values(…);

Insert into another_table values(…);

那Oracle就会以后台为我们实行如下操作:

Insert into some_table values(…):

Insert into some_table values(…):

Commit;

Create table another_table(column1 data type,column2 data type);

Commit;

Insert into another_table values(…);

Insert into another_table values(…);

一经展开ROLLBACK,前三漫漫记下还是,ANOTHER_TBALE表中之老三久记下就见面少。

合法的Oracle标识符

Oracle遵守如下规则:

  • 它不能够是Oracle保留字(如SELECT等)
  • 它必须下1至30只字符。例外的情景数据库的称谓(最多8个字符)和数据库链接(最多128只字符)
  • 其必须坐数据库字符集中之假名字符开头
  • 她才会包含数据库字集中的字母字符,以及以下字符:#、$、_(另外,数据库连接可以分包‘@’和‘.’)
  • 其不可知包含(单或者双)引号

一般来说的标识符列表为非法:

  • %EMP(不可知包含%)
  • SELECT(Oracle保留字)
  • THIS_NAME_IS_LONGER_THAN_30_CHARACTERS
  • 1STCOLUMN(不克使用数字开头)
  • SEAN’S_TABLE(不能够包含引号)

8. 大对象

于Oracle
8中引入了酷目标或叫LOB。它们为基于二进制和字符的大面积数据,提供了比以前的LONG
RAW数据类型列灵活的贮存机制。特别是:

  • LOB在数据库被储存物理数据时,可以开展有摘。
  • LOB可以当Oracle对象类型中采用。
  • LOB支持对数据的子访问。
  • 每种型的LOB都好储存4GB的数额。
  • 在Oracle提供的PL/SQL程序包DBMS_LOB中,提供了拍卖LOB的功用。

  • LOB类型

产生局部不一品类的LOB:

  • 亚向前制大对象(BLOB)。
  • 字符大对象(CLOB)。
  • 国家字符大对象(NCLOB)。
  • 次进制文件(BFILE)。

(1) 建立名也CONFERENCE_CALLS的表明,然后插入与三独电话会关于的音讯:

SQL> create table conference_calls(

2 title varchar2(100),

3 phone varchar2(20),

4 place varchar2(100),

5 starts timestamp with time zone)

6 /

表已创建。

SQL> insert into conference_calls(title,phone,place,starts)

2 values('Sales Strategy','212.123.4567','Washington',TIMESTAMP '2001-12-01 15:00:00.000000 EST')

已创建 1 行。

3.3 用户

用户或使为温馨之数据建立自己的用户账号。这项工作异常关键,因为用户应避免采取Oracle提供的SYS和SYSTEM账号,或者我们已在前方的区块中采用了的SCOTT账号。

4. TIMESTAMP WITH LOCAL TIME ZONE

TIMESTAMP WITH LOCAL TIME ZONE与TIMESTAMP WITH TIME
ZONE大体相同,只是于前面一模一样种状态遇,要因用户会话时区在排列被储存时区数据。语法如下:

<column_name> TIMESTAME [SECONDS_PRECISION] WITH LOCAL TIME ZONE

如:

SQL> create table local_conference_calls(

2 title varchar2(100),

3 phone varchar2(20),

4 place varchar2(100),

5 starts timestamp with local time zone);

表已创建。

SQL> insert into local_conference_calls(title,phone,place,starts)

2 values('Sales Strategy','212.123.4567','New York',TIMESTAMP '2001-12-01 15:00:00.000000 EST');

已创建 1 行。

ALTER SESSION SQL语句也咱的对话设置时区。

SQL> alter session set time_zone='-05:00';

会话已更改。

SQL> column title format a25;

SQL> column stats format a30;

SQL> select title,starts from local_conference_calls;

TITLE

-------------------------

STARTS

---------------------------------------------------------------------------

Sales Strategy

01-12月-01 03.00.00.000000 下午

英国时区:

SQL> alter session set time_zone='GMT';

会话已更改。

SQL> select title,starts from local_conference_calls;

TITLE

-------------------------

STARTS

---------------------------------------------------------------------------

Sales Strategy

01-12月-01 08.00.00.000000 下午

4. 修改表空间配额

UNLIMITED关键字指出用户可以在USERS表空间受到贮存数据,直到她给统统占满。我们装了TEMP表空间受到的储存上限也10M,SYSTEM表空间被为0M。

SQL> alter user oracle_admin

2 quota unlimited on users

3 quota 10M on temp

4 quota 0M on system

5 /

用户已更改。

3.4 Oracle数据类型

2. NCHAR

NCHAR数据类型使用了同CHAR数据类型大体相同的点子来存储固定长度的字符数据。两者之间的差别就在以数据库中存储NCHAR数据的方各异。

3.5.1 约束

每当Oracle中,可以应用有声明型完整性约束,来保证用户数量是。

声明型完整性(declarative integrity)是好用来表列的要挟规则。

参照完整性(referential
integrity)是一旦Oracle成为关系数据库的要紧组成部分。

3.4.4 ANSI数据类型

Oracle支持工业标准的ANSI数据类型,以及IBM
DB/2和SQL/DS数据类型。这些项目出于一些缘故会非常有因此:

  • 一部分数据库设计工具得以导出可以叫别品类的数据库使用的ANSI兼容SQL。
  • 有的每当其他数据库及使的SQL脚论不欲换成为Oracle语法就得以Oracle中使。

3. 外键

于Oracle中,表能够透过动用所谓的外键约束进行关联。约束好停在一个发明(子表)中之一个列或者同一组列上。作为约束定义之有些,必须要定义子表的排去参考外一个表中(父表)的一个匹配列或者列组。

当采取外键的时刻,需要牢记一些要领:

  • 每当父表中于参照的排必须是唯一键或主键
  • 外键可以由多只列成。这些列被名复合外键。复合外键所所有的子表列要和父表列的多少相兼容。
  • 当以子表中插记录的上,不论父表在对应的列中是否有NULL值,外键列都可以插NULL值。
  • 外键可以是自从参照约束,也就是说它们得以依靠回到相同之阐发。

SQL> grant select on emp to hr_audit;

授权成功。

SQL> create table another_emp as select * from scott.emp;

表已创建。

SQL> alter table another_emp

2 add constraint another_dept_fk foreign key(deptno) references another_dept(deptno)

3 /

表已更改。

3.6 数据词典

当数据词典视图的简短示例,这是一个得给有数据库用户使用的视图。

SQL> describe user_tables;

针对视图所处之空间感兴趣,则如下所示:

SQL> select table_name,tablespace_name from user_tables order by table_name

TABLE_NAME TABLESPACE_NAME

------------------------------ ------------------------------

ANOTHER_DEPT SYSTEM

ANOTHER_EMP SYSTEM

BONUS SYSTEM

DEPT SYSTEM

EMP SYSTEM

SALGRADE SYSTEM

已选择6行。

外视图:

  • USER_TAB_COLUMNS——这个视图不仅提供了关于表中的排列的多少,而且还提供了关于属于即用户之视图和簇中的排列的数量。
  • USER_TAB_MODIFICATIONS——这个发明包含了自Oracle优化器最后一次等对表进行分析以来,在时下用户所持有的表上进行的改。
  • USER_TAB_PRIVS——这个发明包含了颇具针对表进行的授权。
  • USER_TABLES——这个视图包含了用户所具有的说明底排头数据。

数据词典范围

USER_TABLES视图只能望我们展示暨当前用户所怀有的阐发有关的音。而另一方面,数据库管理账号也可以应用DBA_TABLES视图。

SQL> select owner,table_name from all_tables order by owner,table_name;

3.4.2 字符类型

5. INTERVAL YEAR TO MONTH

其可用于存储月或者年之工夫周期。

INTERVAL YEAR [(YEAR_PRECISION)] TO MONTH

这年精度(YEAR_PRECISION)值规定了好以间隔值的YEAR字段中富含的数字数量。合法值为0交9,默认值是2。

3.7 小结

章根据自己理解浓缩,仅供参考。

选自:《Oracle编程入门经典》 清华大学出版社 http://www.tup.com.cn/

4. 唯一性约束

唯一性约束(unique
constraints)可以管表中的各执,对于值为非NULL的被定列或者列组都拥有唯一值。如同给外键约束,在利用唯一性约束之当儿也时有发生部分要点:

  • 当表中,可以发多单执行于对应的唯一性约束列被有NULL值。由于NULL值未等于另一个NULL值,所以可以当于唯一性约束列着具有NULL值的排列唯一。
  • 得使用多单列建立唯一性约束。这些列称为复合唯一键。
  • 唯一键能够由最多32单列成。
  • 当定义唯一键约束的时刻,Oracle会在后台建立一个唯一性索引来强制唯一性。

SQL> alter table another_emp

2 add(

3 ssn varchar2(9)

4 );

表已更改。

SQL> alter table another_emp

2 add constraint another_emp_ssn_uk

3 unique(ssn);

表已更改。

5. CHECK约束

CHECK约束是用以表中积德的评估标准。如果当树约束之时段,针对表中任何记录之格评估也FALSE,那么它的建立就会破产。

SQL> alter table another_emp

2 add(

3 gender varchar(10));

表已更改。

SQL> alter table another_emp

2 add constraint ck_gender

3 check(gender in ('MALE','FEMALE'));

表已更改。

SQL> select * from another_emp where sal>1500;

SQL> update another_emp set gender='MALE' where mod(empno,2)=0;

SQL> update another_emp set gender='FEMALE' where mod(empno,2)=1;

SQL> select empno,job,sal,gender from another_emp where sal>3000;

EMPNO JOB SAL GENDER

---------- --------- ---------- ----------

7839 PRESIDENT 5000 FEMALE

3.4.1 数值类

数值类可以用于存储整数、浮点值以及实数。在Oracle中的NUMBER数据类型具有精度(precision)和限量(scale)。精度是数值中之数字总数,可以为1顶38单数字里的另外价值。范围取值可以从0到3,它发挥了其它给定数值的有些数触及右侧边的位数。

<column_name>NUMBER(precision[, scale])

宣称示例如:NUMBER(即NUMBER(38))、NUMBER(9,2)、NUMBER(4,10)。

  • 数据定义语言(DDL)。
  • 什么建立我们协调之用户账号。
  • 可用于Oracle表的异数据类型。
  • 哪当表上建立约束。
  • 安使用数据词典获取和数据库被目标有关的音。

6. INTERVAL DAY TO SECOND

INTERVAL DAY TO SECOND是Oracle
9i中之外一个间距数据类型,它可以用来存储天、小时、分钟与秒。语法如下:

INTERVAL DAT [(DAY_PRECISION)] TO SECOND [(SECONDS_PRECISION)]

如下:

SQL> create table employee_breaks(

2 employee_id number,

3 break_reason varchar2(100),

4 break_time interval day(1) to second(2));

表已创建。

SQL> insert into employee_breaks values(100,'COFFEE BREAK',TIMESTAMP '2001-09-03 12:47:00.000000'-TI

MESTAMP '2001-09-03 13:13:00.000000');

已创建 1 行。

SQL> column break_reason format a20;

SQL> column break_time format a20;

SQL> select employee_id,break_reason,break_time from employee_breaks;

EMPLOYEE_ID BREAK_REASON BREAK_TIME

----------- -------------------- --------------------

100 COFFEE BREAK -0 00:26:00.00

2. 主键

说明底主键可以保以一个表中没有再次行。尽管用户可成立无主键的表,但是这便给认为是糟糕的惯,应该尽量避免。

用户的表中定义主键的时段需要记住的一些要点如下所示:

  • 当任意给定表上单会生一个主键。
  • 表中无能够生出外两履兼备同样之主键。
  • 主键列不能够为NULL。

SQL> create user hr_audit identified by zyf

2 /

用户已创建

SQL> grant create session,dba to hr_audit

2 /

授权成功

SQL> create table another_dept as select * from scott.dept;

表已创建。

SQL> alter table another_dept

2 add constraint another_dept_pk

3 primary key(deptno);

表已更改。

1. 数值数据类型转换表

发明3-2 数值数据类型转换表

可用SQL数据类型

Oracle等价数据类型

NUMERIC(PRECISION,SCALE)

NUMBER(PRECISION,SCALE)

DECIMAL(PRECISION,SCALE)

NUMBER(PRECISION,SCALE)

INTEGER

NUMBER(38)

INT

NUMBER(38)

SMALLINT

NUMBER(38)

FLOAT(b)

NUMBER

DOUBLE PRECISION

NUMBER

REAL

NUMBER

3. TIMESTAMP WITH TIME ZONE

TIMESTAMP WITH TIME ZONE数据类型是TIMESTAMP数据类型的扩展。语法如下:

<column_name> TIMESTAMP [SECONDS_PRECISION] WITH TIME ZONE

2. 锁定账号和清除账号锁定

于Oracle中,可以以用户账号锁定,以使其不克动用。如下语法:

ALTER USER <username> ACCOUNT [LOCK|UNLOCK];

SQL> connect oracle_admin/oracle_admin;

已连接。

SQL> connect system/zyf

已连接。

SQL> alter user oracle_admin account lock;

用户已更改。

SQL> connect oracle_admin/oracle_admin;

ERROR:

ORA-28000: the account is locked

警告: 您不再连接到 ORACLE。

3.5 建立表

建表的无限简便与无限广大的方法会如下语法:

CREATE TABLE [SCHEMA.].<table_name>(

<column_name> <data type> [DEFAULT <expression>] [<constraint>]

[,<column_name> <data type> [DEFAULT <expression>] [<constraint>]

[,…]

);

SCHEMA。这是表所属的用户称,或者模式名称。

TABLE_NAME。这是一旦确立之表明的号。

COLUMN_NAME。这是当表明中而树之排的名号。

DATA TYPE。

DEFAULT
<expression>。对于每个列,用户都得定义一个默认值,以用于没有啊列插入语句提供值的图景。

CONSTRAINT。用户可以挑选在用户建之次第列上定义约束。

5. 长短语义

Oracle不克活动考虑到大半配节字符集。Oracle
9i中得以当排列大小附加BYTE或者CHAR,以晓Oracle怎样解释数值。

1. 重置密码

ALTER USER命令以及IDENTIFIED BY子句,改变密码。

SQL> create user oracle_admin identified by zyf

2 /

用户已创建

SQL> grant create session,dba to oracle_admin;

授权成功。

SQL> alter user oracle_admin identified by oracle_admin;

用户已更改。

3. 修改表空间设置

SQL> select tablespace_name,contents from dba_tablespaces;

TABLESPACE_NAME CONTENTS

------------------------------ ---------

SYSTEM PERMANENT

UNDOTBS1 UNDO

TEMP TEMPORARY

CWMLITE PERMANENT

DRSYS PERMANENT

EXAMPLE PERMANENT

INDX PERMANENT

ODM PERMANENT

TOOLS PERMANENT

USERS PERMANENT

XDB PERMANENT

已选择11行。

以默认表空间设置也USERS,临时表空间设置为TEMP。

SQL> alter user oracle_admin default tablespace users temporary tablespace temp;

用户已更改。

(4) DROPME用户有一个阐明,使用CASCADE关键字,如下所示:

SQL> drop user dropme cascade;

用户已丢弃

3.3.1 建立用户

DBA角色是一个有超过120只网特权的角色。

CREATE_SESSION是一个网特权,它可为用户提供连接数据库的能力。

IDENTIFIED BY &lt统计;标识符>是为此来吃来用户之密码(如下密码也zyf)

以SYSTEM最高权力帐户上,建立用户账号,并施DBA特权:

SQL> create user oracle_admin identified by zyf

2 /

用户已创建

SQL> grant create session,dba to oracle_admin;

授权成功。

注意:

DBA角色好为用户完全控制数据库,尽管这种权在数据库的下是形成必要之,但是如果它们控制在错误的用户手里,也用凡殊惊险的。

以树USER的当儿,一些可用之挑项如下所示:

  • DEFAULT
    TABLESPACE。除非另行规定,否则用户所成立之对象都见面储存在其用户之默认表空间中。如果没明确规定,这个默认值就是SYSTEM。
  • TEMPORARY
    TABLESPACE。例如在查询中开展排序需要空间这样的现字段,都见面当用户之临时表空间被展开分红。在Oracle
    9i之前,这个默认值都是SYSTEM表空间。在Oracle
    9i中,默认的临时表空间是TEMP。
  • QUOTA。用户可呢其存储数据的表空间赋予配额。这是用户能够当表明空间中分配的极其可怜空间数。
  • PASSWORD
    EXPIRE。使用这个子句意味着用户在她们率先不成登录的当儿必须转她们之密码。

(2) 作为DROPME用户连接数据库,并且建立一个之类所出示之简易表明:

SQL> connect dropme/doomed

已连接。

SQL> create table employees_backup(

2 employee_id number,

3 last_name varchar2(30),

4 email varchar2(100)

5 )

6 /

表已创建。

3. VARCHAR2

VARCHAR2数据类型与CHAR类型非常相似,两者之间的不同之处在于种VARCHAR2的扬言是可转换长,而不定点长度(不见面如CHAR一样来空格对值的填充)。

3.3.2 改变用户

当保管数据库的时候,用户可能会见出各种原因来改用户账号:

  • 重置用户密码
  • 锁定账号和排账号锁定
  • 改用户的默认表空间要临时表空间
  • 修改表空间配额

(3) 查询所有以现阶段本地时间15:00之笔录

SQL> select title,phone from conference_calls

2 where starts=TIMESTAMP '2001-12-01 15:00:00.000000 -7:00';

未选定行

3.4.3 日期及日

Oracle提供如下类别的日子数额类:

  • DATE
  • TIMESTAMP
  • TIMESTAMP WITH TIME ZONE*
  • TIMESTAMP WITH LOCAL TIME ZONE*
  • INTERVAL YEAR TO MONTH*
  • INTERVAL DAY TO SECOND*

这些号了*的门类只存在于Oracle 9i中。

10. LOB定位符

LOB定位符是在使外挂方式或当BFILE中存储LOB的当儿,在说明底笔录受实际存储的目标。它便是一个对准实际LOB的指针,可以告知Oracle怎样在急需之时候获得LOB。这种办法可以避在开展全表搜索的早晚,让Oracle总体历表的数额块被贮存的不少的盈盈LOB的记录。通过使用在说明中储存的LOB定位符来代替实际数据,Oracle就可以读取表的数据块,而一旦LOB定位符的震慑最小。

4. NVARCHAR2

NVARCHAR2列可以储存可转移长的依据字符的数量,它大约以与VARCHAR2数据类型相同的法展开工作。它们两者之间的重大出入是NVARCHAR2数据以数据库中之仓储方。

1. DATE

TO_DATE和SYSDATE

SQL> connect oracle_admin/oracle_admin;

已连接。

SQL> create table company_events(

2 event_name varchar2(100),

3 event_date date)

4 /

表已创建。

SQL> insert into company_events(event_name,event_date) values('Created DATE Sample code',SYSDATE);

SQL> insert into company_events(event_name,event_date) values('Oracle Open World',to_date('2-12月-2001','DD-MON-YYYY'));

SQL> column event_name format a40;

SQL> select * from company_events;

EVENT_NAME EVENT_DATE

---------------------------------------- ----------

Created DATE Sample code 31-12月-12

Oracle Open World 02-12月-01

SHOW PARAMETERS来判定我们数据库的默认日期格式,如下所示:

SQL> show parameters nls_date_format;

NAME TYPE VALUE

--------------------- ------------ ----------- 

nls_date_format string

DATE关键字规定日期值,如下语法实现:

SQL> insert into company_events(event_name,event_date) values('Created an Oracle 9i DATE value',DATE

'2001-10-11');

已创建 1 行。

SQL> select * from company_events;

EVENT_NAME EVENT_DATE

---------------------------------------- ----------

Created DATE Sample code 31-12月-12

Oracle Open World 02-12月-01

Created an Oracle 9i DATE value 11-10月-01

3.5.2 CREATE TABLE AS SELECT

复制表结构

CREATE TABLE <table_name> AS SELECT

注意:

当以CREATE TABLE … AS SELECT
语法建立表底时节,支持对象(例如约束、索引和触发器)将无见面作为操作的结果建立。

7. LONG和LONG RAW

LONG数据类型可以用于在独的排着蕴藏大数据量的可变长度字符数据。LONG列的尺寸最高可以吧2GB。在Oracle8中,可以采用CLOB或者NCLOB数据类型对那个进行替代。

LONG
RAW数据类型就好似它们的名字所描述的那样,是一个得远远超2000个字节的RAW数据类型。当声明LONG
RAW列的早晚,不用规定那尺寸。与之相对,LONG
RAW列能够包含最高及2GB的二进制数据要字节。在Oracle
8i中,建议管理员使用BLOB或者BFILE数据类型。

3.2 表空间

于Oracle中,数据库让细分成了名叫表空间的独门存储单元。这些发明空间是存放表、懿旨以及其他消耗磁盘空间的数据库对象的地方。

3.3.3 删除用户

为去用户,使用DROP USER命令。

CASCADE如果将该用来DROP
USER命令末尾,就得给Oracle知道该于打数据库移走用户之前,删除用户之持有目标(例如:表、视图、以及经过代码)。

试:建立及去用户

1. CHAR

CHAR数据长度的数值将会见叫SQL使用空格填充剩余长度。例如:

SQL> create table authorized_blends(

2 bean_name char(50)

3 );

表已创建。

SQL> insert into authorized_blends values('Papua New Guinea');

已创建 1 行。

SQL> insert into authorized_blends values('Ethiopia');

已创建 1 行。

SQL> insert into authorized_blends values('Sumatra');

已创建 1 行。

SQL> select bean_name,length(bean_name)

2 from authorized_blends

3 /

BEAN_NAME LENGTH(BEAN_NAME)

-------------------------------------------------- -----------------

Papua New Guinea 50

Ethiopia 50

Sumatra 50

6. RAW

RAW数据类型与VARCHAR2相似,虽然RAW列可以用来存储可易长的二进制数据,而无是字符数据。RAW列的最要命尺寸是2000只字节。