oracle数据库问题
没有必要,服务器配置多cpu或者多核cpu,是为了提高操作系统运行效率或网络呑吐效率的,特别是对于安装了多种操作系统,如,多windows,unix,android等等,特别有意义。多处理器使你的服务器效率提高了,你的数据库,也包括多数据库的效率自然就提高了。可安装多少个数据库同有多少个处理器没有直接关系的,一个cpu也可以安装多个数据库的。
第一个问题,你没写分号(sqlplus必须写分号)。没写分号,sqlplus认为sql语句没有写完,2表示第二行。
另外,根据你的数据库的版本不同,你可能还要授权dba权限(grant dba to XXXX)。有些oracle的版本,sysdba和dba是两个权限。
撤销操作是有DROP完成
SQL 约束
约束用于限制加入表的数据的类型。
可以在创建表时规定约束(通过 CREATE TABLE 语句),或者在表创建之后也可以(通过 ALTER TABLE 语句)。
我们将主要探讨以下几种约束:
NOT NULL
UNIQUE
PRIMARY KEY
FOREIGN KEY
CHECK
DEFAULT
注释:在下面的章节,我们会详细讲解每一种约束。
SQL NOT NULL 约束
NOT NULL 约束强制列不接受 NULL 值。
NOT NULL 约束强制字段始终包含值。这意味着,如果不向字段添加值,就无法插入新纪录或者更新记录。
下面的 SQL 语句强制 "Id_P" 列和 "LastName" 列不接受 NULL 值:
CREATE TABLE Persons
(
Id_P int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)
SQL UNIQUE 约束UNIQUE 约束唯一标识数据库表中的每条记录。UNIQUE 和 PRIMARY KEY 约束均为列或列集合提供了唯一性的保证。PRIMARY KEY 拥有自动定义的 UNIQUE 约束。请注意,每个表可以有多个 UNIQUE 约束,但是每个表只能有一个 PRIMARY KEY 约束。SQL UNIQUE Constraint on CREATE TABLE下面的 SQL 在 "Persons" 表创建时在 "Id_P" 列创建 UNIQUE 约束:MySQL:CREATE TABLE Persons
(
Id_P int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
UNIQUE (Id_P)
)
SQL Server / Oracle / MS Access:
CREATE TABLE Persons
(
Id_P int NOT NULL UNIQUE,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)
如果需要命名 UNIQUE 约束,以及为多个列定义 UNIQUE 约束,请使用下面的 SQL 语法:
MySQL / SQL Server / Oracle / MS Access:
CREATE TABLE Persons
(
Id_P int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CONSTRAINT uc_PersonID UNIQUE (Id_P,LastName)
)
撤销 UNIQUE 约束
如需撤销 UNIQUE 约束,请使用下面的 SQL:
MySQL:
ALTER TABLE Persons
DROP INDEX uc_PersonID
SQL Server / Oracle / MS Access:
ALTER TABLE Persons
DROP CONSTRAINT uc_PersonID
SQL PRIMARY KEY 约束PRIMARY KEY 约束唯一标识数据库表中的每条记录。主键必须包含唯一的值。主键列不能包含 NULL 值。每个表应该都一个主键,并且每个表只能有一个主键。SQL PRIMARY KEY Constraint on CREATE TABLE下面的 SQL 在 "Persons" 表创建时在 "Id_P" 列创建 PRIMARY KEY 约束:MySQL:CREATE TABLE Persons
(
Id_P int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
PRIMARY KEY (Id_P)
)
SQL Server / Oracle / MS Access:
CREATE TABLE Persons
(
Id_P int NOT NULL PRIMARY KEY,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)
如果需要命名 PRIMARY KEY 约束,以及为多个列定义 PRIMARY KEY 约束,请使用下面的 SQL 语法:
MySQL / SQL Server / Oracle / MS Access:
CREATE TABLE Persons
(
Id_P int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CONSTRAINT uc_PersonID PRIMARY KEY (Id_P,LastName)
)
SQL PRIMARY KEY Constraint on ALTER TABLE
如果在表已存在的情况下为 "Id_P" 列创建 PRIMARY KEY 约束,请使用下面的 SQL:
MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Persons
ADD PRIMARY KEY (Id_P)
如果需要命名 PRIMARY KEY 约束,以及为多个列定义 PRIMARY KEY 约束,请使用下面的 SQL 语法:
MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Persons
ADD CONSTRAINT pk_PersonID PRIMARY KEY (Id_P,LastName)
注释:如果您使用 ALTER TABLE 语句添加主键,必须把主键列声明为不包含 NULL 值(在表首次创建时)。
撤销 PRIMARY KEY 约束
如需撤销 PRIMARY KEY 约束,请使用下面的 SQL:
MySQL:
ALTER TABLE Persons
DROP PRIMARY KEY
SQL Server / Oracle / MS Access:
ALTER TABLE Persons
DROP CONSTRAINT pk_PersonID
SQL FOREIGN KEY 约束一个表中的 FOREIGN KEY 指向另一个表中的 PRIMARY KEY。让我们通过一个例子来解释外键。请看下面两个表:"Persons" 表:Id_P LastName FirstName Address City 1 Adams John Oxford Street London 2 Bush George Fifth Avenue New York 3 Carter Thomas Changan Street Beijing "Orders" 表:Id_O OrderNo Id_P 1 77895 3 2 44678 3 3 22456 1 4 24562 1 请注意,"Orders" 中的 "Id_P" 列指向 "Persons" 表中的 "Id_P" 列。"Persons" 表中的 "Id_P" 列是 "Persons" 表中的 PRIMARY KEY。"Orders" 表中的 "Id_P" 列是 "Orders" 表中的 FOREIGN KEY。FOREIGN KEY 约束用于预防破坏表之间连接的动作。FOREIGN KEY 约束也能防止非法数据插入外键列,因为它必须是它指向的那个表中的值之一。SQL FOREIGN KEY Constraint on CREATE TABLE下面的 SQL 在 "Orders" 表创建时为 "Id_P" 列创建 FOREIGN KEY:MySQL:CREATE TABLE Orders
(
O_Id int NOT NULL,
OrderNo int NOT NULL,
Id_P int,
PRIMARY KEY (O_Id),
FOREIGN KEY (Id_P) REFERENCES Persons(Id_P)
)
SQL Server / Oracle / MS Access:
CREATE TABLE Orders
(
O_Id int NOT NULL PRIMARY KEY,
OrderNo int NOT NULL,
Id_P int FOREIGN KEY REFERENCES Persons(Id_P)
)
如果需要命名 FOREIGN KEY 约束,以及为多个列定义 FOREIGN KEY 约束,请使用下面的 SQL 语法:
MySQL / SQL Server / Oracle / MS Access:
CREATE TABLE Orders
(
O_Id int NOT NULL,
OrderNo int NOT NULL,
Id_P int,
PRIMARY KEY (O_Id),
CONSTRAINT fk_PerOrders FOREIGN KEY (Id_P)
REFERENCES Persons(Id_P)
)
SQL FOREIGN KEY Constraint on ALTER TABLE
如果在 "Orders" 表已存在的情况下为 "Id_P" 列创建 FOREIGN KEY 约束,请使用下面的 SQL:
MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Orders
ADD FOREIGN KEY (Id_P)
REFERENCES Persons(Id_P)
如果需要命名 FOREIGN KEY 约束,以及为多个列定义 FOREIGN KEY 约束,请使用下面的 SQL 语法:
MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Orders
ADD CONSTRAINT fk_PerOrders
FOREIGN KEY (Id_P)
REFERENCES Persons(Id_P)
撤销 FOREIGN KEY 约束
如需撤销 FOREIGN KEY 约束,请使用下面的 SQL:
MySQL:
ALTER TABLE Orders
DROP FOREIGN KEY fk_PerOrders
SQL Server / Oracle / MS Access:
ALTER TABLE Orders
DROP CONSTRAINT fk_PerOrders
SQL CHECK 约束CHECK 约束用于限制列中的值的范围。如果对单个列定义 CHECK 约束,那么该列只允许特定的值。如果对一个表定义 CHECK 约束,那么此约束会在特定的列中对值进行限制。SQL CHECK Constraint on CREATE TABLE下面的 SQL 在 "Persons" 表创建时为 "Id_P" 列创建 CHECK 约束。CHECK 约束规定 "Id_P" 列必须只包含大于 0 的整数。My SQL:CREATE TABLE Persons
(
Id_P int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CHECK (Id_P>0)
)
SQL Server / Oracle / MS Access:
CREATE TABLE Persons
(
Id_P int NOT NULL CHECK (Id_P>0),
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)
如果需要命名 CHECK 约束,以及为多个列定义 CHECK 约束,请使用下面的 SQL 语法:
MySQL / SQL Server / Oracle / MS Access:
CREATE TABLE Persons
(
Id_P int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CONSTRAINT chk_Person CHECK (Id_P>0 AND City='Sandnes')
)
SQL CHECK Constraint on ALTER TABLE
如果在表已存在的情况下为 "Id_P" 列创建 CHECK 约束,请使用下面的 SQL:
MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Persons
ADD CHECK (Id_P>0)
如果需要命名 CHECK 约束,以及为多个列定义 CHECK 约束,请使用下面的 SQL 语法:
MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Persons
ADD CONSTRAINT chk_Person CHECK (Id_P>0 AND City='Sandnes')
撤销 CHECK 约束
如需撤销 CHECK 约束,请使用下面的 SQL:
SQL Server / Oracle / MS Access:
ALTER TABLE Persons
DROP CONSTRAINT chk_Person
SQL DEFAULT 约束DEFAULT 约束用于向列中插入默认值。如果没有规定其他的值,那么会将默认值添加到所有的新纪录。SQL DEFAULT Constraint on CREATE TABLE下面的 SQL 在 "Persons" 表创建时为 "City" 列创建 DEFAULT 约束:My SQL / SQL Server / Oracle / MS Access:CREATE TABLE Persons
(
Id_P int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255) DEFAULT 'Sandnes'
)
通过使用类似 GETDATE() 这样的函数,DEFAULT 约束也可以用于插入系统值:
CREATE TABLE Orders
(
Id_O int NOT NULL,
OrderNo int NOT NULL,
Id_P int,
OrderDate date DEFAULT GETDATE()
)
SQL DEFAULT Constraint on ALTER TABLE
如果在表已存在的情况下为 "City" 列创建 DEFAULT 约束,请使用下面的 SQL:
MySQL:
ALTER TABLE Persons
ALTER City SET DEFAULT 'SANDNES'
SQL Server / Oracle / MS Access:
ALTER TABLE Persons
ALTER COLUMN City SET DEFAULT 'SANDNES'
撤销 DEFAULT 约束
如需撤销 DEFAULT 约束,请使用下面的 SQL:
MySQL:
ALTER TABLE Persons
ALTER City DROP DEFAULT
SQL Server / Oracle / MS Access:
ALTER TABLE Persons
ALTER COLUMN City DROP DEFAULT
SQL DROP INDEX 语句我们可以使用 DROP INDEX 命令删除表格中的索引。用于 Microsoft SQLJet (以及 Microsoft Access) 的语法:DROP INDEX index_name ON table_name
用于 MS SQL Server 的语法:
DROP INDEX table_name.index_name
用于 IBM DB2 和 Oracle 语法:
DROP INDEX index_name
用于 MySQL 的语法:
ALTER TABLE table_name DROP INDEX index_name
SQL DROP TABLE 语句
DROP TABLE 语句用于删除表(表的结构、属性以及索引也会被删除):
DROP TABLE 表名称
SQL DROP DATABASE 语句
DROP DATABASE 语句用于删除数据库:
DROP DATABASE 数据库名称
SQL TRUNCATE TABLE 语句
如果我们仅仅需要除去表内的数据,但并不删除表本身,那么我们该如何做呢?
请使用 TRUNCATE TABLE 命令(仅仅删除表格中的数据):
TRUNCATE TABLE 表名称
ALTER TABLE 语句ALTER TABLE 语句用于在已有的表中添加、修改或删除列。SQL ALTER TABLE 语法如需在表中添加列,请使用下列语法:ALTER TABLE table_name
ADD column_name datatype
要删除表中的列,请使用下列语法:
ALTER TABLE table_name
DROP COLUMN column_name
注释:某些数据库系统不允许这种在数据库表中删除列的方式 (DROP COLUMN column_name)。
要改变表中列的数据类型,请使用下列语法:
ALTER TABLE table_name
ALTER COLUMN column_name datatype
原始的表 (用在例子中的):
Persons 表:
Id LastName FirstName Address City 1 Adams John Oxford Street London 2 Bush George Fifth Avenue New York 3 Carter Thomas Changan Street Beijing
SQL ALTER TABLE 实例
现在,我们希望在表 "Persons" 中添加一个名为 "Birthday" 的新列。
我们使用下列 SQL 语句:
ALTER TABLE Persons
ADD Birthday date
请注意,新列 "Birthday" 的类型是 date,可以存放日期。数据类型规定列中可以存放的数据的类型。
新的 "Persons" 表类似这样:
Id LastName FirstName Address City Birthday 1 Adams John Oxford Street London 2 Bush George Fifth Avenue New York 3 Carter Thomas Changan Street Beijing
改变数据类型实例
现在我们希望改变 "Persons" 表中 "Birthday" 列的数据类型。
我们使用下列 SQL 语句:
ALTER TABLE Persons
ALTER COLUMN Birthday year
请注意,"Birthday" 列的数据类型是 year,可以存放 2 位或 4 位格式的年份。
DROP COLUMN 实例
接下来,我们删除 "Person" 表中的 "Birthday" 列:
ALTER TABLE Person
DROP COLUMN Birthday
Persons 表会成为这样:
Id LastName FirstName Address City 1 Adams John Oxford Street London 2 Bush George Fifth Avenue New York 3 Carter Thomas Changan Street Beijing
A,A,B,D,B,C
23题我个人觉得应该是先alter 在 drop
比如:alter table TABLE_NAME drop constraint CONSTRAINT_NAME cascade
一楼应该是对的!
20 A
21 A
22 B
23 A
24 B
25 C
如何谙racle数据库SQL性能的稳定性
调整数据结构的设计。这一部分在开发信息系统之前完成,程序员需要考虑是否使用ORACLE数据库的分区功能,对于经常访问的数据库表是否需要建立索引等。
0racle数据库报row-00001错误,请问怎么解决?
row-00001是不能分配内存 增大虚拟内存 和物理内存 或者降低其他应用程序对服务器内存资源的消耗。
连接mysql的url写法
这样:jdbc:mysql:\/\/<hostname>[<:3306>]\/<dbname> jdbc:mysql:\/\/localhost:3306\/db_librarySys Connection conn = DriverManager.getConnection ("jdbc:mysql:\/\/localhost:3306\/db_librarySys?user=root&password=1234");Connection conn = DriverManager.getConnection ("jdbc:mysql:\/\/localhost:3306\/...
oracl 数据存在显示是 否则显示否
这是判断数据是否存在_racle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。_窃谑菘饬煊蛞恢贝τ诹煜鹊匚坏牟贰?梢运_racle数据库系统是世界上流行的关系数据库管理系统,_低晨梢浦残院谩⑹褂梅奖恪⒐δ芮浚视糜诟骼啻蟆⒅小⑿∥⒒肪场?_且恢指咝_实摹...
Oracle数据库插入日期型数据的方法
Oracle数据库插入日期型数据的方法 racle数据库插入日期型数据,应该怎么下手呢?下面我为大家整理了关于Oracle数据库插入日期型数据的方法,希望能为你提供帮助:往Oracle数据库中插入日期型数据(to_date的用法)INSERT INTO FLOOR VALUES ( to_date ( '2007-12-20 18:31:34' , 'YYYY-MM-DD HH24:...
电脑数据库是个什么意思
通俗来讲就是存储和管理数据的仓库。单从概念来说,只要能储存数据的都能算数据库,Excel当然也能做数据库。但是,我们常说的「数据库」,比如SQL Server、MySQL之类的,实际上说的是数据库管理系统,数据库应用程序可以存储数据之间的关系,其中电子表格工作表是独立实体。数据库应用程序可以更容易地在...
下列关于0racle数据库物理存储的叙述中,不正确的是( )。
【答案】:A 在Oracle中,物理存储按数据块、盘区和段来组织。存储粒度的最好选择是数据块,它是一个固定的字节数。盘区是特定数量的连续数据块。一个段是一组分配了特定数据结构的盘区。存储空间大小的选择是以数据块为单位。对于一张给定的表,数据可能存放在数据段中,而索引可能存放在索引段中。
请问PDO为什么连不上数据库
貌似pdo_oci驱动中的字符集问题,重新配置php_oci 驱动,检查oracle中设置的字符集类型
sql数据转移问题
数据库是什么类型的,如果是ACCESS、VFP的,直接拷;ORRACLE、MYSSQL要用数据库工具转移
西北地区基于3S技术野外地质工作管理与服务体系构建
1.北斗信息数据库安装 北斗信息数据库采用Oracle数据库,数据库版本为O racle10.2.0。安装于北斗中心式指挥机上,安装过程如下。 (1)Oracle数据库安装 本次数据库采用O racle10.2.0,安装与配置过程参考“O racle数据库安装手册”。 (2)北斗数据库导入 首先将BDServer文件夹拷贝到北斗中心式指挥机上,文件夹内容如图...
於卫青维: 第一个问题,你没写分号(sqlplus必须写分号).没写分号,sqlplus认为sql语句没有写完,2表示第二行.另外,根据你的数据库的版本不同,你可能还要授权dba权限(grant dba to XXXX).有些oracle的版本,sysdba和dba是两个权限.
遂昌县18388456578: Oracle数据库出现问题 - ?
於卫青维: 很遗憾,这个东西的意思是,你的数据文件出现了坏块.看文件名像是传说中的回滚段.新建一个回滚段表空间,把以前坏了的回滚段表空间drop掉,在新的回滚段表空间上建回滚段,所要建的回滚段和以前的一摸一样,让以后产生的回滚数据都写到新建的回滚段上.保留现场很重要,同时祝问题早日解决.
遂昌县18388456578: Oracle数据库应用开发常见问题有什么?怎么解决? ?
於卫青维: 一、硬件平台:SUN Ultra Enterprise 3000 操作系统:Solaris 2.5(中文简体) 磁盘:4.2GB 内存:256MB ORACLE B版本:7.3.2.1 安装目录:/database/oracle(/...
遂昌县18388456578: oracle数据库的问题 - ?
於卫青维: Oracle8i以后,Oracle基本上是用Java写的,所以他能很快推出不同操作系统的同一代产品,极大降低的开发成本.因此,它的产品在主流操作系统中,系统能运行java就能运行oracle,反之,要运行oracle就在系统进程中一定会有java运行.不...
遂昌县18388456578: oracle数据库问题 - ?
於卫青维: 1.进行逻辑备份与回复 方法:使用exp 和 imp这两个命令 本地电脑使用exp命令导出dmp文件.将这个文件复制到其它电脑上.在其它电脑上执行imp命令导入该dmp文件进行数据回复.2.进行物理备份 方法: 将oracle的数据库文件全部复制到其它电脑.其它电脑上用这些文件替换掉原来的文件,完成数据库迁移.一般来说,数据库文件放在%oracle_home%product\10.1.0\oradata\orcl 这个目录下.其中orcl对应的是数据库的名字. 当然前提是数据库版本是10.1 3.直接导出insert sql 语句
遂昌县18388456578: Oracle 数据库的问题?
於卫青维: Oracle存储的最小单位是blocks 数据存放在“块”中.一个块占用一定的磁盘空间. 特别注意的是,这里的“块”是Oracle的“数据块”,不是操作系统的“块”.工作原理,你自己去Oracle官网查kb,也可以看数据库原理一书 会涉及到二叉树的基础原理. 优化要看你运行的系统平台和跑的数据量,找到瓶颈在调整优化的!
遂昌县18388456578: Oracle数据库运行错误的解决方法是怎样的? ?
於卫青维: Oracle数据库运行错误的解决方法: 错误1:ORA-01034: ORACLE not available Oracle安装、启动后用sqlplus "/ as sysdba" 登陆,执行任何select语句都出现错误: ...
遂昌县18388456578: 在oracle数据库问题?
於卫青维: delete from table where id in (查询语句)id是你的主键 查询语句也要 select 你的主键 from table.... 这个针对单一主键的记录
遂昌县18388456578: Oracle数据库的问题?
於卫青维: 看看环境变量里面$Oracle_HOME的值是否正确? 到sql plus安装目录下,查看tnsnames文件里面是否添加了目标数据库连接字符串. 如果能进sql plus,进不去数据库,用里面help里面的小工具试试,看环境哪里出的问题. 也可能是系统不支持当前版本sqlplus,换个最新版本的试试.顺便本机装个ORACLE CLIENT工具,尝试能不能连上.
遂昌县18388456578: ORACLE 数据库问题,数据库无响应 - ?
於卫青维: 1、进行正确的维护操作 很多的数据库无响应故障都是由于不正确的维护操作引起的.应避免在业务高峰期做大的维护操作,比如像MOVE、加主外键约束等会长时间锁表的操作.如果的确需要,尽量使用正确的操作方法.比如用online方式重...