奇迹sql语句
1/重新安装WEB网站,在后台配置里选择1.0官服原版,然后在SQL查询里导入RC附带的数据即可。
2/如果想要使用MX1.1版本的 必须修改角色表是所有的varchar为n开头的那个char(一时忘了名字)
找到出错的SQL语句,对相关出错列进行convert转换。
举个简单的convert例子,将系统日期时间转换为字符串:
select convert(char(26), getdate(), 109)
2. 我在做奇迹私服1/02W版时安装的是RC的网站系统,在网站注册帐号失败
varbinary 类型在你的数据库中应该是用来存储密码的,这部分的数据一般是经过加密的,没有加密的话就好办多了。
因为没有办法看到你的文件,所以只能猜测一下,给你个调试的办法:
把D:\wwwroot\common\c_mssql.php文件用文本编辑器打开,找到114行,找出里面的DML语句,定位到password字段的值。一般会出现这样类似的语句:
insert into MuOnline.dbo.MEMB_INFO(...,memb__pwd...) values (...,v_password...);
这个语句有可能是几个字符串拼凑的
你可以将上面的语句改为
insert into MuOnline.dbo.MEMB_INFO(...,memb__pwd...) values (...,convert(varbinary,v_password)...);
或者
insert into MuOnline.dbo.MEMB_INFO(...,memb__pwd...) values (...,pwdencrypt(v_password)...);如果使用这个语句,你还需要找到验证用户登录的SQL语句,将...where memb__pwd = v_password...改为...where pwdcompare(v_password, memb__pwd) = 1...
这样的话应该就不会有问题了。
如果密码是自定义的函数进行加密,或者是程序中设计了加密算法,那你只能找一下原版的作者,要到函数的名字或者是加密算法的调用方式了。
3. 求奇迹MU1.04H 单机中文版教程.
这是本人第一次做教程,希望你能满意。谢谢!
现在开始教大家安装SQL2000
先把SQL2000解压出来,
接着运行autorun.exe开始安装SQL2000
H6TWQ-TQQM8-HXJYG-D69F7-R84VM这个是SQL2000的CDKEY
填好CDKEY后直接下一步。
这里是安装的目录,如果你的C盘空间太小,你可以装到别的盘,我现在安装到的是D:
这里选择使用本地系统帐户。
这里选择使用混合模式,下面的空白处填上SQL的密码,我这里填7892856填好后直接下一步。
现在开始安装了。
因为我原来装过会出现这个提示,你按我的来做就行了。
这样SQL就安装好了。接下来要做的是打开SQL的后台服务。要等到旁边的变成绿色的箭头才说明启动后SQL。
接着我们把MU的服务器端复制到D:
复制好后就开始创建服务器的表。
在开始里点企业管理器,点右键新建数据库。因解压时多解压了一层目录,我把它改了一下。
按库名一个一个来建。在刚建好的库名名上点右建。选所有的任务,还原数据库。接着选从设备。选择你所对应的库文件。
再点选项。把在现有数据库上强制还原钩上。改下路径。把前面的D:\MeMuOnline改成服务器端所在的路径。点确定,这样就还原
成功一个库了。接着我们再还原别的库,先建库名。用同样的方法来还原。这里也要更改一下路径和把在现有数据库上强制还原钩上
在路径中间的DB不要修改,这个是服务器端里的目录。你第建好一个库就会多出两个文件。刚才的第一个建错了,我现在删掉重建。
别的库还原我就不另加说明了。在还原MuOnline时要把路径像前面一样填完整。D:\MuOnline\DB
这样就还原完所有的库了。在D:\MuOnline\DB文件夹下你看下是不是有12个文件。如果有就对了。还要检查下库的名字对不对得上。
接下来我们要做的就是改下在服务器端里的数据库密码和IP。把包括子文件夹钩上,别的不用钩。在上面的查找里打上你的数据库密码像我现在这样。下面填上你刚才装MSSQL2000时填的密码。我填的是7892856,所以我就要替换为7892856文件类型填上*.*表示所有的文件。所在的文件夹选服务器端所在的目录。接着就选全换。最好是点两次,不然有少改的文件。
接着就改IP。先看下你网卡的IP。我的网卡IP是192.168.1.2,所以我就换成192.168.1.2
在工具的查找里填上你的网卡IP,替换为打上你的网卡IP,我因该填的是192.168.1.2
IP和密码都改好了。接着就要试启动服务器了。对了还有个注册表文件要导入的。在数据库文件夹里。ODBC.reg双击它导入。
接着就按数字的步骤来启动服务器。战盟服务的快捷方式里的IP也要改下。
如果你的电脑配制不是很好,内存太小的话你最好只开09-普通一线服务和12-攻城线服务,全开的话要求电脑配制比较高。
跳出这个窗口的原因是因为原数据库不是干净版的。解决的办法是,用查询分析器来运行下下面的SQL语句。
SQL SERVER 上打个.
密码就打上你刚才装SQL时的密码。
use muonline
delete MuCastle_DATA
delete MuCastle_MONEY_STATISTICS
delete MuCastle_NPC
delete MuCastle_REG_SIEGE
delete MuCastle_SIEGE_GUILDLIST 把这些复制上去。复制好后按F5键,或者点上面的绿色箭头。
再起动一次就不会跳出那个提示了。
下面我们要修改的是客户端的IP。
先解压出客户端。
我们用UE32来修改。在常用工具里我放有。直接用UE32来打开MAIN.exe查找192.168.1.26把查找ASCII钩上。点查找。
在这里打上你的网卡IP。如果长度不够的你就在左边的窗口用数字0来代替。退出保存。
直接点main.exe进入游戏。连接成功,接着注册帐号。用MuEdit4.7工具来注册。把这个钩上。不记得还要认SQL支持MD5码才行。
现在帮SQL安装MD5码的文件。把WZ_MD5_MOD.dll复制到SQL目录下的BINN文件夹下。X:\Program Files\Microsoft SQL Server\MSSQL\Binn像这样,X代表你安装的盘符。接着再用查询分析器执行一下下面的代码。
use master
go
sp_addextendedproc 'XP_MD5_EncodeKeyVal', 'WZ_MD5_MOD.dll'
go
sp_addextendedproc 'XP_MD5_CheckValue', 'WZ_MD5_MOD.dll'
go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[UFN_MD5_CHECKVALUE]') and xtype in (N'FN', N'IF', N'TF'))
drop function [dbo].[UFN_MD5_CHECKVALUE]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[UFN_MD5_ENCODEVALUE]') and xtype in (N'FN', N'IF', N'TF'))
drop function [dbo].[UFN_MD5_ENCODEVALUE]
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE FUNCTION UFN_MD5_CHECKVALUE
(
@btInStr VARCHAR(10),
@btInStrIndex VARCHAR(10),
@btInVal BINARY(16)
)
RETURNS TINYINT
AS
BEGIN
DECLARE @iOutResult TINYINT
EXEC master..XP_MD5_CheckValue @btInStr, @btInVal, @btInStrIndex, @iOutResult OUT
RETURN @iOutResult
END
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE FUNCTION UFN_MD5_ENCODEVALUE
(
@btInStr VARCHAR(10),
@btInStrIndex VARCHAR(10)
)
RETURNS BINARY(16)
AS
BEGIN
DECLARE @btOutVal BINARY(16)
EXEC master..XP_MD5_EncodeKeyVal @btInStr, @btInStrIndex, @btOutVal OUT
RETURN @btOutVal
END
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
use muonline
go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[UFN_MD5_CHECKVALUE]') and xtype in (N'FN', N'IF', N'TF'))
drop function [dbo].[UFN_MD5_CHECKVALUE]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[UFN_MD5_ENCODEVALUE]') and xtype in (N'FN', N'IF', N'TF'))
drop function [dbo].[UFN_MD5_ENCODEVALUE]
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE FUNCTION UFN_MD5_CHECKVALUE
(
@btInStr VARCHAR(10),
@btInStrIndex VARCHAR(10),
@btInVal BINARY(16)
)
RETURNS TINYINT
AS
BEGIN
DECLARE @iOutResult TINYINT
EXEC master..XP_MD5_CheckValue @btInStr, @btInVal, @btInStrIndex, @iOutResult OUT
RETURN @iOutResult
END
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE FUNCTION UFN_MD5_ENCODEVALUE
(
@btInStr VARCHAR(10),
@btInStrIndex VARCHAR(10)
)
RETURNS BINARY(16)
AS
BEGIN
DECLARE @btOutVal BINARY(16)
EXEC master..XP_MD5_EncodeKeyVal @btInStr, @btInStrIndex, @btOutVal OUT
RETURN @btOutVal
END
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
执行完后就可以注册帐户了。
服务器就安装完了,你按照我上面说的来做一定能做出你自己的服务器来,这里只是跟大家研究下服务器端,和学习服务器端,
4. sql查询语句大全
SELECT * FROM TWS2F14CCC260D71 WHERE 地类='1999资源清查有林地'
5. SQL查询语句
一、简单查询语句
1. 查看表结构
SQL>DESC emp;
2. 查询所有列
SQL>SELECT * FROM emp;
3. 查询指定列
SQL>SELECT empmo, ename, mgr FROM emp;
SQL>SELECT DISTINCT mgr FROM emp; 只显示结果不同的项
4. 查询指定行
SQL>SELECT * FROM emp WHERE job='CLERK';
5. 使用算术表达式
SQL>SELECT ename, sal*13+nvl(comm,0) FROM emp;
nvl(comm,1)的意思是,如果comm中有值,则nvl(comm,1)=comm; comm中无值,则nvl(comm,1)=0。
SQL>SELECT ename, sal*13+nvl(comm,0) year_sal FROM emp; (year_sal为别名,可按别名排序)
SQL>SELECT * FROM emp WHERE hiredate>'01-1月-82';
6. 使用like操作符(%,_)
%表示一个或多个字符,_表示一个字符,[charlist]表示字符列中的任何单一字符,[^charlist]或者[!charlist]不在字符列中的任何单一字符。
SQL>SELECT * FROM emp WHERE ename like 'S__T%';
7. 在where条件中使用In
SQL>SELECT * FROM emp WHERE job IN ('CLERK','ANALYST');
8. 查询字段内容为空/非空的语句
SQL>SELECT * FROM emp WHERE mgr IS/IS NOT NULL;
9. 使用逻辑操作符号
SQL>SELECT * FROM emp WHERE (sal>500 or job='MANAGE') and ename like 'J%';
10. 将查询结果按字段的值进行排序
SQL>SELECT * FROM emp ORDER BY deptno, sal DESC; (按部门升序,并按薪酬降序)
二、复杂查询
1. 数据分组(max,min,avg,sum,count)
SQL>SELECT MAX(sal),MIN(age),AVG(sal),SUM(sal) from emp;
SQL>SELECT * FROM emp where sal=(SELECT MAX(sal) from emp));
SQL>SELEC COUNT(*) FROM emp;
2. group by(用于对查询结果的分组统计) 和 having子句(用于限制分组显示结果)
SQL>SELECT deptno,MAX(sal),AVG(sal) FROM emp GROUP BY deptno;
SQL>SELECT deptno, job, AVG(sal),MIN(sal) FROM emp group by deptno,job having AVG(sal)<2000;
对于数据分组的总结:
a. 分组函数只能出现在选择列表、having、order by子句中(不能出现在where中)
b. 如果select语句中同时包含有group by, having, order by,那么它们的顺序是group by, having, order by。
c. 在选择列中如果有列、表达式和分组函数,那么这些列和表达式必须出现在group by子句中,否则就是会出错。
使用group by不是使用having的前提条件。
3. 多表查询
SQL>SELECT e.name,e.sal,d.dname FROM emp e, dept d WHERE e.deptno=d.deptno order by d.deptno;
SQL>SELECT e.ename,e.sal,s.grade FROM emp e,salgrade s WHER e.sal BETWEEN s.losal AND s.hisal;
4. 自连接(指同一张表的连接查询)
SQL>SELECT er.ename, ee.ename mgr_name from emp er, emp ee where er.mgr=ee.empno;
5. 子查询(嵌入到其他sql语句中的select语句,也叫嵌套查询)
5.1 单行子查询
SQL>SELECT ename FROM emp WHERE deptno=(SELECT deptno FROM emp where ename='SMITH');查询表中与smith同部门的人员名字。因为返回结果只有一行,所以用“=”连接子查询语句
5.2 多行子查询
SQL>SELECT ename,job,sal,deptno from emp WHERE job IN (SELECT DISTINCT job FROM emp WHERE deptno=10);查询表中与部门号为10的工作相同的员工的姓名、工作、薪水、部门号。因为返回结果有多行,所以用“IN”连接子查询语句。
in与exists的区别: exists() 后面的子查询被称做相关子查询,它是不返回列表的值的。只是返回一个ture或false的结果,其运行方式是先运行主查询一次,再去子查询里查询与其对 应的`结果。如果是ture则输出,反之则不输出。再根据主查询中的每一行去子查询里去查询。in()后面的子查询,是返回结果集的,换句话说执行次序和 exists()不一样。子查询先产生结果集,然后主查询再去结果集里去找符合要求的字段列表去。符合要求的输出,反之则不输出。
5.3 使用ALL
SQL>SELECT ename,sal,deptno FROM emp WHERE sal> ALL (SELECT sal FROM emp WHERE deptno=30);或SQL>SELECT ename,sal,deptno FROM emp WHERE sal> (SELECT MAX(sal) FROM emp WHERE deptno=30);查询工资比部门号为30号的所有员工工资都高的员工的姓名、薪水和部门号。以上两个语句在功能上是一样的,但执行效率上,函数会高 得多。
5.4 使用ANY
SQL>SELECT ename,sal,deptno FROM emp WHERE sal> ANY (SELECT sal FROM emp WHERE deptno=30);或SQL>SELECT ename,sal,deptno FROM emp WHERE sal> (SELECT MIN(sal) FROM emp WHERE deptno=30);查询工资比部门号为30号的任意一个员工工资高(只要比某一员工工资高即可)的员工的姓名、薪水和部门号。以上两个语句在功能上是 一样的,但执行效率上,函数会高得多。
5.5 多列子查询
SQL>SELECT * FROM emp WHERE (job, deptno)=(SELECT job, deptno FROM emp WHERE ename='SMITH');
5.6 在from子句中使用子查询
SQL>SELECT emp.deptno,emp.ename,emp.sal,t_avgsal.avgsal FROM emp,(SELECT emp.deptno,avg(emp.sal) avgsal FROM emp GROUP BY emp.deptno) t_avgsal where emp.deptno=t_avgsal.deptno AND emp.sal>t_avgsal.avgsal ORDER BY emp.deptno;
5.7 分页查询
数据库的每行数据都有一个对应的行号,称为rownum.
SQL>SELECT a2.* FROM (SELECT a1.*, ROWNUM rn FROM (SELECT * FROM emp ORDER BY sal) a1 WHERE ROWNUM<=10) a2 WHERE rn>=6;
指定查询列、查询结果排序等,都只需要修改最里层的子查询即可。
5.8 用查询结果创建新表
SQL>CREATE TABLE mytable (id,name,sal,job,deptno) AS SELECT empno,ename,sal,job,deptno FROM emp;
5.9 合并查询(union 并集, intersect 交集, union all 并集+交集, minus差集)
SQL>SELECT ename, sal, job FROM emp WHERE sal>2500 UNION(INTERSECT/UNION ALL/MINUS) SELECT ename, sal, job FROM emp WHERE job='MANAGER';
合并查询的执行效率远高于and,or等逻辑查询。
5.10 使用子查询插入数据
SQL>CREATE TABLE myEmp(empID number(4), name varchar2(20), sal number(6), job varchar2(10), dept number(2)); 先建一张空表;
SQL>INSERT INTO myEmp(empID, name, sal, job, dept) SELECT empno, ename, sal, job, deptno FROM emp WHERE deptno=10; 再将emp表中部门号为10的数据插入到新表myEmp中,实现数据的批量查询。
5.11 使用了查询更新表中的数据
SQL>UPDATE emp SET(job, sal, comm)=(SELECT job, sal, comm FROM emp where ename='SMITH') WHERE ename='SCOTT';
6. 我在N个SF网站注册奇迹SF帐号,输完资料一点确定就出现这种页面~~怎么样解决啊急~在线等
1.检查数据库连接
2.语句检查SQL语句
System.Data.SqlClient客户访问数据库的引用
System.Data.SqlClient.SqlException就是访问出错了
' ,' 附近有语法错误:
检查SQL语句,是否中英文字符错误,只可以用英文字符
还有insert的values('a','b')格式也要'',''
7. 这是我在网上下的SQL语句 我复制在pl/sql 的新建 SQL窗口 可是运行报错啊 可是我检查过语句没问题啊
bill_unit varchar2(10) not null); --商品描述单位
status_name varchar2(10) not null); --状态类型名称
上面两条语句把;去掉就OK了。
insert into bill values(bill_sequence.nextval,'747',12,1231121,1,'波音','全球最大的飞机制作商',sysdate,'架');
这一条语句,有中文逗号。
8. 简单介绍几个常用的SQL查询语句
我们使用数据库的时候,最常用的就是SQL语句了,那么在SQL语句中比较常用的有哪些呢?下面我给大家分享一下。
首先是select语句,它经常被用于数据查询,通过select我们可以快速的检索自己想要的数据,如下图所示
然后是update语句,update是进行数据更新的语句,更新的时候一定要指定where条件,如下图所示
接下来是insert语句,insert被用来进行数据插入,运用它的时候一定注意插入的字段顺序,如下图所示
最后是delete语句,delete被用来删除表中的数据,进行删除操作的时候也要注意指定删除条件,如下图所示
9. sql查询语句
SELECT语句的基本形式为
SELECT
[ALL|DISTINCT]<目标列表达式>[,<目标列表达式>···]
FROM
<表名或视图名>[,<表名或视图名>···]
[WHERE
<条件表达式>]
语句的功能是根据WHERE子句中的条件表达式,从基本表(或视图)中找出满足条件的元组,按SELECT子句中的目标列,选出元组中的目标列形成结果表。
SQL语句对数据库的操作十分灵活方便,原因在于SELECT语句中的成分丰富多样,有许多可选形式,尤其是目标列和目标表达式,下面用例子来详细说明,例子涉及的是"学生-课程"数据库,其关系模式集如下:
学生信息表Student(SNO,SNAME,SSEX,SBIRTHDAY
CLASS)
教师信息表Teacher(TNO,TNAME,TSEX,TBIRTHDAY,DEPART)
课程信息表Course(CNO,CNAME,TNO)
成绩表Grade(SNO,CNO,DEGREE)
例题:查询Student表所有学生信息。
SELECT
*
FROM
Student;/*选择操作*/
例题:查询Student表中所有学生的学号和姓名。
SELECT
SNO,SNAME
FROM
Student;/*投影操作*/
例题:查询Grade表中成绩在60到80之间的所有记录。
SELECT
*
FROM
Grade
WHERE
degree
BETWEEN
60
AND
80;/*选择操作*/
例题:查询Grade表中成绩为85、86、88的记录。
SELECT
*
FROM
Grade
WHERE
degree
IN(85,86,88);/*选择操作*/
例题:查询所有学生的SNAME,CNAME和DEGREE。
SELECT
Student.SNAME,Course.CNAME,Grade.DEGREE
FROM
Student,Course,Grade
WHERE
Student.SNO
=
Grade.SNO,Grade.CNO
=
Course.CNO;/*连接操作*/
例题:查询"张旭"教师任课的学生成绩。
SELECT
CNO,SNO,DEGREE
FROM
Grade
WHERE
CNO=(SELECT
Course.CNO
FROM
Course,Teacher
WHERE
Course.TNO=Teacher.TNO
and
Teacher.TNAME="张旭")
此查询操作为嵌套查询。子查询在上一级查询处理之前求解,即嵌套查询是从里向外处理的,这样,外层查询可以利用内层查询的结果,在此例中首先执行子查询:
SELECT
Course.CNO
FROM
Course,Teacher
WHERE
Course.TNO=Teacher.TNO
and
Teacher.TNAME="张旭"
获得张旭老师讲授课程的课程号(801003),然后执行外查询:
SELECT
CNO,SNO,DEGREE
FROM
Grade
WHERE
CNO="801003"
获得"张旭"教师任课的学生成绩。
10. 奇迹mu用sql文件还原数据库
1、建立数据库。
2、导入sql文件,导入sql备份文件,用到sql查询工具。
3、sql查询里,选择建的数据库MuOnline打开sql文件执行sql语句。
4、《奇迹MU》是由韩国网禅Webzen开发的一款MMORPG网络游戏,于2002年在中国大陆正式上线运营。