您好。大力。可以在来看看么。谢谢了。关于更新问题的。 数据库结构我有所改变了。目前的关系图如下:http://www.atxs.net/upload/yaoyao/my2.jpg请问如何做跟新呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 得到一个字符串取得歌曲名字。检查歌曲表是否有这个名子如果有--则取得这个歌曲对应的id.并且直接把url添加到url表。id号使用获取的id号如果没有。则取得歌手名子。检查歌手表是否有这个名子。如果有取得歌手id,如果没有则加入后取得id在检查专辑表是否有这个专辑。如果有责取得id。如果没有就加入后取得id再在歌曲表中加入歌曲。并且专辑号。歌手号都使用前面获得的数据。在取得歌曲id用来操作url表在获得url地址。写入url表。id用歌曲id。这个是我的思路。不知道对不对?这个用存储过程如何写? 不好意思来晚了!最近太忙!先看看!!create procedure 名@标志 intasif @标志=1 按歌曲名查找..else if @标志=1 按歌手名子查找.. 谢谢。大力。。但是可否不要用为代码?我是着急使用。摆脱了。我已经在china-pub定购了n本的sql书了。决心攻克难关。但是现在的时间不允许我等我慢慢学后在座这个库了。。 create procedure 名@标志 int,@参数 varchar(100)asif @标志=1 select * from 歌曲表 where 歌曲名 like '%'+@参数+'%'else if @标志=2 select * from 歌手表 where 歌手名 like '%'+@参数+'%' 其中的名/参数。标志。等都是什么呢?我直接复制进取就可以么?我不用存储过程。直接用sql语句的为代码如下string 歌曲 = "歌曲名字";//这里检查数据库中是否有同名歌曲了。string strSQL查询歌曲 = "SELECT song_id FROM songs where song_name = " + 歌曲 + "\"";//如果这行返回有数据。则取得id号码到一个字符串中string 歌曲id = id ;string 歌曲url = url;string strInsert歌曲 = @"INSERT INTO songs_on_the_net ( song_id , url ) VALUES ( "" + 歌曲id + "" , "" + 歌曲url + "")"; //如果没有返回数据,则取得歌手名仔string 歌手 = 歌手名字;string strSQL查询歌手 = "SELECT singer_id FROM singers where singer_name = " + 歌手 + "\"";//如果有返回。则取得歌手id号码到一个字符串string 歌手id = id ;//如果没有返回数据/则加入这个歌手。并且返回idstring 歌手名字 = 歌手名字;string 歌手地区 = 歌手地区;string 歌手介绍 = 歌手介绍;string strInsert歌手 = @"INSERT INTO singers ( singer_name , singer_zone , singer_intro ) VALUES ( "" + 歌手名字 + "" , "" +歌手地区 + "" , "" +歌手介绍 + "")"; //再取得这个歌手的idstring 专辑 = 专辑;//查询专辑表。看是否有这个专辑。如果有。返回专辑idstring strSQL查询专辑 = "SELECT album_id FROM album where album_name = " + 专辑 + "\"";string 专辑id = 专辑id;//如果没有,则加入专辑。返回idstring 专辑 = 专辑名字;string 专辑语言 = 专辑语言;string strInsert专辑 = @"INSERT INTO album ( album_name , singer_id , 专辑语言 ) VALUES ( "" + 专辑名字 + "" , "" +歌手id + "" , "" +专辑语言 + "")"; //在取得专辑id//现在在歌曲表中加入歌曲string strInsert歌曲 = @"INSERT INTO songs ( singer_id , album_id , song_name ) VALUES ( "" + 歌手id + "" , "" +专辑id + "" , "" +歌曲 + "")"; //然后取得插入的id号码//最后执行一条语句string 最后的歌曲id = 歌曲id;string strInsert歌曲 = @"INSERT INTO songs_on_the_net ( song_id , url ) VALUES ( "" + 最后的歌曲id + "" , "" + 歌曲url + "")"; 数据库中的表如下http://www.atxs.net/upload/yaoyao/my2.jpg其实这个存储过程的工作如下:得到一个或几个参数:有。歌曲名字 歌手名,专辑名字。url等字等等。1:先判断歌曲表中是否有歌曲名字。如果有就得倒对应的歌曲id。然后把参数中的url和歌曲id添加到歌曲url对应表上2:如果上一步不成立(歌曲表中没有这个歌曲名字),则获得参数歌手名字。然后查询歌手表是否有这个歌手,如果有则取回id.如果没有就添加歌手后取回id3: 得到参数专辑,查询专辑表中是否有这个专辑。有则取回id,没有就添加专辑后取回id4: 根据2和3得到的参数。在加上歌曲名字。添加歌曲表。然后取回添加的id5:得到参数歌曲url。在歌曲url对应表上添加相关条目。大概就这个过程。。但是实际上还有一些其他参数。比如参数中可能还有其他信息要添加到相应的表上。比如3的时后可能如果没有这个专辑。添加专辑的时后还要添加这个专辑的语言这类地参数。 sql两个表之间数据导入(表结构不同,在线等!!!!) 请问高手们 如何实现这个统计?? 请大家为我洗刷不明之冤啊——Sql Server2000数据库服务器上帐号权限丢失问题 谁能给讲解下函数依赖啊 这个多选查询怎么实现? 求BOM展开函数 求助SQL 查询 sql2005 有谁能把我的存储过程改为oracle的啊!简单的存储过程 在B/S结构中如何往SQLSERVER中插入3-5MB的word文档(也就是大容量的插入问题)又如何读取?谢谢 小弟又遇到困难,各位大哥请进! 为什么导入数据库时失去主键?怎么做能避免?
如果有--则取得这个歌曲对应的id.并且直接把url添加到url表。id号使用获取的id号如果没有。则取得歌手名子。检查歌手表是否有这个名子。如果有取得歌手id,如果没有则加入后取得id
在检查专辑表是否有这个专辑。如果有责取得id。如果没有就加入后取得id
再在歌曲表中加入歌曲。并且专辑号。歌手号都使用前面获得的数据。在取得歌曲id用来操作url表
在获得url地址。写入url表。id用歌曲id。这个是我的思路。不知道对不对?
这个用存储过程如何写?
最近太忙!
先看看!!
create procedure 名
@标志 int
as
if @标志=1
按歌曲名查找..
else if @标志=1
按歌手名子查找..
我是着急使用。摆脱了。我已经在china-pub定购了n本的sql书了。决心攻克难关。但是现在的时间不允许我等我慢慢学后在座这个库了。。
@标志 int,
@参数 varchar(100)
as
if @标志=1
select * from 歌曲表 where 歌曲名 like '%'+@参数+'%'
else if @标志=2
select * from 歌手表 where 歌手名 like '%'+@参数+'%'
//这里检查数据库中是否有同名歌曲了。
string strSQL查询歌曲 = "SELECT song_id FROM songs where song_name = " + 歌曲 + "\"";
//如果这行返回有数据。则取得id号码到一个字符串中
string 歌曲id = id ;
string 歌曲url = url;
string strInsert歌曲 = @"INSERT INTO songs_on_the_net ( song_id , url ) VALUES ( "" + 歌曲id + "" , "" + 歌曲url + "")";
//如果没有返回数据,则取得歌手名仔
string 歌手 = 歌手名字;
string strSQL查询歌手 = "SELECT singer_id FROM singers where singer_name = " + 歌手 + "\"";
//如果有返回。则取得歌手id号码到一个字符串
string 歌手id = id ;
//如果没有返回数据/则加入这个歌手。并且返回id
string 歌手名字 = 歌手名字;
string 歌手地区 = 歌手地区;
string 歌手介绍 = 歌手介绍;
string strInsert歌手 = @"INSERT INTO singers ( singer_name , singer_zone , singer_intro ) VALUES ( "" + 歌手名字 + "" , "" +歌手地区 + "" , "" +歌手介绍 + "")";
//再取得这个歌手的id
string 专辑 = 专辑;
//查询专辑表。看是否有这个专辑。如果有。返回专辑id
string strSQL查询专辑 = "SELECT album_id FROM album where album_name = " + 专辑 + "\"";
string 专辑id = 专辑id;
//如果没有,则加入专辑。返回id
string 专辑 = 专辑名字;
string 专辑语言 = 专辑语言;
string strInsert专辑 = @"INSERT INTO album ( album_name , singer_id , 专辑语言 ) VALUES ( "" + 专辑名字 + "" , "" +歌手id + "" , "" +专辑语言 + "")";
//在取得专辑id
//现在在歌曲表中加入歌曲
string strInsert歌曲 = @"INSERT INTO songs ( singer_id , album_id , song_name ) VALUES ( "" + 歌手id + "" , "" +专辑id + "" , "" +歌曲 + "")";
//然后取得插入的id号码
//最后执行一条语句
string 最后的歌曲id = 歌曲id;
string strInsert歌曲 = @"INSERT INTO songs_on_the_net ( song_id , url ) VALUES ( "" + 最后的歌曲id + "" , "" + 歌曲url + "")";
数据库中的表如下
http://www.atxs.net/upload/yaoyao/my2.jpg其实这个存储过程的工作如下:
得到一个或几个参数:
有。歌曲名字 歌手名,专辑名字。url等字等等。
1:先判断歌曲表中是否有歌曲名字。如果有就得倒对应的歌曲id。然后把参数中的url和歌曲id添加到歌曲url对应表上
2:如果上一步不成立(歌曲表中没有这个歌曲名字),则获得参数歌手名字。然后查询歌手表是否有这个歌手,如果有则取回id.如果没有就添加歌手后取回id
3: 得到参数专辑,查询专辑表中是否有这个专辑。有则取回id,没有就添加专辑后取回id
4: 根据2和3得到的参数。在加上歌曲名字。添加歌曲表。然后取回添加的id
5:得到参数歌曲url。在歌曲url对应表上添加相关条目。大概就这个过程。。但是实际上还有一些其他参数。比如参数中可能还有其他信息要添加到相应的表上。比如3的时后可能如果没有这个专辑。添加专辑的时后还要添加这个专辑的语言这类地参数。