??xml version="1.0" encoding="utf-8" standalone="yes"?>
格式Q?mysql -hL地址 -u用户?Qp用户密码 1、例1Q连接到本机上的MYSQL?/p>
首先在打开DOSH口Q然后进入目?mysqlbinQ再键入命omysql -h localhost -u root -p+回R,也可以键入命令mysql -u root -pQ回车后提示你输密码Q如果刚安装好MYSQLQ超U用户root是没有密码的Q故直接回R卛_q入到MYSQL中了QMYSQL的提C符是:mysql> 2、例2Q连接到q程L上的MYSQL。假设远E主机的IP为:110.110.110.110Q用户名为root,密码为abcd123。则键入以下命oQ?br /> mysql -h110.110.110.110 -uroot -pabcd123 Q注:u与root可以不用加空|其它也一P 3、退出MYSQL命oQ?exit Q回车)
二、修改密?/strong>
格式Qmysqladmin -u用户?-p旧密?password 新密?/p>
1、例1Q给root加个密码ab12。首先在DOS下进入目录mysqlbinQ然后键入以下命?br /> mysqladmin -uroot -password ab12 注:因ؓ开始时root没有密码Q所?p旧密码一就可以省略了?/p>
2、例2Q再root的密码改为djg345?br /> mysqladmin -uroot -pab12 password djg345
三、增加新用户Q注意:和上面不同,下面的因为是MYSQL环境中的命oQ所以后面都带一个分号作为命令结束符Q?/p>
格式Qgrant select on 数据?* to 用户名@dL identified by "密码" ?、增加一个用户test1密码为abcQ让他可以在ML上登录,q对所有数据库有查询、插入、修攏V删除的权限。首先用以root用户q入MYSQLQ然后键入以下命令: ?、增加一个用户test2密码为abc,让他只可以在localhost上登录,q可以对数据库mydbq行查询、插入、修攏V删除的操作Qlocalhost指本C机,即MYSQL数据库所在的那台LQ,q样用户即用知道test2的密码,他也无法从internet上直接访问数据库Q只能通过MYSQLL上的web|讉K了?br /> grant select,insert,update,delete on mydb.* to test2@localhost identified by "abc"; 如果你不想test2有密码,可以再打一个命令将密码消掉?br /> grant select,insert,update,delete on mydb.* to test2@localhost identified by ""; 下面来看看MYSQL中有x据库斚w的操作。注意:必须首先d到MYSQL中,以下操作都是在MYSQL的提C符下进行的Q而且每个命o以分L束?/p>
1、如果你打命令时Q回车后发现忘记加分P你无重打一遍命令,只要打个分号回R可以了。也是说你可以把一个完整的命o分成几行来打Q完后用分号作结束标志就O(jin)K?br />五、显C命?/p>
1、显C数据库列表?br /> show databases; 2、显C库中的数据表: 3、显C数据表的结构: 4、徏库: 5、徏表: 6、删库和删表: 7、将表中记录清空Q?br /> delete from 表名; 8、显C中的记录Q?br /> select * from 表名;
六、一个徏库和以及插入数据的实?/strong>
drop database if exists school; //如果存在SCHOOL则删?br />create database school; //建立库SCHOOL 注:在徏表中: 如果你在mysql提示W键入上面的命o也可以,但不方便调试。你可以以上命令原样写入一个文本文件中假设为school.sqlQ然后复制到c:\下,q在DOS状态进入目录\mysql\binQ然后键入以下命令: mysql -uroot -p密码 < c:\school.sql 如果成功Q空Z行无M昄Q如有错误,会有提示。(以上命o已经调试Q你只要?/的注释去掉即可用)?/p>
七、将文本数据转到数据库中
1、文本数据应W合的格式:字段数据之间用tab键隔开Qnull值用\n来代? 2、数据传入命?load data local infile "文g? into table 表名;
八、备份数据库Q?/strong>Q命令在DOS的\mysql\bin目录下执行) mysqldump --opt school>school.bbb
]]>
另一U数据存取的方式?ComQ如?3-2所C?br />
Oracle 10g Web数据库的存取如同前文所qͼ有多U数据存取的方式。在本节中,使用的方式如?3-3所C?br />
在Oracle 10g Web数据库的开发环境中Q需要完成下列各工作,才能从Internet上存取Oracle 10g Web数据库,q些工作如下所C:
我们以本书的Misdb数据库ؓ例,请先完成前面章节中的目理Q创?1个表Q分别有EMP、depart、probuy、invoice、customer、delivery、Ord、product、stock、WIP?salgrade表,q插入多条数据。下面,分别介绍讄ODBC、设|Web Server和开发ASPE序?br />
13-2 讄ODBC
ODBC的全名是Open Database ConnectivityQ开攑ּ数据库连接)Q是应用E序q接数据库的接口。由于计机的类型不同,从个机到大型主机,都有自己处理数据的方式,ODBC则可以连接到相同或不相同的数据库理pȝQ因此,ODBC可以l应用程序提供相同的存取数据库的接口Q程序设计员在设计连接不同数据库Ӟ只要处理与ODBC的连接就可以了,而不必针对不同的数据库设计完全不同的E序。特别需要提醒的是,不同的数据库都有自己对应的ODBC驱动E序Q在使用不同数据库的同时Q务必设|正的ODBC驱动E序。就像在本节中,惌q接Oracle 10g数据库,必设|Oracle ODBC驱动E序Q操作步骤如下:
Q?Q选择Start→Programs→Oracle-OraDb10g_home1→Configuration and Migration Tools→Microsoft ODBC AdministratorQ如?3-4所C?br />
TNS Service NameQOracle TNS服务名称Q在创徏数据库时Q一般默认TNS服务名称与数据库名称相同Q请输入MISDBQ读者也可以自定义?
User IDQ用L账户名称Q这里用System账户来测试?br /> Q?Q单击Test Connection按钮Q出现Oracle ODBC Driver Connect对话框,如图13-10所C?br />
Q?Q单击OK按钮Q出现如?3-11所C的对话框?
]]>
MySQL数据库的基本操作
[ 转蝲 ]
一、连接MYSQL
grant select,insert,update,delete on *.* to test1@"%" Identified by "abc";
但例1增加的用h十分危险的,你想如某个h知道test1的密码,那么他就可以在internet上的M一台电(sh)脑上d你的mysql数据库ƈ对你的数据可以ؓ所Ʋؓ了,解决办法见例2?/p>
四、操作技?/strong>
刚开始时才两个数据库Qmysql和test。mysql库很重要它里面有MYSQL的系l信息,我们改密码和新增用户Q实际上是用这个库q行操作?/p>
use mysqlQ?//打开库,学过FOXBASE的一定不会陌生吧
show tables;
describe 表名;
create database 库名;
use 库名Q?br /> create table 表名 (字段讑֮列表)Q?/p>
drop database 库名;
drop table 表名Q?/p>
use school; //打开库SCHOOL
create table teacher //建立表TEACHER
(
id int(3) auto_increment not null primary key,
name char(10) not null,
address varchar(50) default '南阳',
year date
); //l束
//以下为插入字D?br />insert into teacher values(','xuefeng','南阳理工,'1984-05-27');
insert into teacher values(','huifan','杞县高中','1985-07-23');
1.ID设ؓ长度?的数字字D?int(3)q让它每个记录自动加一:auto_incrementq不能ؓI?not null而且让他成ؓdDprimary key?br />2.NAME设ؓ长度?0的字W字Dc?br />3.ADDRESS设ؓ长度50的字W字D,而且~省gؓ'南阳'。
4.YEAR设ؓ日期字段?br />
例:
3 yanzi 南阳师院 1984-05-27
4 mike 南阳七中 1985-07-23
注意Q你最好将文g复制到\mysql\bin目录下,q且要先用use命o打表所在的??/p>
注释:数据库school备䆾到school.bbb文gQschool.bbb是一个文本文Ӟ文g名Q取,打开看看你会有新发现?/p>
]]>
http://developer.db4o.com/Files/
解壓?直接 運行 objectmanager.bat
然後會出?Object Manager 的介?
選擇 File -> Open "Encrypted" File // 由於上面 encrypt a為true, 故這裡使用encrypted
browse 上面例子產生的資料n檔案 db.yap
輸入 例子裡的 password : 123123 // 我測試時使用密碼打不? 不入密卻能開啟檔? 其?br />如果成功連接了就會出現下面的畫面Q?br />
選擇 File -> Query , 選擇要查詢的 Object class
會出現下面的畫面:
選擇 File -> Export to XML
輸入 db.xml, 按存檔就會產?db.xml 到目錄裡.
db.xml 的內容為Q?br /><com.db4o.reflect.generic.GenericObject id="1527">
<name><>;jane></name>
<password><>;pass456></password>
</com.db4o.reflect.generic.GenericObject>
<com.db4o.reflect.generic.GenericObject id="2021">
<name><>;joeyta></name>
<password><>;pass000></password>
</com.db4o.reflect.generic.GenericObject>
當用commit() 及rollback(), db4o 自動提供 read committed 的transactions.
db4o的功能不,有興的同仁可參考下面更多官方的教學Q?br />http://www.db4o.com/community/testdrive/formulaonetutorial.aspx
http://www.db4o.com/about/productinformation/resources/db4o-5.0-tutorial-java.pdf
]]>
列的选择
用PLSQL执行数据查询的时候,FROM子句是必ȝQ这同SQL Server的要求是一L?SELECT语句必须选择针对的数据表。在Oracle数据库内有一U特D的表Dual。Dual表是Oracle中的一个实际存在的表,M用户均可dQ常用在没有目标表的Select中。Dual表由O(jin)racleq同数据字典一同创建,所有的用户都可以用名称DUAL讉K该表。这个表里只有一列DUMMYQ该列定义ؓVARCHAR2(1)cdQ有一行值X。从DUAL表选择数据常被用来通过SELECT语句计算常数表达式,׃DUAL只有一行数据,所以常数只q回一ơ?/font>
Oracle下的DUAL查询如下所C:
SELECT ‘x?FROM dual
而对{的SQL Server查询则是下面q个样子Q?
SELECT ‘x?
以下是null相关的知识,用到了dualQ?br />SQL> select 1 from dual where null=null;
没有查到记录
SQL> select 1 from dual where null='';
没有查到记录
SQL> select 1 from dual where ''='';
没有查到记录
SQL> select 1 from dual where null is null;
1
---------
1
SQL> select 1 from dual where nvl(null,0)=nvl(null,0);
1
---------
1
查看当前q接用户
SQL> select user from dual;
查看当前日期、时?br />SQL> select sysdate from dual;
q接
Oracle用|| W号作ؓq接W,而SQL Server的连接符是加P+ ?
Oracle查询如下所C:
Select ‘Name?|| ‘Last Name?From tableName
对应的SQL Server查询如下所C:
Select ‘Name?+ ‘Last Name?
数字取舍
Oracle数据库内有一个TRUNC函数Q该函数q回m位十q制数的n位;如果省略m则n是0位。m的值可以ؓ负,表示截去数点左边m位数字?/font>
在SQL Server下可以用Round或者Floor?
以下是Oracle查询Q?
SELECT TRUNC(15.79,1) "Truncate" FROM DUAL;
下面是同cL询的SQL Server版本Q?
SELECT ROUND(15.79, 0) rounded , ROUND(15.79, 0,1) truncated
SELECT FLOOR(ROUND(15.79, 0)), FLOOR(ROUND(15.79, 0,1) )
数字转换
Oracle的TO_CHAR函数可以把n位NUMBER数据cd转换为VARCHAR2 数据cdQ同旉用可选的数字格式?
SQL Server则通过STR函数q回数字转换之后的字W数据。不q,该函Ch便的Format参数?
Oracle查询如下Q?
SELECT to_char(123.45 ,99999999999999) from tab
SELECT to_char(EXPIRY_DATE,'DDMONYYYY') from tab
以下是SQL Server版本的查询:
SELECT STR(123.45, 14)
SELECT STR(round(123.455 , 2),12,2)
SELECT CAST(REPLACE((CONVERT(varchar(12) , EXPIRYDATE, 106 )),' ' , '') as varchar(9))
LENGTH和LEN
以下是Oracle的查询:
SELECT LENGTH('SQLMAG') "Length in characters" FROM DUAL;
以上查询在SQL Server下是q样写的Q?
SELECT LEN('SQLMAG') "Length in characters"
日期
以上两种pȝ都具有各自的当前日期和时间格式?
Oracle取得日期和采用如下方式:
SYSDATE
SQL Server则是q样的:
GETDATE()
你可以用各种语法操作日期。以下的代码对Oracle日期g的月份进行了格式调整Q返回日期再加上n月)Q?
Select add_months(sysdate,12) from dual
SQL Server则是如下完成同等功能的:
Select dateadd(mm,12,getdate())
数据的减法也不同。以下代码在Oracle中直接对数据q行减法操作Q?
SELECT sysdate -add_months(sysdate,12) FROM dual
SQL Server则是q样做的Q?
SELECT datediff(dd, GetDate(),dateadd(mm,12,getdate()))
/*
TODO: owner="Administrator" created="2006-4-21"
text="cell procedure"
*/
Procedure Exec_Menology_Zsalebymonth(p_Brand In Varchar2,
p_Branch In Varchar2,
p_Yearid In Varchar2,
p_Monthid In Varchar2) Is
Flag Number;
Str_Sql Varchar2(1000);
v_Customer_Cc2 Constant Varchar2(20) := 'mm';
v_Customer_Cc3 Constant Varchar2(20) := 'yyyy';
-- v_Customer_Cc4 Constant Varchar2(40) := 'yyyy-mm-dd hh24:mi:ss';
Begin
Flag := 0;
Select Count(*)
Into Flag
From Dpdt.Menology Ec
Where Ec.Brand = p_Brand
And Ec.Branch = p_Branch
And Ec.Yearid = p_Yearid
And Ec.Monthid = p_Monthid;
If (Flag = 1) Then
Str_Sql := 'Update dpdt.menology w Set w.seqid=portsequence.nextval ,w.monthsale=(Select Nvl(Sum(Sprc), 0) From ' ||
p_Branch || '.Zsale T1 Where To_Char(T1.Sdate,' || '''' ||
v_Customer_Cc2 || '''' || ') Like ' || '''' || p_Monthid || '''' ||
' and To_Char(T1.Sdate,' || '''' || v_Customer_Cc3 || '''' ||
') Like ' || '''' || p_Yearid || '''' ||
'), w.updated_time= sysdate where w.branch like ' || '''' ||
p_Branch || '''' || ' and w.brand like ' || '''' ||
p_Brand || '''' || ' and w.yearid =' || '''' || p_Yearid || '''' ||
' and w.monthid=' || '''' || p_Monthid || '''' || '';
Elsif (Flag = 0) Then
Str_Sql := 'Insert into dpdt.menology values(Portsequence.Nextval, ' || '''' ||
p_Brand || '''' || ', ' || '''' || p_Branch || '''' || ', ' || '''' ||
p_Yearid || '''' || ', ' || '''' || p_Monthid || '''' ||
' ,(Select Nvl(Sum(Sprc), 0) From ' || p_Branch ||
'.Zsale T1 Where To_Char(T1.Sdate,' || '''' ||
v_Customer_Cc2 || '''' || ') Like ' || '''' || p_Monthid || '''' ||
' and To_Char(T1.Sdate,' || '''' || v_Customer_Cc3 || '''' ||
') Like ' || '''' || p_Yearid || '''' ||
'),sysdate,sysdate)';
End If;
Execute Immediate Str_Sql;
Commit;
Exception
When Others Then
Dbms_Output.Put_Line(Sqlerrm);
Rollback;
End Exec_Menology_Zsalebymonth;
/*
TODO: owner="Administrator" created="2006-4-21"
text="job procedure"
*/
Procedure Exec_Menology_Actionjob Is
Cursor C1 Is
Select Name From Pos_Db_User Group By Name;
Begin
For V1 In C1 Loop
Exec_Menology_Zsalebymonth(Substr(V1.Name, 1, 2),
V1.Name,
To_Char(Sysdate, 'yyyy'),
To_Char(Sysdate, 'mm'));
Exec_Menology_Zsalebymonth(Substr(V1.Name, 1, 2),
V1.Name,
To_Char(Add_Months(Sysdate, -1), 'yyyy'),
To_Char(Add_Months(Sysdate, -1), 'mm'));
End Loop;
Commit;
Exception
When Others Then
Dbms_Output.Put_Line(Sqlerrm);
Rollback;
End Exec_Menology_Actionjob;
Procedure Exec_Meters_Jobs Is
Flag Number;
Flag2 Number;
Yearsale Number;
Lastyearsale Number;
Begin
Select Sum(Monthsale)
Into Yearsale
From Dpdt.Menology
Where Yearid = To_Char(Sysdate, 'yyyy');
Select Sum(Monthsale)
Into Lastyearsale
From Dpdt.Menology
Where Yearid = To_Char(Add_Months(Sysdate, -12), 'yyyy');
Flag := 0;
Select Count(*)
Into Flag
From Dpdt.Meters t
Where t.Saletype = 'FINISH'
And t.Yearid = To_Char(Sysdate, 'yyyy');
If (Flag = 1) Then
Update Dpdt.Meters t
Set t.Salesum = Yearsale,
t.Updated_Time = Sysdate,
t.Seqid = Portsequence.Nextval
Where t.Saletype = 'FINISH'
And t.Yearid = To_Char(Sysdate, 'yyyy');
Elsif (Flag = 0) Then
Insert Into Dpdt.Meters
Values
(Portsequence.Nextval,
'FINISH',
Yearsale,
To_Char(Sysdate, 'yyyy'),
Sysdate,
Sysdate);
End If;
Flag2 := 0;
Select Count(*)
Into Flag2
From Dpdt.Meters t
Where t.Saletype = 'FINISH'
And t.Yearid = To_Char(Add_Months(Sysdate, -12), 'yyyy');
If (Flag2 = 1) Then
Update Dpdt.Meters t
Set t.Salesum = Lastyearsale,
t.Updated_Time = Sysdate,
t.Seqid = Portsequence.Nextval
Where t.Saletype = 'FINISH'
And t.Yearid = To_Char(Add_Months(Sysdate, -12), 'yyyy');
Elsif (Flag2 = 0) Then
Insert Into Dpdt.Meters
Values
(Portsequence.Nextval,
'FINISH',
Lastyearsale,
To_Char(Add_Months(Sysdate, -12), 'yyyy'),
Sysdate,
Sysdate);
End If;
Commit;
Exception
When Others Then
Dbms_Output.Put_Line(Sqlerrm);
Rollback;
End Exec_Meters_Jobs;
Procedure Test_Move_Ready is
Cursor Cur Is
select * from dpdt.saledtl;
begin
For V1 In Cur Loop
Test_Move_Action(v1.brhcst,
v1.saleno,
v1.seqno,
v1.styno,
v1.sizerun,
v1.reject,
v1.qty,
v1.prc,
v1.disc,
v1.rebate,
v1.cst_prc,
v1.org_prc,
v1.sprc,
v1.rsn);
/* insert into dpdt.saledtltest
(BRHCST,
saleno,
seqno,
styno,
sizerun,
reject,
qty,
prc,
disc,
rebate,
cst_prc,
org_prc,
sprc,
rsn)
values
(v1.brhcst,
v1.saleno,
v1.seqno,
v1.styno,
v1.sizerun,
v1.reject,
v1.qty,
v1.prc,
v1.disc,
v1.rebate,
v1.cst_prc,
v1.org_prc,
v1.sprc,
v1.rsn);*/
End Loop;
Commit;
Exception
When Others Then
Dbms_Output.Put_Line(Sqlerrm);
Rollback;
End Test_Move_Ready;
Procedure Test_Move_Action(brhcst In varchar2,
saleno In varchar2,
seqno In integer,
styno In varchar2,
sizerun In varchar2,
reject In char,
qty In integer,
prc In number,
disc In number,
rebate In number,
cst_prc In number,
org_prc In number,
sprc In char,
rsn In char) is
begin
insert into dpdt.saledtltest
(BRHCST,
saleno,
seqno,
styno,
sizerun,
reject,
qty,
prc,
disc,
rebate,
cst_prc,
org_prc,
sprc,
rsn)
values
(brhcst,
saleno,
seqno,
styno,
sizerun,
reject,
qty,
prc,
disc,
rebate,
cst_prc,
org_prc,
sprc,
rsn);
Commit;
dbms_output.put_line('ggg');
Exception
When Others Then
Dbms_Output.Put_Line(Sqlerrm);
Rollback;
End Test_Move_Action;
End Check_Pos_Sales;
描述 INTERVAL参数?
每天午夜12点 ?'TRUNC(SYSDATE + 1)'
每天早上8?0分 ?'TRUNC(SYSDATE + 1) + Q?*60+30Q?(24*60)'
每星期二中午12点 ?'NEXT_DAY(TRUNC(SYSDATE ), ''TUESDAY'' ) + 12/24'
每个月第一天的午夜12点 ?'TRUNC(LAST_DAY(SYSDATE ) + 1)'
每个季度最后一天的晚上11?'TRUNC(ADD_MONTHS(SYSDATE + 2/24, 3 ), 'Q' ) -1/24'
每星期六和日早上6?0分 ?'TRUNC(LEAST(NEXT_DAY(SYSDATE, ''SATURDAY"), NEXT_DAY(SYSDATE, "SUNDAY"))) + Q?×60+10Q?Q?4×60Q?
Str_Sql Varchar2(1000);
v_Customer_Cc1 Constant Varchar2(20) := 'DP';
v_Customer_Cc2 Constant Varchar2(20) := 'mm';
v_Customer_Cc3 Constant Varchar2(20) := 'yyyy';
Logid Number(20);
Begin
Logid := 0;
Select Decode((Select Nvl(Menologyid, 0)
From Dpdt.Menology Ec
Where Ec.Brand = 'DP' And Ec.Branch = Username1 And Ec.Yearid = To_Char(Sysdate, 'yyyy') And
Ec.Monthid = To_Char(Sysdate, 'mm')), Null, 0, 1)
Into Logid
From Dual;
If (Logid <> 0) Then
Str_Sql := 'Update dpdt.menology w Set w.sumsale=(Select Nvl(Sum(Sprc), 0) From ' || Username1 ||
'.Zsale T1 Where To_Char(T1.Sdate,' || '''' || v_Customer_Cc2 || '''' || ') Like To_Char(Sysdate,' || '''' ||
v_Customer_Cc2 || '''' || '))';
Else
Str_Sql := 'Insert into dpdt.menology values(Portsequence.Nextval, ' || '''' || v_Customer_Cc1 || '''' || ', ' || '''' ||
Username1 || '''' || ', To_Char(Sysdate, ' || '''' || v_Customer_Cc3 || '''' || '), To_Char(Sysdate, ' || '''' ||
v_Customer_Cc2 || '''' || '),(Select Nvl(Sum(Sprc), 0) From ' || Username1 ||
' .Zsale T1 Where To_Char(T1.Sdate, ' || '''' || v_Customer_Cc2 || '''' || ') Like To_Char(Sysdate, ' || '''' ||
v_Customer_Cc2 || '''' || ')))';
/*Str_Sql := ' Merge Into Dpdt.Menology Using (Select * From Dpdt.Menology Ec Where Ec.Brand = ' || '''' ||
v_Customer_Cc1 || '''' || ' And Ec.Branch = ' || '''' || Username || '''' ||
' And Ec.Yearid = To_Char(Sysdate, ' || '''' || v_Customer_Cc3 || '''' ||
') And Ec.Monthid = To_Char(Sysdate, ' || '''' || v_Customer_Cc2 || '''' ||
')) Cc On (Cc.Menologyid Is Not Null) When Matched Then Update Set Sumsale = (Select Nvl(Sum(Sprc), 0) From ' || Username || ' .Zsale T1 Where To_Char(T1.Sdate, ' || '''' || v_Customer_Cc2 || '''' || ') Like To_Char(Sysdate, ' || '''' ||
v_Customer_Cc2 || '''' || '))
When Not Matched Then Insert(Menologyid, Brand, Branch, Yearid, Monthid, Sumsale) Values(Portsequence.Nextval, ' || '''' || v_Customer_Cc1 || '''' || ', ' || '''' || Username || '''' ||
', To_Char(Sysdate, ' || '''' || v_Customer_Cc3 || '''' || '), To_Char(Sysdate, ' || '''' || v_Customer_Cc2 || '''' ||
'),(Select Nvl(Sum(Sprc), 0) From ' || Username || ' .Zsale T1 Where To_Char(T1.Sdate, ' || '''' || v_Customer_Cc2 || '''' || ') Like To_Char(Sysdate, ' || '''' ||
v_Customer_Cc2 || '''' || ')) ';*/
End If;
Execute Immediate Str_Sql; --动态执行DDL语句
Commit;
Exception
When Others Then
Dbms_Output.Put_Line(Sqlerrm);
Rollback;
End Filldpb;