分享
 
 
 

FireBird 1.5 Quick Start

王朝other·作者佚名  2006-11-17
窄屏简体版  字體: |||超大  

firebird database (快速入门)

参考文件(均可自firebird网站找到):

Novice's Guide

Migration from MS-SQL to firebird

Firebord Release Notes

学习数据库基础是在sql的语法应用(请参考:firebird 网站的说明文件最好把这份文件印出来,在写程序时可以参考其语,虽然大部份都是sql-92兼容,但是有差异,还有一些专有的语法)

当你需要的资料找不到时可以找寻interbase的相关资料(因为firebird是由 interbase释放原始码所衍生的)

有一本网络上完整的书"BORLAND INTERBASE7.0 应用开发指南 (姚启红着)",虽然是interbase但非常详细,要深入了解(建议必读)

目录索引

前言

程序架构

下载及安装

设定

使用者管理(console)

数据库管理(console)

联机方式(档案/tcpip)

数据库/使用者 管理(gui)

设定ODBC

数据库安全(备份/回存)(console)

数据库安全(备份/回存)(gui)

数据型态

blob

使用者自定函式(UDF)

前言

它是Borland之前推出interbase数据库,并将其开放原始码的免费数据库软件,目前版本是1.5.2,它比mysql, postgresql 更适合于windows操作系统,它并不是使用cygwin的方式移植到windows上,而是真正的windows软件,我们一般将其比较于Ms- sql server,是一个小而美数据库,最大的优点在于它是免费的(ms-sql server五人版至将近三万元),其实它也支持不同作业平台(含inux),对于linux上我还是建议大家postgresql或是mysql

因为firebird若要用php的话就有点难了...,你要根据网站文件来作一些修改编译的动作

#日前postgresql 8.0释放已经支持windwos的原始档(不使用cygwin来执行),但很可惜不支持98/me

因目前还是有人使用win98单机使用的数据库,如果你单机上使用nt系统(2000/xp)等可以使用postgresql,因为postgresql 比起firebird来讲某方面确实比较强,而使用者也比较多

架构

firebird 数据库软件有三种套件,并而支持不同作业平台(windows系列,linux,freebsd等...)

Super Server-无法直接存取数据库档案,必须透过socket来和服务器沟通

Classic-直接存取数据库的档案,多个程序可以同时存取一个档案,有点像vfp,dbase

embedded-专为一些小型系统的嵌入式数据库 (pda)

下载及安装

主网站:http://firebird.sourceforge.net/

Download->Firebird relational database

直接点两下就可以安装,请照步骤,根据自己的需求来安装

预设安装路径

windows:c:\program files\firebird\firebird_1_5

linux:/opt/firebird

两个操作系统下的目录结构非常像

根目录下:

firebird.conf-设定档

aliases.conf -别名档

friebird.log -记录文件

SYSDBA.password -linux才有,管理者的名称及密码在里面,windows则预设:名称:sysdba,密码:masterkey

windows直接使用security.fdb来存sysdba的密码

注意:使用者名称不分大小写,但密码有分

目录/bin:

则是一些必要的主要及工具程序

设定 firebird

主要的设定档

firebird.conf

预设tcp/ip会启动port:3050

你可以使用telnet ip 3050来测试

aliases.conf

设定数据库的别名

数据库联机时一般要指定路径,有时路径太长时你可以指定,在aliases.conf中使用别名来存取

它是位于你安装firebird的根目录,以下为内建范例

# 别名 = 原始路径

employee.fdb = /opt/firebird/examples/employee.fdb

其中#为批注,而windows及linux的路径是有所不同:

# fbdb1 在Windows服务器:

fbdb1 = c:\Firebird\sample\Employee.fdb

# fbdb2 在Linux服务器:

fbdb2 = /opt/databases/killergames.fdb

数据库执行时可以编辑这个档案,不需要重新启动服务器

联机别名的方式:

Server_name:aliasname

使用者管理(consloe接口)

1.预设管理者名称sysdba,密码masterkey

2.密码文件security.fdb,位于firebird安装目录下

3.管理程序gsec

安装目录下\bin

4.密码长度限制在8码

用法:

本地主机(数据库server在本台计算机)

gsec -user sysdba -password <password> [options]

远程主机(数据库server在别台计算机)

gsec -user sysdba -password <password> -database <databasename>

gsec命令

di[splay]

显示所有使用者

di[splay] <username>

显示某使用者

a[dd] <username> -pw <password> [options]

新增使用者

mo[dify] <username> [options]

修改使用者

de[lete] <username>

删除使用者

h[elp]

求助

?

同上

q[uit]

离开gsec

z

显示版本

options

-pa[ssword] <password>

管理者的密码

-user <username>

使用者名称

-pw <password>

使用者密码

-fname <first name>

英文名字有,三个部份

-mname <middle name>

-lname <last name>

范例

有两种方式

1.直接下在命令列-

2.进入交互式的命令列-额外的命令

新增使用者

gsec -user sysdba -password masterkey

gsec> add elvis -pw elvis -fname elvis -lnmae presley

修改密码

gsec> modify elvis -pw chunk

修改sysdba密码

gsec -user sysdba -password masterkey -modify sysdba -pw mykey37

修改远程服务器linux的sysdba密码

gsec -user sysdba -password masterkey -database harry:/opt/firebird/security.fbd -modify sysdba -pw hamburg

修改远程服务器windows的sysdba密码

gsec -user sysdba -password masterkey -database sally:"c:\Program files\Firebird\security.fdb" -modify sysdba -pw hannover

修改远程服务器使用tcp port 3050

gsec -user sysdba -password masterkey -database jack/3050:/opt/firebird/security.fdb" -modify sysdba -pw londo

修改远程windows服务器ip( a.b.c.d)使用tcp port 3050

gsec -user sysdba -password masterkey -database a.b.c.d/3050:"c:\program files\firebird\firebird_1_5\security.fdb -modiyf sysdba -pw londo

删除本地使用者

gsec -user sysdba -password masterkey -delete joe

数据库管理(console)

程序isql位于安装目录下的bin

以下是一个操作范例:

c:\Program files\firebird\firebird_1_5\bin\>isql -user sysdba -password masterkey

Use CONNECT or CREATE DATABASE to specify a database

SQL> connect test;

Database: test, User: sysdba

SQL> show table;

COUNTRY CUSTOMER

DEPARTMENT EMPLOYEE

EMPLOYEE_PROJECT JOB

PHONE_LIST PROJECT

PROJ_DEPT_BUDGET SALARY_HISTORY

SALES

SQL> select * from country ;

COUNTRY CURRENCY

=============== ==========

USA Dollar

England Pound

Canada CdnDlr

SQL>quit;

建立数据库

1.建立数据库create database

2.建立数据表格create table (sql指令)

3.删除资枓表格drop table (sql指令)

4.查询数据库中所含表格 show table

5.查询表格中的结构 show table 表格名称

6.新增,删除,更新(insert,delete,update)均为sql指令

7.SQL命令交付,在新增或删除时,数据库并未直接变更,要使用sql指命commit 或commit work来更新

isql -user sysdba -password masterkey

Use CONNECT or CREATE DATABASE to specify a database

SQL> create database 'c:\temp\test.fdb';

SQL> create table abc (name char(12),age numeric(3));

SQL> show table friend ;

FIRSTNAME CHAR(15) Nullable

LASTNAME CHAR(20) Nullable

CITY CHAR(15) Nullable

STATE CHAR(2) Nullable

AGE INTEGER Nullable

SQL> insert into abc (name ,age) values( 'cschen',34);

SQL> select * from abc;

NAME AGE

============ =======

cschen 34

以上的操作主要是sql指令

命令的结尾必需使用";", 如果没有使用";"提示会由SQL>变为CON>,告诉你延续之前的命令

SQL>create table friend

CON>(FIRSTNAME CHAR(13),

CON> LASTNAME CHAR(40),

CON> STATE CHAR(2),

CON> AGE INTEGER );

同下

SQL>create table friend (FIRSTNAME CHAR(13),LASTNAME CHAR(40),STATE CHAR(2),AGE INTEGER);

每一个数据库有一个特殊数据库-系统数据库,包含了使用者权限等...

SQL> show system;

RDB$CHARACTER_SETS RDB$CHECK_CONSTRAINTS

RDB$COLLATIONS RDB$DATABASE

RDB$DEPENDENCIES RDB$EXCEPTIONS

RDB$FIELDS RDB$FIELD_DIMENSIONS

.................. ..................

使用者权限

1.GRANT 授予使用者权限

GRANT 权限 ON 对象 TO 对象 [with grant option]

2.REVOKE 撤消使用者权限

REVOKE 权限 ON 对象 FROM 对象

权限:SELECT ,INSERT ,UPDATE,DELETE, ALL

物件:TABLE,VIEW

对象:使用者,PUBLIC(代表全部)

with grant option 让该名使用者有设定别的使用者的权限

*因为isql无法输入中文,因此无法使用在中文输入数据

*在linux下由于可能会有同名的isql(unixODBC套件),而linux安装在/opt/firebird,因此必须使用绝对路径来执行,另数据库的管理者名称可以不固定,至于密码在安装时会自动产生在档案SYSDBA.password中

联机方式(档案/tcpip)

程序支持两种联机方式

1.使用完整路径联机

c:\abcd.....

2.使用tcpip联机,在路径前加主机的名称或IP

主机:c:\abcd....

我们可以根据切换这两种

windows 下的路径如有空白,有时必须使用" "将路径框起来才可以用

数据库/使用者管理(gui)

我有试过几个免费的windows端的软件

选择ibeasy+: 非常容易管理,必须有数据库的观念

另外可配合marathon使用

ibeasy+使用者管理接口:

server->users management

(输入管理者的名称及密码,进入下一个窗口)

(你就可以管理你的使用者)

设定odbc

在firebird->download ->odbc

下载后安装

odbc

Database

1.完整路径-c:\database\abc.fdb

2.tcp/ip-ip:完整路径(127.0.0.1:c:\database\abc.fdb)

数据库的安全(备份/回存)(console)

GBAK:命令列工具,命令有两个状态,备份/回存(-b / -c)

语法

gbak <options> -user <username> -password <password> <source> <destination>

1.备份

gbak -b <source> 是你要备份的数据库来源, <destination>是备份的目的地档名.一般的延伸附檔名 是 .fbk .

只有SYSDBA 或是数据库的拥有者可以执行备份工作. 对于多个档案的数据库,只需指定第一个档案的名称来当数据库的名称.

2.回存

gbak -c <source> 是先前备份的档案而<destination> 是数据库的名称

选项

(中括号内的是非必要,也就是命令可以使用中括号前的缩写,或是含中括号内为长参数)

参数

说明

功能

-b[ackup_database]

备份

备份

-bu[ffers]

Set cache size for restored database

回存

-c[reate_database]

回存 (必要参数)

回存

-co[nvert]

转换外部表格到内部表格s

备份

-e[xpand]

建立一个非压缩的备份

备份

-fa[ctor] n

磁带机的区块系数

备份

-g[arbage collect]

备份时不清空已删除的数据

备份

-i[nactive]

所有的索引将回存为INACTIVE

回存

-ig[nore]

备份时不做checksum错误检查

备份

-k[ill]

在不建立定义备份中的shadows

回存

-l[imbo]

备份时忽略limbo transactions

备份

-m[etadata]

只备份数据表格的metadata (schema).不备份资料

备份

-mo[de] read_write

回存一个 可读/写的数据库(预设)

回存

-mo[de] read_only

回存一个只读写数据库

回存

-n[o_validity]

不回存validity constraints.也就是回存数据不回存 constraints

回存

-nt

非兼容性的格式(只使用在相同作业平台,及firebird版本)

备份

-o[ne_at_a_time]

一次回存一个表格.你可以分别分次回存表格

回存

-ol[d_descriptions]

旧的格式

备份

-p[age_size] <size>

设定page size of new database.

<size> 可以是 1024, 2048, 4096, 8192.预设1024.

回存

-pa[ssword] <password>

数据库的密码

-r[eplace_database]

回存在一个存在的数据库上.只能在拥有本数据库的使用者可以操作

这是覆写,不要执行在使用中的数据库!

回存

-role <role>

使用某一群组(role )来联机

-se[rvice] <hostname>:service_mgr

备份: 建立,使用服务管理.

回存: 回存,使用服务管理.

-t[ransportable]

建立可转移的备份(不同操作系统及firebird版本)

备份

-u[ser] <username>

数据库使用者的名字

-use_[all_space]

正常,回存,数据库页会填满80%

只读才会写回100%(因为不用预留修改的空间)

回存

-v[erbose]

显示所有gbak执行的详细动作

-y <filename>

重导所有的输出到一个档案 <filename>.

注意:命令执行之前不可以存在档名!

-y suppress_output

Quiet mode

-z

显示版本

范例:

正常的备份:

gbak -v -t -user SYSDBA -password "masterkey" dbserver:/db/warehouse.fdb c:\backups\warehouse.fbk

备份并记录所有备份时的输出讯息:

gbak -v -t -user SYSDBA -password masterkey -y c:\backups\warehouse.log dbserver:/db/warehouse.fdb c:\backups\warehouse.fbk

正常的回存:

gbak -c -v -user SYSDBA -password masterkey c:\backups\warehouse.fbk dbserver:/db/warehouse2.fdb

回存到一个已存在的数据库:

gbak -c -r -v -user SYSDBA -password masterkey c:\backups\warehouse.fbk dbserver:/db/warehouse.fdb

回存一个只读的数据库:

gbak -c -v -mode read_only -use_all_space -user SYSDBA -password masterkey c:\backups\warehouse.fbk c:\files\warehousedb.fdb

多重档案备份

当数据库很大时,要备份有点困难,因此我们将数据库备份成许多小的档案,如此储存时比较方便

备份语法:

gbak [options] <database> <target file 1> <size 1> <target file 2> <size 2> ... <target file n>

注意: 不要指定最后一个档案的大小.因我们不一定知道最后一个档案需要多少空间来储存,所以它将自动依据大小来储存.至于其它档案的大小可以是 bytes (8192), kilbytes (1024k), megabytes (5m), 或 gigabytes (2g)

回存语法:

gbak -c [options] <source file 1> <source file 2> ... <source file n> <database>

回存到一个多个档案的数据库

有些系统的档案系统有限制,或是为了效能的因素,因此单一数据库,可分成多个小的数据库

gbak -c [options] <source file> <db file 1> <size 1> <db file 2> <size 2> ... <db file n>

注意:不要指定最后数据库的大小.它可以无限制的依据回存的档案来变更大小.

Size can be given in bytes (8192), kilbytes (1024k), megabytes (5m), or gigabytes (2g)

由备份多个档案回存到多个档案的数据库:

gbak -c [options] <source file 1> <source file 2> ... <source file n> <db file 1> <size 1> <db file 2> <size 2> ... <db file n>

数据库安全(备份/ 回存)(gui)

(ibeasy+,参考hlp檔)

选项 (Database | Save Database)

你可以简单复制数据库文件(如一般的指令copy) 但是无法确定数据库的安全.

优点:

改善效能经由排除不完整的(eliminating incomplete)交易和过期的记录

减少数据库的大小-移除删除的记录

独立的备份和回存的功能和操作系统无关

执行时必要参数:

数据库全名

备份文件的名称,可包含大小等特性.

The options which must be applied at the time of back up

- Checksums 检查数据的完整.

- End transactions

- Metadata only 只存结构不存数据.

- Eliminate garbage 予许释放旧版本记录的空间.

- Old data format

- Transportable database 可以回存数据库到不同的操作系统.

- Convert to tables 转换外部档案到内部表格.

选项: (Database | Restore Database)

执行这个操作,必须是这个数据库的拥有者或是有执行管理系统的权限: SYSDBA.

一个数据备份的数据库可以回存

执行时必要参数:

备份文件的名称

数据库全名

可用的参数

- Page size 变更数据库每页的大小,可以改善效能.说实在,所有数据库在一页中会比较快.

- Rebuild Indices. 重建索引

- Create database image Allow the recovery of a database in case of disk crash.

- Validity conditions Allow when data are not valid any more, following for example a modification of the integrity constraints, to be unaware of the integrity constraints.

- Commit after each table

- Replace database In this case, the database must be closed beforehand, and no user must be connected.

- Create a new database This option is exclusive compared to the preceding option

- Use all space to recreate the database. By default, at the time of the restoration of a database, the pages are filled out to 80%. This option makes it possible to fill them to 100%.

数据型态

名称

大小

范围 /精度

描述

Blob

不固定

blob段大小限于64K

动态变长度二进制类型,用于存放大量数据的情况,如图片、音乐、视频、多媒体等。其基本结构单位为段,它的子类型描述了存储数据的详细信息

Boolean

16位

True

False

Unkown

代表了逻辑上的(真、假、不确定)与Dialect无关。

Char(N)

n个字符

1到32767个字节。双字符集除2

固定长度的字符或字符串

Date

64位

从公元后100年一月一日到32768年二月29日

日期类型。只有年月日,不带时间

Decimal(P,S)

变数(16、32或64位)

精度p从1到18:指定数字的总长度;标度s从0到18:指定小数点后的位数。

定点小数。例如decimal(5,3)可以存储的数字形式为:pp.sss

Double Precision

64位

从2.225×10的-308 次方

到1.797×10的308次方

IEEE双精度浮点数,15位长度

Float

32位

从1.175×10的-38 次方

到3.402×0的38次方

IEEE单精度浮点数,7位长度

Integer

32位

从-2147483648

到2147483647

整数

Numeric(P,S)

变长(16、32或64位)

精度p从1到18:指定数字的总长度;标度s从0到18:指定小数点后的位数。

定点小数。例如decimal(10,3)可以存储的数字形式为:ppppppp.sss

Smallint

16位

从-32768到32767

短整数

Time

64位

从0:00 AM到23:59.9999 PM

时间类型

Timestamp

64位

从公元后100年一月一日到32768年二月29日

带有时间的日期类型

Varchar(N)

n个字符

1到32767个字节。字符集决定了其能容纳的最大字符数

#Blob

blob sub_type segment

这是一个特有的数据型态,是用于储存比较大量的数据,类似其它数据库的text或是memo数据型态,在定义时有两个附加参数是sub_type, segment

sub_type是blob的数据类型,以下是它的types.h中的定义

定义

说明

TYPE ("TEXT", 1,nam_f_sub_type)

TYPE ("BLR", 2,nam_f_sub_type)

TYPE ("ACL", 3,nam_f_sub_type)

TYPE ("RANGES", 4,nam_f_sub_type)

TYPE ("SUMMARY", 5,nam_f_sub_type)

TYPE ("FORMAT", 6,nam_f_sub_type)

TYPE ("TRANSACTION_DESCRIPTION", 7,nam_f_sub_type)

TYPE ("EXTERNAL_FILE_DESCRIPTION", 8,nam_f_sub_type)

文字,类似memo,而数据型态varchar限制 32K

二位数据(图片,影音文件等)

1,2是我们常用的,其它的很少使用

generator(计数器)

计数器可以我们帮助产生循序的数字,你可以将其看成如一个公共变量,使用gen_id(generator名称,step)来取得一个值并加step

create generator my_gen

num=gen_id(my_gen,1)

num

问题

如果纯粹使用generator来填入,如果是uniqe或primary key,当generator最大值是264(18446744073709551616) 如果超过会重回到0

由于generator的最大值264 是很大数字要产生重复的机率很小

要不要使用日期来配合产生?

如果配合日期则会产生重复的机率会减少(发票,传票等)

年月日+流水号

20040303004

而generator 只要产生流水号,但是流水号每天都是从1开始,并且一般会限制数字的宽度如四位数或三位数

如此造成重复性会增加

目前数据库并无法处理这个问题,你必须自己设计一个表格来储存这个值,配合sql指令来取得最后的值

(建议:不要浪费时间在使用在数据库端的解决方法)

填入的字段要字符串或是数字?

如果是单独使用generator,最好是用数字的格式比较好

#注意:integer只有32位

范例:

create generator test_gen ;

CREATE TABLE test1 (serial_no char(3) not null primary key,name char(15));

建立触发来自动取得ID(new.字段名称 ,这个变量是可以被sql指令时自动引用)

set term !!;

create trigger test for test1 active before insert

as

begin

new.serial_no=cast(gen_id(test_gen,1) as char(3));

end

!!

set term ; !!

#针对本身字段变更方法:触发包含了三种sql指令及二种状态执行前/执行后

在insert的执行前,所有的插入到被触发的表格的字段,你可以使用 new.字段名称来存取,只要变更该值就可以自动变更新增到表格中的字段值

#在建立trigger 时由于trigger中的;(分号)会混淆结束符号,因此使用sql指令或在isql中新增trigger请变更其结尾符号,是set term 结尾符号,预设的结尾符号";",因此做完要复原set term ;!!

流水号

每日重置流水号

使用表格字段来记录日期,检查若日期不同则写入新日期并将generator归零(set generator 名称 to 0),但无法使用在储存函式中

在新增之前触发这个功能,比上述更简单(尚未测试)

create trigger test2 for test active before insert

as

declare variable temp_date date;

declare variable serial_no char(3);

begin

if current_date==t_date then

#取得流水号

serial_no=cast(gen_id(generator名称,1) as char(3));

else

#将流水号置为0,使用相减

=GEN_ID(My_Generator, -GEN_ID(My_Generator))

#取得流水号

endif

end

#current_date

select current_date from rdb$database

储存函式或触发呼叫其它的储存函式

execute procedure 名称[(变量1,变量2....)] [RETURNING_VALUES [(变量1,变量2.....)]]

最简单的呼叫(不传值,也不传回值)直接执行 EXECUTE PROCEDURE 名称

测试函式的执行或 GENERATOR的结果

1.建立一个GENERATOR

CREATE GENERATOR TESTGEN

2.建立一个储存函式(只是将GENERATOR加一)

create procedure TEST

as

DECLARE VARIABLE MY FLOAT;

BEGIN

MY=GEN_ID("TESTGEN",1);

END

3.直接执行命令

EXECUTE TEST

4.查询GENERATOR是不是变为2

变数

函式中自己宣告的区域变量

1.直接引用-不需任何前置符号

2.用在sql语法中-必须前置:

记录使用者

CURRENT_USER 和 CURRENT_ROLE

时间变量

current_time,current_date,current_timestamp

udf自定函式的内建函式

预设有内建函式放在在安装目录下的udf

中含有的函式信息在fbudf.sql、ib_udf.sql,但真正函式是在fbudf.dll、ib_udf.dll

在firebird中使用者自定函式,和其它的sql-server有很大的不同

在firebird中udf一般是以c或c++写成函式,然后编译成为模块

1.windows- .dll檔

2.linux - .so 檔

再来将其放在安装目录的UDF目录下,一般会将其宣告文件放在同一目录下,如果不是放在预设的目录下,你必须在firebird的环境档中设定,但是会有安全的问题.

如果你不会也不想写自定函式,但是想要用别人写好的函式

要使用宣告命令

declare external function

其语法如下:

declare external function '名称'

传入的变量型态列表

returns 回传变量型态 FREE_IT

entry_point '函式名称' '模块名称';

如果你不知道有那些函式可以使用,可以参考UDF目录下的.sql

以下是完整抄自ib_udf.sql

DECLARE EXTERNAL FUNCTION ltrim

CSTRING(255)

RETURNS CSTRING(255) FREE_IT

ENTRY_POINT 'IB_UDF_ltrim' MODULE_NAME 'ib_udf';

你必须在isql联机数据库完毕后执行上述的命令(或其它管理程序),则该函式就会随数据库可以被呼叫使用,

FREE_IT是在函式传回值之后清掉所配置的内存.

个人认为目前client所提供的函式远多于server端,因此除非必要否则尽量使用client端的函式

#ibeasy++不提供UDF的管理

#marthon提供

安全性(建立多个数据库备份文件)

create shadow

一旦使用上述命令则会建立一个同步的数据库在其它的储存设备上,这可以保障当数据库逻辑或实体的储存接口损坏时,有一个备份的数据库可以实时取代

重建索引

alter index 索引名称 inactive

alter index 索引名称 active

上述命令可以用在重建索引,或是数据库回存时想要加速其执行速度,不要回存时边回存边建立索引,先执行inactive则回存时索引会失去作用,等数据库回存完毕时再执行active的动作,则会重建索引,当然只有在没有人使用该数据库时才可以使用

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有