1. 怎麼用sql語句在已有表上設置復合主鍵
例如:x0dx0a已有一個表test_key,其中a1列為主鍵。x0dx0acreate table TEST_KEYx0dx0a(x0dx0a a1 VARCHAR2(3) not null,x0dx0a a2 VARCHAR2(3),x0dx0a b1 VARCHAR2(3),x0dx0a b2 VARCHAR2(3)x0dx0a);x0dx0a x0dx0aalter table TEST_KEYx0dx0a add constraint PK_TEST_KEY primary key (A1)x0dx0a using index;x0dx0a x0dx0a現在要將a2,b1也增加到主鍵中與原有的a1一起組成復合主鍵。語句如下:x0dx0aalter table TEST_KEYx0dx0a drop constraint PK_TEST_KEY cascade;x0dx0aalter table TEST_KEYx0dx0a add constraint PK_TEST_KEY primary key (A1, A2, B1)x0dx0a using index;x0dx0a x0dx0a這樣就可以了。
2. SQL怎樣可以復合查詢
1.insert into [部門表](bm_id,bm_name)values(1,'bm1')
2.insert into [部門表](bm_id,bm_name)values(2,'bm2')
3.insert into [部門表](bm_id,bm_name)values(3,'bm3')
4.insert into [部門表](bm_id,bm_name)values(4,'bm4')
5.insert into [員工表](u_name,u_bm)values('q',3)
6.insert into [員工表](u_name,u_bm)values('q',4)
7.insert into [員工表](u_name,u_bm)values('q',1)
8.insert into [員工表](u_name,u_bm)values('q',2)
9.select max(bm_name),sum(1) from [部門表]left join [員工表] on bm_id=u_bm
3. sql 復合函數
在查詢項中加上b.num
4. sql server 中 begin end 是什麼意思
SQL Server中使用語言是T-SQL。在T-SQL中,Begin表示語句塊的開始;End表示語句塊的結束。Begin和End類似於C語言中表示語句塊的左花括弧{ 和右花括弧 }
例如
if@i>100--判斷
--如果條件成立,執行這個語句塊
begin
selete*fromDevieInfowhereDeviceId=@i
print'篩選完畢!'
end
else
--如果條件不成立,執行這個語句塊
begin
=@i
print'刪除完畢!'
end
5. SQL復合查詢 SELECT + UPDATA 急...
Select * from db where
select name='張三' where ID like'123%' and age =18
limit 30,30
更改野氏爛如為
Select * from db where name in(
select name='張三' where ID like'123%' and age =18 )
limit 30,30
不過這頌歷散個只是查詢
更新的話可以把select改為 updata
6. sql復合查詢語句
selectt0.itemcode,t0.quantity--,t1.*,t1.docstatus,t1.canceled,t1.docdate
frompch1t0
leftjoinopcht1ont0.[DocEntry]=t1.[DocEntry]
where
t1.docdate<'2017-12-01'--條件1
andt0.itemcode='GD01002'-----條件2
union----關鍵部分,欄位一樣時,可以通過union鏈接成一個語句,當部分查詢欄位沒有時,可以根據類型補空或者0
select--t0.itemcode,t0.quantity--,t1.*,t1.docstatus,t1.canceled,t1.docdate
sum(t0.quantity)
fromign1t0
leftjoinoignt1ont0.[DocEntry]=t1.[DocEntry]
WHERE
t1.docdate<'2017-12-01'--條件1
andt0.itemcode='GD01002'-----條件2
groupbyt0.itemcode
……--後面繼續就行
--第二種,建臨時表
if(object_id('temp..#a')>0)
droptable#a
createtable#a
(
itemcodevarchar(100),
quantityint,
docstatusint,
canceledint,
docdatedate
)
insertinto#a(quantity,docstatus,docstatus,canceled,docdate)
selectt0.itemcode,t0.quantity--,t1.*,t1.docstatus,t1.canceled,t1.docdate
frompch1t0
leftjoinopcht1ont0.[DocEntry]=t1.[DocEntry]
where
t1.docdate<'2017-12-01'--條件1
andt0.itemcode='GD01002'-----條件2
insertinto#a(quantity,docstatus,docstatus,canceled,docdate)
select--t0.itemcode,t0.quantity--,t1.*,t1.docstatus,t1.canceled,t1.docdate
sum(t0.quantity)
fromign1t0
leftjoinoignt1ont0.[DocEntry]=t1.[DocEntry]
WHERE
t1.docdate<'2017-12-01'--條件1
andt0.itemcode='GD01002'-----條件2
groupbyt0.itemcode
……--繼續插入數據
--最後查詢
select*from#a
--關於存儲過程
Createprocsp_Test
(
@ddate,
@codevarchar(100)
)
as
begin
--這里只放一個語句,用於參數的示例,只需要將上面的語句放到存儲過程中,並將參數替換就可以了
select--t0.itemcode,t0.quantity--,t1.*,t1.docstatus,t1.canceled,t1.docdate
sum(t0.quantity)
fromign1t0
leftjoinoignt1ont0.[DocEntry]=t1.[DocEntry]
WHERE
t1.docdate<@d--條件1
andt0.itemcode=@code-----條件2
groupbyt0.itemcode
end
7. sql查詢 復合主鍵的查詢語句怎麼寫
查詢什麼,哪個列組合是主鍵?sql語句復合主鍵有2種比較常用的寫法
,假如表a
,是以a1,a2組合作為主鍵,一種是同時寫出a1,a2條件,一種是a1||a2作為主鍵
8. 資料庫中復合主鍵如何查詢,sql 語句如何寫
zwb12340 說的就是錯的
首先來說一下你的這兩種寫法
1.這一個比較快,其實這是把兩個SQL 拼接成1個SQL,但是在拼接的時候使用了UNION ,這個過程會排序去重復,這一點上會影響性能。可以把UNION 改成UNION ALL,UNION ALL不會排序去重,可能效率會更好一點
2.這一個不會太快,因為使用in的話,默認是不使用索引的,那麼這一個過程會全表掃描,那麼就很慢了(我這里說的索引是默認的B+樹索引,是自動屏蔽的,如果是BITMAP索引的話,是會使用的),
對於你這個問題的解決,我給以下幾個意見
1.首先把UNION改成UNION ALL試一試,看效率怎麼樣
2.檢查是否在proct上有沒有索引,盡量建一個索引
3.如果以上兩個改進之後,還沒效果的話,可以在這個表上,基於proct建立分區表,使用分區表的話,那麼效果會比較明顯
9. 求一個sql復合查詢
select manager.id "編號",manager.name "姓名"
from emplyoee manager
where manager.id > (沒看懂,你這個是什麼意思亮殲物)
and manager.age<
(select employee.age from employee manager
where employee.manager=manager.id
);
經理編號大?是什敬液么意思啊,我這里改殲的理解是大於某個數