oracle如何查看语言,oracle查询语言

如何查看Oracle数据库字符集,详细操作,xx

数据库服务器字符集select * from nls_database_parameters,其来源于props$,是表示数据库的字符集。

成都创新互联公司是专业的新郑网站建设公司,新郑接单;提供成都网站制作、网站设计,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行新郑网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!

客户端字符集环境select * from nls_instance_parameters,其来源于v$parameter,

表示客户端的字符集的设置,可能是参数文件,环境变量或者是注册表

会话字符集环境select * from nls_session_parameters,其来源于v$nls_parameters,表示会话自己的设置,可能是会话的环境变量或者是alter session完成,如果会话没有特殊的设置,将与nls_instance_parameters一致。

客户端的字符集要求与服务器一致,才能正确显示数据库的非Ascii字符。如果多个设置存在的时候,alter session环境变量注册表参数文件

字符集要求一致,但是语言设置却可以不同,语言设置建议用英文。如字符集是zhs16gbk,则nls_lang可以是American_America.zhs16gbk。

涉及三方面的字符集,

1. oracel server端的字符集;

2. oracle client端的字符集;

3. dmp文件的字符集。

在做数据导入的时候,需要这三个字符集都一致才能正确导入。

2.1 查询oracle server端的字符集

有很多种方法可以查出oracle server端的字符集,比较直观的查询方法是以下这种:

SQL select userenv('language') from dual;

USERENV('LANGUAGE')

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

SIMPLIFIED CHINESE_CHINA.ZHS16GBK

SQLselect userenv(‘language’) from dual;

AMERICAN _ AMERICA. ZHS16GBK

2.2 如何查询dmp文件的字符集

用oracle的exp工具导出的dmp文件也包含了字符集信息,dmp文件的第2和第3个字节记录了dmp文件的字符集。如果dmp文件不大,比如只有几M或几十M,可以用UltraEdit打开(16进制方式),看第2第3个字节的内容,如0354,然后用以下SQL查出它对应的字符集:

SQL select nls_charset_name(to_number('0354','xxxx')) from dual;

ZHS16GBK

如果dmp文件很大,比如有2G以上(这也是最常见的情况),用文本编辑器打开很慢或者完全打不开,可以用以下命令(在unix主机上):

cat exp.dmp |od -x|head -1|awk '{print $2 $3}'|cut -c 3-6

然后用上述SQL也可以得到它对应的字符集。

2.3 查询oracle client端的字符集

在windows平台下,就是注册表里面相应OracleHome的NLS_LANG。还可以在dos窗口里面自己设置,

比如: set nls_lang=AMERICAN_AMERICA.ZHS16GBK

这样就只影响这个窗口里面的环境变量。

在unix平台下,就是环境变量NLS_LANG。

$echo $NLS_LANG

AMERICAN_AMERICA.ZHS16GBK

如果检查的结果发现server端与client端字符集不一致,请统一修改为同server端相同的字符集。

补充:

(1).数据库服务器字符集

select * from nls_database_parameters

来源于props$,是表示数据库的字符集。

(2).客户端字符集环境

select * from nls_instance_parameters

其来源于v$parameter,表示客户端的字符集的设置,可能是参数文件,环境变量或者是注册表

(3).会话字符集环境

select * from nls_session_parameters

来源于v$nls_parameters,表示会话自己的设置,可能是会话的环境变量或者是alter session完成,如果会话没有特殊的设置,将与nls_instance_parameters一致。

(4).客户端的字符集要求与服务器一致,才能正确显示数据库的非Ascii字符。

如果多个设置存在的时候,NLS作用优先级别:Sql function alter session 环境变量或注册表 参数文件 数据库默认参数

字符集要求一致,但是语言设置却可以不同,语言设置建议用英文。如字符集是zhs16gbk,则nls_lang可以是American_America.zhs16gbk。

oracle反查建表语言

表名改成大写的试试。

select dbms_metadata.get_ddl('TABLE','ADMINIUSER') from dual

oraclede中数据定义语言

Oracle:数据定义语言(DDL)

1、命名规则和约定:

表名和列名的长度最多为30个字符

表名和列名必须以字母打头

表名或者列名中不允许有空格和*

Oracle服务器的保留字也不能作为表名或列名

2、数据类型:

创建数据表时,要为表中的每一列分配一个数据类型。数据类型指定了将要存储在此列中的数据的类型。通过为一列提供一种数据类型,可以避免在此列中存储错误类型的数据

Varchar2:VARCHAR2是一种字符型数据类型,用来在一列中存储可变长度的字母数字混合的数据。VARCHAR2必须指定最大长度,最小长度和默认长度都是一个字符。指定的长度要置于圆括号当中,例如VARCHAR(20)。如果数据比指定的长度短,那么只存储数据值,并不在值的尾部添加空格。但是,如果输入的值比指定的长度长,则会产生错误,并不会将较长的值截短。如果某一列的值没有固定的长度,那么最适合使用VARCHAR2数据类型

Char:CHAR类型是一种字符型数据类型,用来在一列中存储固定长度的字母数字混合的数据。默认长度和最小长度都是一个字符。如果输入的值比指定的长度短,则在其尾部添加空格,以使其长度等于指定的长度;如果输入的值比指定的长度长,则会发生错误。CHAR类型适用于固定长度的值

Number:NUMBER数据类型用来存储负数、正数、整数、定点数和浮点数。NUMBER数据类型可以用于任何要进行数学计算的列。当某一列使用Number类型时,可以指定其精度和标度。精度是一个数字的有意义数字的总数,包括小数点左右两边的数字,但指定精度时小数点不计算在内。标度是小数点右边数字的总数

整数类型全部是数字,没有小数部分。如果一列定义为整数类型,则只需要提供精度的大小即可

定点小数类型的小数点右边的数字为数是指定的

浮点小数类型的小数位为数是可变的。小数点前可以有任意位数字,或者也可以根本不出现小数点。将一列定义为这种类型时不用随同NUMBER类型一起来指定标度和精度

Date:DATE类型用于存储日期和时间值。DATE类型的列中存储着日、月、世纪、小时、分钟和秒。对DATE类型不需要指定大小。

LONG:LONG类型用于可变长度的字符数据,最大为2G Byte。一张数据表中只能有一列定义为LONG类型,定义LONG类型时,不需要指定其大小

NCHAR:NCHAR类型与CHAR类型相似,但它对每一个字符都使用两个字节的二进制编码,而CHAR类型则对每一个字符使用一个字节的ACSII编码,它只能表示256个不同的字符

CLOB:这一字符大对象数据类型用于存储单字节字符数据,最大为4G个字节

NCLOB:这一字符大对象数据类型使用2 Byte的字符代码

BLOB:二进制大对象数据类型用于存储二进制数据,最大为4G Byte

3、约束

约束是对数据表施加规则。约束有助于我们使自己的数据库具有完整性。

完整性规则:

(1)实体完整性:主键中的列不能是空(null),主键提供了可以惟一地识别一行或一个实体的方法。

(2)引用完整性:外键值或者是空值,或者必须作为引用表的主键值而存在

Oracle使用约束来实现关系数据库的完整性规则,并在单个列级别实现数据完整性。无论何时,当对数据表中的一行或一条记录进行插入、更新或删除操作时,都必须满足约束条件,这样其操作才能成功

3.1、约束类型

(1)完整性约束:定义数据表中的主键和外键,以及此外键所引用的主键

(2)值约束:如果不允许值为空,如果要求值是惟一的,以及如果一个列的值只允许是一组确定的值,那么就需要定义值约束

3.2、命名约束

Oracle通过内部名称或用户自定义的名称来识别约束,对于每一个用户帐号,每一个约束名都必须是惟一的。一个用户不能在两张不同的数据表上创建具有相同名称的约束。一般情况下,命名约束时采用如下的约定形式:

table name_column name_constraint type

这里table name是要定义约束的表名,column name是要应用约束的列名,constraint type是用缩写形式来表示的约束类型

约束与缩写的对应形式

PRIMARY KEY:pk

FOREIGN KEY:fk

UNIQUE:uk

CHECK:ck

NOT NULL:nn

如果用户没有命名一个约束,则Oracle服务器会自动生成一个约束名,所用的格式是SYS_Cn,这里n是任意一个惟一的数字

3.3、定义约束

可以在创建表时创建约束,也可以在表创建完成之后再添加约束。约束的定义有两个级别:

列级别:一个列级别的约束只涉及单独一列,它的定义与列的定义同时进行。除外键约束和复合主键约束外,其他类型的约束均可以在列级别进行定义通用的语法格式是:

Column datatype [CONSTRAINT constraint_name] constraint_type

表级别:一个表级别的约束涉及一列或多列,它的定义与列的定义是分开进行的。一般来说,所有列的定义都完成之后才定义表级别约束。除非空约束,所有约束均可以在表级别进行定义。通用的语法格式是:

[CONSTRAINT constraint_name] constraint_type(Column name)

3.3.1、主键约束

主键约束也称为实体完整性约束。它为表创建一个主键。一张表只能有一个主键约束。无论是一列用作主键还是多列复合起来用作主键,主键只能是非空值,而且也只能有惟一的值。例如,N2公司数据库的DEPT表将DeptId列用作主键,则在列级别定义约束如下所示:

DeptId NUMBER(2) CONSTRAINT dept_deptid_pk PRIMARY KEY

在表级别定义约束如下所示:

CONSTRAINT dept_deptid_pk PRIMARY KEY(DeptId)

3.3.2、外键约束

外键约束也称为主键完整性约束。它使用一列或多列作为外键,建立了此外键与同一张表或者另一张表的主键之间的关系

要确定一张数据表的外键,其他被引用的表及其主键必须已经存在。虽然外键与被引用的主键列不需要具有相同的名称,但是外键值必须与父表的主键值相匹配,或者外键值是空值

CONSTRAINT student_facultyid_fk FOREIGN KEY(FacultyId)REFERENCES faculty(FacultyId)

STUDENT标的FaultyId引用了FACULTY表的主键FacultyId

在结束FOREIGN KEY之前,还可以添加ON DELETE CASCADE子句,它不仅允许删除父表中的记录,而且还会同时删除子表中依赖的记录。在不使用ON DELETE CASCADE子句的情况下,如果子表引用父表中的记录,那么就不能删除父表中的这一行记录

3.3.3、非空约束

非空约束确保一列具有一个值而且不是空值

3.3.4、惟一性约束

惟一性约束要求一列或一组列中的每一个值都是惟一的。如果惟一性约束应用于单一列,则此列只有惟一的值;如果惟一性约束应用于一组列,那么这组列合起来具有惟一的值。惟一性约束允许空值,除非此列也应用了NOT NULL非空约束

3.3.5、检查约束

检查约束定义了每一行都必须满足的条件。一列可以有多个检查约束,检查约束既可以在列级别定义,也可以在表级别定义

CONSTRAINT dept_deptid_cc CHECK ((DeptId=10)and(DeptId=99))

3.3.6、非空检查约束

非空约束也能够作为检查约束来声明,它可以在列级别定义,也可以在表级别定义:

Name VARCHAR2(15) CONSTRAINT faculty_name_ck CHECK(Name IS NOT NULL)

3.3.7、DEFAULT默认值

默认值确保当向表中插入新的一行时,某一特定的列总是具有一个值。如果用户输入另一个值,则默认值就会被覆盖,如果插入空值,那么就会使用默认值

State CHAR(2) DEFAULT ‘NJ’

4、创建Oracle数据表

CREATE TABLE语句的通用语法格式是:

CREATE TABLE [schema.] tablename

(column1 datatype [CONSTRAINT constraint_name] constraint_type,

column2 datatype [CONSTRAINT constraint_name] constraint_type,…

[CONSTRAINT constraint_name] constraint_type(Column name,…),…)

schema是可选的,它与用户的注册名相同

tablename是用户指定的表名

column是单个列的名字

datatype是该列的数据类型和大小

constraint_name是用户提供的约束名

constraint_type是指完整性约束或值约束

每个列都可以有零个、一个或多个在列级别定义的约束,一般情况下,表级别约束是在所有列定义完成之后才声明

4.1、CREATE TABLE语句中的STORAGE子句

CREATE TABLE语句中可以包括STORAGE子句,但它是可选的。在创建数据库时,使用该子句,由参数INITIAL定义为数据表分配的初始磁盘空间,另外还可以使用另一个参数NEXT,它在数据表对分配的初始磁盘空间已经用完的情况下,定义再追加分配多少磁盘空间。

CREATE TABLE sample(Id NUMBER(3),Name VARCHAR(25))

TABLESPACE CIS_DATA

STORAGE(INITIAL 1M NEXT 100K)

PCTFREE 20;//空闲百分比

5、显示数据表信息

当用户创建了数据库中的一张表或多张表时,Oracle用自己的数据字典来跟踪所有这些表。Oracle提供了SQL语句和SQL *Plus命令可以查看Oracle的数据字典表中的信息

5.1、查看用户的表名

SELECT TABLE_NAME FROM USER_TABLES;

Oracle创建系统表来存储用户和用户对象的有关信息,USER_TABLES是一个Oracle系统表,TABLE_NAME是此表中的一个列

5.2、查看表结构

DESCRIBE 表名

5.3、查看约束信息

Oracle的数据字典表USER_CONSTRAINTS存储着我们为每一列输入的约束信息

SELECT CONSTRAINT_NAME, CONSTRAINT_TYPE

FROM USER_CONSTRAINTS

WHERE TABLE_NAME=’STUDENT’;

表明必须采用大写字母,因为Oracle是以大写字母保存表名的

5.4、查看表空间信息

一个表空间包括一个或多个物理数据文件。我们可以获得使用数据字典视图USER_TABLESPACES所能得到的所有表空间的有关信息。

数据字典视图USER_USERS为用户提供了其账号的有关信息,以及永久的临时的表空间

5.5、注释表和列

创建数据表时可以为该表及其列添加注释,添加注释的目的是为编写文档的方便,添加注释所使用的语句是COMMENT语句。例如:

COMMENT ON TABLE student IS ‘Table holds students for INDO-S College’

COMMENT ON COLUMN employee.Lname IS ‘last name’

可以分别使用数据字典视图ALL_TAB_COMMENTS 和ALL_COL_COMMENTS,查看表和列的所有注释信息

6、修改已存在的数据表

要修改已经存在的表,某些修改是允许的,有些是不允许的

6.1、向已存在的表添加新列

ALTER TABLE tablename

ADD colname datatype;

6.2、修改已存在的列

ALTER TABLE tablename

MODIFY colname newdatatype;

6.3、添加一个约束

ALTER TABLE tablename

ADD [CONSTRAINT constraint_name] constraint_type(Column name);

6.4、删除一列

ALTER TABLE tablename

DROP COLUMN columnname;

6.5、删除一个约束

ALTER TABLE tablename

DROP CONSTRAINT constraintname;

6.6、启动/禁用约束

启用或禁用约束的格式是:

ALTER TABLE tablename

ENABLE | DISABLE CONSTRAINT constraintname;

6.7、重新命名一列

ALTER TABLE tablename RENAME COLUMN oldname TO newname;

6.8、重新命名一个约束

ALTER TABLE tablename RENAME CONSTRAINT oldname TO newname;

6.9、修改表的存储属性

ALTER TABLE tablename STORAGE(NEXT nK)

7、删除数据表

当删除一张数据表时,表中所有的数据以及表结构将被永久性地删除

DROP TABLE tablename;

8、重新命名数据表

RENAME oldtablename TO newtablename;

oracle数据库用的是什么语言

Oracle的查询语言当然是所有数据库公认的SQL语句了;

Oracle的编程语言是PL/SQL语言,这是Oracle独有的~~

如何查看Oracle数据库的字符编码

1、SELECT value$ FROM sys.props$ WHERE name = 'NLS_CHARACTERSET' ;

--查询oracle 相关参数

2、SELECT * FROM NLS_DATABASE_PARAMETERS ;

扩展资料:

Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。

可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的 适应高吞吐量的数据库解决方案。

ORACLE数据库系统是美国ORACLE公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器(CLIENT/SERVER)或B/S体系结构的数据库之一。

比如SilverStream就是基于数据库的一种中间件。ORACLE数据库是目前世界上使用最为广泛的数据库管理系统,作为一个通用的数据库系统,它具有完整的数据管理功能;作为一个关系数据库,它是一个完备关系的产品;作为分布式数据库它实现了分布式处理功能。

但它的所有知识,只要在一种机型上学习了ORACLE知识,便能在各种类型的机器上使用它。

Oracle数据库最新版本为Oracle Database 12c。Oracle数据库12c 引入了一个新的多承租方架构,使用该架构可轻松部署和管理数据库云。

此外,一些创新特性可最大限度地提高资源使用率和灵活性,如Oracle Multitenant可快速整合多个数据库,而Automatic Data Optimization和Heat Map能以更高的密度压缩数据和对数据分层。

这些独一无二的技术进步再加上在可用性、安全性和大数据支持方面的主要增强,使得Oracle数据库12c 成为私有云和公有云部署的理想平台。

参考资料:Oracle数据库--百度百科


分享文章:oracle如何查看语言,oracle查询语言
浏览地址:http://myzitong.com/article/hsccsc.html