㈠ sql 語句刪除問題同時刪除兩個表內關聯的數據
一個sql語句是沒辦法執行兩個刪除操作,如果你要實現上面的功能,有以下幾個選擇:
1.用外鍵關聯刪除,把B表的uid設成外鍵關聯A表的ID,並關聯刪除操作
2.用存儲過程,用事務來處理實現;
望採納!
㈡ sql資料庫刪除了怎麼恢復數據
sql
server中誤刪除數據的恢復本來不是件難事,從事務日誌恢復即可。但是,這個恢復需要有兩個前提條件:
1.
至少有一個誤刪除之前的資料庫完全備份。
2.
資料庫的恢復模式(recovery
mode)是「完整(full)」。
針對這兩個前提條件,會有三種情況:
情況一、如果這兩個前提條件都存在,通過sql語句只需三步就能恢復(參考文章),無需藉助第三方工具。
a)
備份當前資料庫的事務日誌:backup
log
[資料庫名]
to
disk=
n'備份文件名'
with
norecovery
b)
恢復一個誤刪除之前的完全備份:restore
database
[資料庫名]
from
disk
=
n'完全備份文件名'
with
norecovery,
replace
c)
將資料庫恢復至誤刪除之前的時間點:restore
log
[資料庫]
from
disk
=
n'第一步的日誌備份文件名'
with
stopat
=
n'誤刪除之前的時間點'
,
recovery
情況二、如果第1個前提條件不存在,第2個前提條件存在,需要藉助第三方工具。
情況三、如果第2個前提條件不存在,無法恢復。所以,一定要將資料庫恢復模式設置為「完整(full)」。
我現在面臨的是第二種情況,需要找第三方工具。
開始找的是log
explorer
for
sql
server,不支持sql
server
2008。
後來找的是sql
log
rescue,也不支持sql
server
2008。
接著找到的是systools
sql
recovery,支持sql
server
2008,但需要購買,demo版並沒有數據恢復功能。
最終在officerecovery.com上找到recovery
for
sql
server,雖然也是商業軟體,需要購買,但demo版可以恢復數據,只要資料庫文件不超過24gb。幸好朋友的資料庫文件不大,用它完成了誤刪除數據的恢復。
下面分享一下用recovery
for
sql
server進行恢復的操作步驟:
1.
運行recovery
for
sql
server
2.
點擊菜單中的
file
>
recover,選擇要恢復的資料庫的數據文件(.mdf)
3.
next
>
next,進入
recovery
configuration
界面,選擇custom(選擇了custom才可以選擇從日誌中恢復誤刪除的數據)。
4.
next
進入
recovery
options
窗口,選中
search
for
deleted
records,並選擇要恢復的資料庫的日誌文件路徑(log
file
path)。
5.
next
並選擇目標文件夾(destination
folder),用於存放恢復過程中生成的sql語句與bat文件。
6.
點擊start,開始恢復操作(在上一步選擇的目標文件夾中生成相應的sql文件與bat文件),然後,出現
sql
server
database
creation
utility
窗口。
7.
next,選擇被恢復數據存放的目標資料庫。
8.
next,
選擇
import
availiable
data
from
both
database
and
log
files
9.
next,
next,
然後就完成數據的恢復!
㈢ SQL資料庫題目!!!急急急!!!
1)Students表:包含SNo,SName,SSex,SClass,SAge 其中SNo為主鍵
2)Courses表:包含CNo,CName,CGrade(開設學期),CScore(學分)、IsProfession(是否是專業課) 其中CNo為主鍵
3)Scores表:包含SNo,CNo,Score 其中SNo和CNo分別與Students中的SNo和Courses中的CNo有外鍵關系。
1)查詢全班年齡在20歲至24歲之間的所有學生的信息。
select * from Students where SAge>=20 and SAge<=24 (是否包含20和24,修改相關=號)
2)查詢開設學期為2的所有的專業課程號、課程名稱、和學分。
select CNo,CName,CScore from Courses where CGrade=2 and IsProfession=1(假設專業課是此值為1)
3)查詢學號為000004學生的所有課程的成績。
select Scores.SNo,Scores.CNo,Courses.CName,Scores.Score from Scores INNER JOIN Courses ON Scores.CNo=Courses.CNo where Scores.SNo='000004'
4)查詢姓名為「王明」的學生的所有及格課程的課程名稱和成績。
select Scores.SNo,Scores.CNo,Courses.CName,Scores.Score from Scores INNER Join
Courses ON Scores.CNo=Courses.CNo where Scores.SNo in (select SNo from Students where SName='王明') and Scores.Score>=60
5)查詢班級為「0401」的所有學生的課程名為「SQL資料庫管理」的成績,按成績降序的方式排列,如果成績相同,則按照學號進行排列。
select Scores.SNo,Scores.CNo,Courses.CName,Scores.Score from Scores INNER Join
Courses ON Scores.CNo=Courses.CNo where Scores.SNo in (select SNo from Students
where SClass='0401' order by Scores.Score
㈣ 老師你好:我想請問您一個sql: 就是有張表prod_info中有2個欄位客戶號欄位cust_id和該客戶購買的
如果要詳單
select * from prod_info a where exists(select 1
from prod_info where a.cust_id = cust_id and prod_id = '01') and
exists(select 1 from prod_info where a.cust_id = cust_id and prod_id =
'02')
如果只要戶ID
select cust_id from prod_info a where exists(select 1 from prod_info where a.cust_id = cust_id and prod_id = '01') and exists(select 1 from prod_info where a.cust_id = cust_id and prod_id = '02') group by cust_id