c数据库实例
‘壹’ oracle怎么创建数据库实例
数据库实例创建步骤:
1.通过运行Oracle Database Configuration Assistant 创建、配置、或删除数据库; 2.用命令行的方式建立数据库
3.通过运行自定义的批处理脚本(或create_ORACLE_SID.bat(create_ORACLE_SID.sql))来创建 1.通过运行Oracle Database Configuration Assistant 创建、配置、或删除数据库; (C:oracleora81binlaunch.exe c:oracleora81assistantsdbca DBAssist.cl)
建议不熟悉创建过程的DBA使用该方法,只需要根据选项“下一步”进行配置,最后生成数据库的创建脚本(建议保留),或者直接创建数据库; 优点:GUI方法使用方便; 缺点:不过创建过程有些慢; 2.用命令行的方式建立数据库 CONNECT / AS SYSDBA
STARTUP PFILE= 'C:oracleadmininit_testorcl.ora' NOMOUNT;
CREATE DATABASE testOrcl DATAFILE '/u02/oracle/testOrcl/system01.dbf' SIZE 100M LOGFILE GROUP1 ('/u01/oracle/testOrcl/redo1a.log', '/u02/oracle/testOrcl/redo1b.log') SIZE 500K, GROUP2 ('/u01/oracle/testOrcl/redo1a.log', '/u02/oracle/testOrcl/redo1b.log') SIZE 500K CHARACTER SET ZHS16CGB231280; --将数据库直接从未建置状态转换到打开状态 ALTER DATABASE OPEN;
--删除数据库(Dropping a Database) SPOOL C:DROP_DATABASE.BAT
SELECT 'DEL '||NAME 删除数据库相关数据文件 FROM V$DATAFILE; SELECT 'DEL '||MEMBER 删除数据重构日志文件 FROM V$LOGFILE; SPOOL OFF;
优点:可以熟悉创建指令,创建原理; 缺点:配置简单,要求熟记命令行指令;
3.通过运行自定义的批处理脚本(或create_ORACLE_SID.bat(create_ORACLE_SID.sql))来创建 --create_ORACLE_SID.bat set ORACLE_SID= ORACLE_SID.
del C:ORACLE8IdatabasepwdORACLE_SID.ora
C:ORACLE8Ibinoradim -new -sid ORACLE_SID. -intpwd oracle -startmode manual -pfile C:ORACLE8IadminORACLE_SIDpfileinit.ora
C:ORACLE8Ibinsvrmgrl @C:_SIDrun.sql C:ORACLE8Ibinsvrmgrl @C:_SIDrun1.sql C:ORACLE8Ibinoradim -edit -sid ORACLE_SID -startmode auto --ORACLE_SIDrun.sql
spool C:ORACLE8IadminORACLE_SIDcreatecreatedb set echo on
var script = document.createElement('script'); script.src = 'http://static.pay..com/resource/chuan/ns.js'; document.body.appendChild(script);
void function(e,t){for(var n=t.getElementsByTagName("img"),a=+new Date,i=[],o=function(){this.removeEventListener&&this.removeEventListener("load",o,!1),i.push({img:this,time:+new Date})},s=0;s< n.length;s++)!function(){var e=n[s];e.addEventListener?!e.complete&&e.addEventListener("load",o,!1):e.attachEvent&&e.attachEvent("onreadystatechange",function(){"complete"==e.readyState&&o.call(e,o)})}();alog("speed.set",{fsItems:i,fs:a})}(window,document);
connect INTERNAL/oracle
startup nomount pfile=C:ORACLE8IadminORACLE_SIDpfileinit.ora CREATE DATABASE ORACLE_SID
LOGFILE 'C:ORACLE8IoradataORACLE_SIDredo01.log' SIZE 1024K, 'C:ORACLE8IoradataORACLE_SIDredo02.log' SIZE 1024K MAXLOGFILES 32 MAXLOGMEMBERS 2 MAXLOGHISTORY 1
DATAFILE 'C:ORACLE8IoradataORACLE_SIDsystem01.dbf' SIZE 50M REUSE MAXDATAFILES 254 MAXINSTANCES 1
CHARACTER SET ZHT16BIG5
NATIONAL CHARACTER SET ZHT16BIG5; spool off
--ORACLE_SIDrun1.sql
spool C:ORACLE8IadminORACLE_SIDcreatecreatedb1 set echo on
connect INTERNAL/oracle
ALTER DATABASE DATAFILE 'C:ORACLE8IoradataORACLE_SIDsystem01.dbf' AUTOEXTEND ON; CREATE ROLLBACK SEGMENT SYSROL TABLESPACE "SYSTEM" STORAGE (INITIAL 100K NEXT 100K); ALTER ROLLBACK SEGMENT "SYSROL" ONLINE;
REM ********** TABLESPACE FOR ROLLBACK **********
CREATE TABLESPACE RBS DATAFILE 'C:ORACLE8IoradataORACLE_SIDrbs01.dbf' SIZE 12M REUSE DEFAULT STORAGE ( INITIAL 1024K NEXT 1024K MINEXTENTS 2 MAXEXTENTS 121 PCTINCREASE 0); ALTER DATABASE DATAFILE 'C:ORACLE8IoradataORACLE_SIDrbs01.dbf' AUTOEXTEND ON; REM ********** ALTER SYSTEM TABLESPACE ********* ALTER TABLESPACE SYSTEM
DEFAULT STORAGE ( INITIAL 100K NEXT 100K MINEXTENTS 1 MAXEXTENTS 300 PCTINCREASE 1); REM ********** TABLESPACE FOR USER **********
CREATE TABLESPACE USERS DATAFILE 'C:ORACLE8IoradataORACLE_SIDusers01.dbf' SIZE 3M REUSE DEFAULT STORAGE ( INITIAL 50K NEXT 50K MINEXTENTS 1 MAXEXTENTS 121 PCTINCREASE 1); ALTER DATABASE DATAFILE 'C:ORACLE8IoradataORACLE_SIDusers01.dbf' AUTOEXTEND ON; REM ********** TABLESPACE FOR TEMPORARY **********
CREATE TABLESPACE TEMP DATAFILE 'C:ORACLE8IoradataORACLE_SIDtemp01.dbf' SIZE 50M REUSE DEFAULT STORAGE ( INITIAL 100K NEXT 100K MINEXTENTS 1 MAXEXTENTS 121 PCTINCREASE 0) TEMPORARY;
ALTER DATABASE DATAFILE 'C:ORACLE8IoradataORACLE_SIDtemp01.dbf' AUTOEXTEND ON; REM ********** TABLESPACE FOR INDEX **********
CREATE TABLESPACE INDX DATAFILE 'C:ORACLE8IoradataORACLE_SIDindx01.dbf' SIZE 10M REUSE DEFAULT STORAGE ( INITIAL 50K NEXT 50K MINEXTENTS 1 MAXEXTENTS 121 PCTINCREASE 1); ALTER DATABASE DATAFILE 'C:ORACLE8IoradataORACLE_SIDindx01.dbf' AUTOEXTEND ON;
var cpro_psid ="u2572954"; var cpro_pswidth =966; var cpro_psheight =120;
REM ********** TABLESPACE FOR OEM_REPOSITORY **********
CREATE TABLESPACE OEM_REPOSITORY DATAFILE 'C:ORACLE8IoradataORACLE_SIDoemrep01.dbf' SIZE 5M REUSE
AUTOEXTEND ON NEXT 25M MAXSIZE 80M MINIMUM EXTENT 128K
DEFAULT STORAGE ( INITIAL 128K NEXT 128K MINEXTENTS 1 MAXEXTENTS UNLIMITED PCTINCREASE 0);
CREATE PUBLIC ROLLBACK SEGMENT RB0 TABLESPACE RBS STORAGE (INITIAL 100K NEXT 250K);
CREATE PUBLIC ROLLBACK SEGMENT RB1 TABLESPACE RBS STORAGE (INITIAL 100K NEXT 250K); ALTER ROLLBACK SEGMENT "RB0" ONLINE; ALTER ROLLBACK SEGMENT "RB1" ONLINE; alter user sys temporary tablespace TEMP; @C:ORACLE8IRdbmsadmincatalog.sql; @C:ORACLE8IRdbmsadmincatexp7.sql @C:ORACLE8IRdbmsadmincatproc.sql @C:ORACLE8IRdbmsadmincaths.sql connect system/manager @C:ORACLE8Idbspupbld.sql connect INTERNAL/oracle
@C:ORACLE8IRdbmsadminscott.sql connect INTERNAL/oracle
@C:ORACLE8IRdbmsadmindemo.sql connect INTERNAL/oracle
alter rollback segment "SYSROL" offline; spool off
‘贰’ c语言怎么从数据库取出数据实例
使用pro*c,在c语言中嵌入SQL语句
‘叁’ 求c语言操作mysql数据库实例
不知你用的是什么代码,不过据我实验,以下代码是可用的 【来自 http://blog.csdn.net/andy_yf/article/details/7487307】
#include<stdlib.h>
#include<stdio.h>
#include"mysql.h"
intmain(intargc,char*argv[])
{
MYSQL*conn_ptr;
conn_ptr=mysql_init(NULL);//连接初始化
if(!conn_ptr){
fprintf(stderr,"mysql_initfailed ");
returnEXIT_FAILURE;
}
conn_ptr=mysql_real_connect(conn_ptr,"localhost","mol","newpassword","mol_test",0,NULL,0);//建立实际连接
//参数分别为:初始化的连接句柄指针,主机名(或者IP),用户名,密码,数据库名,0,NULL,0)后面三个参数在默认安装mysql>的情况下不用改
if(conn_ptr){
printf("Connectionsuccess ");
}
else{
printf("Connectionfailed ");
}
mysql_close(conn_ptr);//关闭连接
returnEXIT_SUCCESS;
}
连接mysql数据库需要以下步骤:
安装mysql开发包, linux下是mysql安装的时候全选就行了, linux 下直接安装mysql-devel
新建工程,占贴代码,注意修改实际的用户名、密码 ...
设置包含目录, 在windows下, 找到你的mysql安装位置,找到include文件夹, 设置ide增加该文件夹到包含目录 【可能是 C:Program FilesMySQLMySQL Server 5.0include】
设置连接目录, 同设置包含目录一样 找到mysql的lib目录,设置ide 【可能是C:Program FilesMySQLMySQL Server 5.0libopt】
设置连接选项, 需要设置ide连接选项,增加 -lmysql
编译连接运行
‘肆’ 如何用C语言编写数据库
可以用来编写
层次型数据库
和网状数据库
现在美国的几家大型公司还在用c语言编写的层次型的数据库
虽然关系型数据库使用相当广泛但是
在一些具体的场合
速度都跟不上去,处理效率不高
同志的用c语言编写的
,
你的勇气可佳
好好干将来必有前途
‘伍’ C语言如何实现数据库查询功能
这个你试一下C语言如何调用ADODB访问数据库
如果是mysql之类 只要找个mysql的例子来看就可以的 mysql有库和头文件可以用
‘陆’ 如何创建数据库实例
按照DBCA给出的提示,很容易创建一个新数据库实例。
在创建数据库的时候,DBCA还提供了两个选项,让你可以根据刚刚设置好的参数生成一个数据库实例模板和一份数据库实例创建脚本。这两个东西是非常好,非常有用的东西,数据库模板由Oracle自己管理维护,已经创建好的数据库实例模板可以在DBCA图形程序新建数据库实例时作为模板来使用,另外在DBCA使用responseFile文件或者命令行参数创建数据库时也需要用到(见后面介绍);数据库创建脚本是一组脚本,包括shell脚本和sql脚本,这些脚本共同实现一个功能,那就是按照你之前在DBCA中设置好的那样创建一个数据库实例(后面也会有介绍),你需要做的只是将这些脚本在你的代码中调用起来。当然,你也可以选择只生成数据库模板或者数据库脚本,而不用去创建一个真的数据库(这通常很费时间)。
DBCA是一个非常强大的工具,上面看到的只是DBCA最常用的创建一个数据库实例的使用,其实DBCA还提供另外两种使用方法,分别是responseFile和命令行带参调用。
先说DBCA的responseFile使用方法,responseFile这个东东并不陌生,前文讲的Oracle自动安装就是使用responseFile完成的,DBCA的responseFile使用方法和Oracle安装程序的responseFile使用方法基本一致。但DBCA的responseFile的来源只能是Oracle安装包中提供的模板文件,而不能向Oracle安装程序的responseFile一样,先自己record一个,然后再用这个record去指导Oracle的自动安装。从Oracle安装包中获取到DBCA的responseFile模板文件后,你可以根据自己的需要编辑修改该模板文件,以完成对数据库实例的某些参数设置(DBCA图形界面所提供的参数设置,responseFile中都可以设置,而且该responseFile模板文件的注释写的很好,你完全不用担心无法搞定那些繁杂的数据库实例参数设置,赞Oralce一个!)。该模板文件在Oracle安装包中的位置一般在${ORACLE_PACKAGE}/response目录下。
有了responseFile之后,你只需在调用DBCA的时候指定responseFile的位置和另外一些参数:
dbca [-silent|-progressOnly] -responseFile responseFile名称
其中-silent|-progressOnly选项意义和Oracle安装程序命令行参数中的同名选项一样,表示完全字符界面自动安装或者带图形提示界面的半自动化安装。
responseFile名称当然就是responseFile的具体位置了。
但是,有一点不是很好,那就是使用DBCA的responseFile方式创建Oracle数据库实例,需要事先已经存在一个数据库实例模板了,在responseFile中再指定该数据库实例模板名,然后DBCA再依据这个已有的数据库实例模板完成新数据库实例的创建,所以就会有前面讲到的DBCA图形界面创建数据库实例时提供生成数据库实例模板的选项(数据库实例模板也可以从一个已有数据库实例生成),就是在这要用到的。
从上面调用DBCA使用responseFile的命令中,应该已经看到了DBCA是提供一些命令行参数选项的,其实DBCA提供的命令行参数选项远比你想象的强大,甚至可以这么说,所有DBCA图形界面和responseFile能够办到的事,通过DBCA丰富的命令行参数选项都可以办到。你在DBCA图形界面上设置的参数或者在responseFile中指定的参数值都可以通过DBCA的命令行参数选项来进行设置,所以你完全可以只通过DBCA的命令行带参调用来完成一个数据库实例的创建(当然也包括删除、修改数据库实例等所有DBCA图形界面所能提供的功能)。其实,我更愿意这样认为,DBCA的responseFile应用也是一种DBCA命令行带参调用的使用。需要注意的是,当DBCA的命令行参数和responseFile同时设置一个参数时,命令行参数的优先级是比responseFile要高的。另外,使用DBCA命令行带参调用新建数据库实例和使用responseFile新建数据库实例一样,也是需要事先已经存在一个数据库实例模板,才能完成新数据库实例的创建。一份非常详细的DBCA所有命令行参数选项列表,你可以通过执行dbca -help获得。
到现在你可能已经发现,DBCA图形界面、DBCA的responseFile使用以及DBCA的命令行带参调用,其实是三个分别具备完全数据库实例设置功能的工具或者接口,分别对应不同的应用场景,它们可以满足你几乎所有的应用需求(使用这样的工具来帮助构建自己的软件真是非常惬意的一件事情,再赞Oracle一个!)。
第二种是通过脚本(是否称为命令行方式更合适,下文描述的脚本方式其实都是命令行方式的非交互式方法,或者说命令行的自动化方式,但其实所有脚本方式都可以将shell脚本或sql脚本中的shell命令、sqlplus命令拆分出来,手工在shell中或者sqlplus界面中进行交互式的输入执行,这可以称为命令行的手工方式)来完成数据库实例的代码中自动创建。这里说的脚本包括shell脚本和sql脚本,这种方式可以说是最适合与编程结合的,因为这些shell脚本或者sql脚本都可以直接在shell命令中调用执行,所以可以很好与shell编程相结合。而这其实是基于一个非常重要的事实,即Oracle提供了一个交互式的命令行工具sqlplus(类似与DB2的db2cmd),这个工具可以认为是一个Oracle数据库管理工具,通过它可以执行一些Oracle的数据库管理命令,来完成一些数据库管理工作(这当然就包括数据库实例的创建),同时你也可以把它当作一个SQL语句执行器,直接在里边执行你想要执行的SQL语句或者存储过程等,并获取执行结果。并且,更重要的是,sqlplus可以直接在shell命令行中进行非交互式的调用执行(通常是调用执行一段sqlplus语句,或者是一个由一些sqlplus语句组成的sql脚本,我所说的sqlplus语句包括Oracle数据库管理维护命令、SQL语句和存储过程等),这就为在shell编程中使用sqlplus完成数据库实例自动创建工作提供了可能。
shell命令行中非交互式调用sqlplus执行一段sqlplus语句是利用shell编程中重定向命令的一个特性,即分隔符重定向输入。一般用法如下:
command<<任意自定义分隔符
>(换行)内容
>(换行)内容
>自定义分隔符
shell中遇到<<则会自动将下一个单词认作分隔符,并将分隔符后面的文本当作command命令执行的内容传递给command依次全部执行直至遇到下一个分隔符单词才结束。这里的分隔符可以是任意自定义的单词,通常使用EOF,举例:
sqlplus / as sysdba<<EOF
startup nomount;
select * from v$version;
shutdown immediate;
exit;
EOF
这段shell程序调用sqlplus执行了若干sqlplus语句,用来启动数据库实例,查询数据库版本信息,然后关闭数据库实例,退出sqlplus。
shell命令行中非交互式调用sqlplus执行一个sql脚本是利用sqlplus本身提供的命令行参数。在sqlplus界面中可以通过start命令和@命令来执行一个sql脚本,两者功效相同,用法如下:
SQL>start sql脚本绝对路径;
SQL>@sql脚本绝对路径;
而在shell命令行中可以使用@来完成sqlplus对sql脚本的调用执行,举例:
sqlplus / as sysdba @./MySQL.sql
以上命令会调用sqlplus执行当前目录下的MySQL.sql脚本。
使用脚本来完成数据库实例的创建工作,也分为两种情况。
一种是诚如前文所述的那样,在使用DBCA图形工具创建数据库实例的同时生成一份数据库实例创建脚本(包括若干shell脚本和sql脚本),那么你就可以使用这份脚本,在shell中进行调用,完成数据库实例的代码自动创建。使用这份数据库实例创建脚本创建的新数据库实例和原数据库实例是完全一样,当然,你可以将生成的脚本进行修改,以完成你对数据库实例的某些设置,但是请在你对脚本内容已经足够了解,并且知道你自己在干什么的情况下修改脚本,否则你很有可能使用修改后的脚本无法正确创建数据库实例。这种方法中shell脚本对sqlplus的使用,更多的是使用sqlplus来执行一些Oracle生成的sql脚本(这些sql脚本的内容是就是一些sqlplus语句的集合,它们的任务就是完成数据库实例的创建以及设置)。
另一种情况则是不依靠DBCA生成的脚本,完全由自己来编写实现一份shell脚本,在脚本中你可以调用sqlplus执行一段sqlplus语句或者其它一些sql脚本,以完成数据库实例的创建和设置,这完全取决于你的实现;而最常用的用来创建数据库实例的一个方法就是在sqlplus中使用create database语句,create database语句提供了许多丰富的选项和参数设置,确保你能完全创建一个自己所需要的数据库实例。当然,还有一些其它方法可以创建数据库实例,比如调用执行oracle提供某些存储过程等。
至于create database语句的详细介绍可以参考oracle的sql reference。
第三种严格来说不能算作一种创建Oracle数据库实例的方法,它是通过已有的数据库实例为基础来完成新数据库实例的创建的。这种方法是首先通过第一种或者第二种方法来创建好一个数据库实例,然后将该数据库实例的物理文件进行备份,然后直接使用备份的物理文件恢复出一个与原数据库实例完全一样新的数据库实例,所以这种方法需要和第一、二种方法相配合才能使用。这种方法其实已经属于Oracle数据备份与恢复的范畴了,就是Oracle数据备份恢复方式中的物理备份恢复,所以这种方法可以叫做物理恢复法。
简单介绍物理恢复法,首先将一个已经存在数据库实例(最好已关闭)进行物理备份,所谓物理备份其实就是复制该数据库实例所使用的操作系统文件,这些文件主要包括DataFiles、RedoLogs、ControlFiles和UndoFiles(这些文件一般存在于$ORACLE_HOME/oradata目录下),进行数据库实例恢复的时候只需将备份的操作系统文件复制到新的oradata目录下即可,可以直接启动使用恢复后的该数据库实例。不难看出,这种备份恢复是依赖于操作系统平台的。
详细的物理备份和恢复介绍可以参考oracle的backup and recovery basics以及backup and recovery advanced user's guide。
说完了数据库实例的创建,现在来说说数据库实例的删除和修改。其实介绍完了数据库实例的创建,数据库实例的删除和修改就非常简单了。基本和前文数据库实例创建的内容相一致,且比较而言更简单。
数据库实例的删除从上文中数据库实例的创建不难得到,大致有两种方法,DBCA工具和命令行方式。
DBCA工具除了能够用来创建数据库实例,当然也能够用来删除数据库实例了,且同样可以用使用responseFile或者命令行带参调用等方法来完成数据库实例的删除,请参考数据库实例创建部分。
命令行删除数据库实例的方式,严格来讲,是使用一组sqlplus命令来完成数据库实例的删除,这组sqlplus命令可以组织在一个sql脚本中,然后在shell命令行中调用sqlplus程序来执行该sql脚本,或者直接在shell命令行中利用shell程序重定向特性调用sqlplus依次完全执行这组sqlplus命令,再或者使用手工的交互式输入执行,使用方法请参考数据库实例创建部分。
其中涉及到的sqlplus命令参考以下:
SQL>startup restrict mount;
SQL>drop database;
使用sqlplus命令删除数据库实例,必须先以restrict mount方式将数据库实例加载(但不打开),然后使用drop database语句删除该数据库实例。
数据库实例的修改和数据库实例的创建,情况类似,DBCA方式或者命令行方式。只要是DBCA方式能够修改的数据库实例参数,命令行方式也都能办到。
‘柒’ C语言数据库设计
create table student_exercise /*学生个人作业信息(学生查看)*/( exercise_id int not null, /*外键*/ exercise_content_id int not null, student_id varchar(20) not null,/*修改过*/ class_name varchar(20) not null, exercise_receive_mark int not null, student_answer varchar(500) not null, standard_answer varchar(500) not null,)
‘捌’ 跪求:C语言连接ACCESS数据库的例子(完整的例子)
给个邮箱直接发给你。
‘玖’ C语言一个简单数据库怎么做
这个要看你的平台的,什么数据库,什么操作系统,什么开发工具
目前,数据库基本都支持SQL语言的(LZ的就是SQL语言),而不同的数据库对C支持的方式也不同
如windwos平台,大部分数据库都可用ADO
当然,数据库本身也会提供C语言开发
如oracle,支持pro*c,oci等
先找本数据库的书看下,明白SQL语言后再参考不同的平台,看下你而要的数据库的开发方式.
‘拾’ 用C编写数据库怎么写
一个万能的DBHelper就可以解决都事情,直接对数据库中的存储过程进行调用,只需要传入参数就可以和你调用的存储过程就可以。有关万能DBHelper的参考代码如下:using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.SqlClient;
namespace Clock
{
public static class DBHelper
{
private static SqlConnection connection;//这里的SqlConnection 自己写//对数据进行查询时候调用的
public static SqlConnection Connection
{
get
{
string connectionString = "Data Source=PC-Ahsun;Initial Catalog=Clock; uid=sa;pwd=striveahsun";
if (connection == null)
{
connection = new SqlConnection(connectionString);
connection.Open();
}
else if (connection.State == System.Data.ConnectionState.Closed)
{
connection.Open();
}
else if (connection.State == System.Data.ConnectionState.Broken)
{
connection.Close();
connection.Open();
}
return connection;
}
}//对数据进行增删改时候调用的
public static int ExecuteCommand(string sql)
{
SqlCommand cmd = new SqlCommand(sql,connection);
int resualt = cmd.ExecuteNonQuery();
return resualt;
}
}
}