(¯`*•.¸WELCOME TO K2C4 FORUM¸.•*´¯)

TỰ TIN – ĐOÀN KẾT – THÀNH CÔNG

 
Trang ChínhGalleryCalendarThông BáoTrợ giúpTìm kiếmĐăng kýĐăng Nhập

Share | 
 

 Hỏi bài xíu

Xem chủ đề cũ hơn Xem chủ đề mới hơn Go down 
Tác giảThông điệp
Sieg
Intel® Core™ 2 Duo
Intel® Core™ 2 Duo
avatar

Nam
Tổng số bài gửi : 50
Age : 28
Đến Từ : TN
Hobbies : Game
Vi Phạm :
0 / 1000 / 100

Registration date : 07/04/2008

Bài gửiTiêu đề: Hỏi bài xíu   Tue Apr 08, 2008 4:29 pm

Mình mới làm SQL nên k rành lắm. Cho mình hỏi cái này:
Khi mình cần ràng buộc cho thuộc tính mà điều kiện ràng buộc lại liên quan đến thuộc tính của 2 bảng thì sao??
vì bình thường lệnh: ALTER TABLE ADD CONSTRAINT CHECK () chỉ gọi đc 1 bảng àh.
Giống bài nào trong BTTH thầy cho đó, Yêu cầu ngày sinh khách hàng phải lớn hơn ngày mua hàng( NGAYHD)
Ai bít làm chỉ zới nha Crying or Very sad
Về Đầu Trang Go down
Xem lý lịch thành viên
tieutu119
Mod
Mod
avatar

Nam
Tổng số bài gửi : 85
Age : 28
Đến Từ : K2C4.1 VNU-UIT
Hobbies : Music, movies, etc....
Chuyên Ngành : Computer Engineering
Tên : Hoài Duy
Vi Phạm :
0 / 1000 / 100

Registration date : 05/04/2008

Bài gửiTiêu đề: Re: Hỏi bài xíu   Tue Apr 08, 2008 9:03 pm

Trong SQL mình chỉ có thể ràng buộc 1 thuộc tính của bảng này với 1 thuộc tính của bảng khác (điều kiện là phải củng Data type.
Sieg đã viết:

ràng buộc cho thuộc tính mà điều kiện ràng buộc lại liên quan đến thuộc tính của 2 bảng thì sao??
:
Mình chưa thấy kiểu ràng buộc đó bao giờ cả. Bạn có thể nêu ra 1 ví dụ cụ thể được hok?

_________________
WELCOME TO MY BLOG
>>http://360.yahoo.com/yan_new_jerry8x<<
Về Đầu Trang Go down
Xem lý lịch thành viên http://360.yahoo.com/yan_new_jerry8x
orange_money
Intel® Pentium® 4
Intel® Pentium® 4
avatar

Nữ
Tổng số bài gửi : 5
Age : 27
Đến Từ : k2c4.2
Hobbies : danh nhau
Chuyên Ngành : chua biet
Vi Phạm :
0 / 1000 / 100

Registration date : 07/04/2008

Bài gửiTiêu đề: Re: Hỏi bài xíu   Thu Apr 17, 2008 6:19 pm

cho hoi:inner join,left join,right join ,full join khac nhau cho nao?kien thuc nong can,xin chi giao
Về Đầu Trang Go down
Xem lý lịch thành viên
.:super_crazy:.
Intel® Core™ 2 Extreme
Intel® Core™ 2 Extreme
avatar

Nam
Tổng số bài gửi : 196
Age : 28
Đến Từ : nơi đã đi khỏi
Hobbies : thất nghiệp
Chuyên Ngành : thích gì làm đó
Vi Phạm :
0 / 1000 / 100

Registration date : 07/04/2008

Bài gửiTiêu đề: Re: Hỏi bài xíu   Fri Apr 18, 2008 12:26 pm

Sieg đã viết:
Mình mới làm SQL nên k rành lắm. Cho mình hỏi cái này:
Khi mình cần ràng buộc cho thuộc tính mà điều kiện ràng buộc lại liên quan đến thuộc tính của 2 bảng thì sao??
vì bình thường lệnh: ALTER TABLE ADD CONSTRAINT CHECK () chỉ gọi đc 1 bảng àh.
Giống bài nào trong BTTH thầy cho đó, Yêu cầu ngày sinh khách hàng phải lớn hơn ngày mua hàng( NGAYHD)
Ai bít làm chỉ zới nha Crying or Very sad

Mình cũng không rành lém về mấy cái ràng buộc nè , nhưng cũng xin mạo muội đưa ra một sô ý kiến như thế nè (nếu có sai mong bỏ qua cho)
câu 1 là : Khi mình cần ràng buộc cho thuộc tính mà điều kiện ràng buộc lại liên quan đến thuộc tính của 2 bảng thì sao??
vì bình thường lệnh: ALTER TABLE ADD CONSTRAINT CHECK () chỉ gọi đc 1 bảng àh.


Mình xin lấy VD cho dzễ
Giả sử có 2 bảng sanpham và bảng khachhang
Bảng 1 sanpham gồm có: masp,tensp,makh,gia,nuocsx....
Bảng 2 khachhang gồm có : tenkh , makh, ngdk,noisinh......
hai bảng nè có liên quan với nhau thông qua thuộc tính makh
Có câu hỏi : liệt kê các masp do khachhang mua co tên là "Nguyễn Văn A"(đây là VD)
Tui xin giải như sau
select masp
from khachhang,sanpham
where( khachhang.makh=sanpham.makh) and ( tenkh="Nguyen Van A")
Theo mình thì cái để ràng buộc thuộc tình hai bảng trên đó là phần chữ in đó trên Vd đó( hôk biết phải hôk)

câu 2:Yêu cầu ngày sinh khách hàng phải lớn hơn ngày mua hàng( NGAYHD)
Có hai trường hợp
Trường hợp 1: nếu hai thuôc tình ngsinh và ngmh(ngày mua hàng) cùng ở chung 1 bảng ( ví dụ : ở bảng khachhang) thì chỉ cầ viết câu đk where như sau
where (date(ngsinh)>(date(ngmh)) là ok
nếu muốn mặc định là dd/mm/yyyy thì viế thêm câu nè : set dateformat dmy
Còn trường hợp 2 : nếu hai thuộc tính nè ở hai bảng khác nhau
Giả sử thuộc tính : ngmh ở bảng hoadon( gồm masp,makh,gia,ngmh....)
Còn thuộc tính : ngsinh ở bảng khachhang ( gồm có tênkh,makh,....)
Thì giả như câu hỏi là : liệt kê tên khác hàng có ngày mua < ngày sinh
select khachhang.makh
from khachhang,hoadon
where (khachhang.makh=hoadon.makh) and( date(ngsinh)>date(ngmh))
Rùi tui đã tạm giải mấy câu của bạn , hôk bik đúng sai mọi người đóng góp ý kiến ha
Về Đầu Trang Go down
Xem lý lịch thành viên http://www.360.yahoo.com/nguyenhuy_s3cr4z7
andungtra
Intel® Pentium® D
Intel® Pentium® D
avatar

Nam
Tổng số bài gửi : 12
Age : 28
Đến Từ : UIT
Hobbies : IT
Chuyên Ngành : IT
Vi Phạm :
0 / 1000 / 100

Registration date : 07/04/2008

Bài gửiTiêu đề: Re: Hỏi bài xíu   Fri Apr 18, 2008 10:39 pm

theo mình nghĩ đơn giản thế này
from khachhang,hoadon
dấu "," ở đây nghĩa là tích decac giữa hai bảng khachhang và hoadon .
Về Đầu Trang Go down
Xem lý lịch thành viên http://k2c2.cntt.in/
.:super_crazy:.
Intel® Core™ 2 Extreme
Intel® Core™ 2 Extreme
avatar

Nam
Tổng số bài gửi : 196
Age : 28
Đến Từ : nơi đã đi khỏi
Hobbies : thất nghiệp
Chuyên Ngành : thích gì làm đó
Vi Phạm :
0 / 1000 / 100

Registration date : 07/04/2008

Bài gửiTiêu đề: Re: Hỏi bài xíu   Sat Apr 19, 2008 2:13 pm

andungtra đã viết:
theo mình nghĩ đơn giản thế này
from khachhang,hoadon
dấu "," ở đây nghĩa là tích decac giữa hai bảng khachhang và hoadon .

ah theo mình nghĩ thì cái from đó là liệt kê những bảng nào chứa các thuộc tính liên quan đến bài làm
Về Đầu Trang Go down
Xem lý lịch thành viên http://www.360.yahoo.com/nguyenhuy_s3cr4z7
andungtra
Intel® Pentium® D
Intel® Pentium® D
avatar

Nam
Tổng số bài gửi : 12
Age : 28
Đến Từ : UIT
Hobbies : IT
Chuyên Ngành : IT
Vi Phạm :
0 / 1000 / 100

Registration date : 07/04/2008

Bài gửiTiêu đề: Re: Hỏi bài xíu   Sat Apr 19, 2008 3:30 pm

bạn thử chạy 2 lệnh selectfrom ở trên thử đi .Ở lệnh select bạn cho in ra thêm thuộc tính của bảng hoadon để nhìn cho rõ thêm
Về Đầu Trang Go down
Xem lý lịch thành viên http://k2c2.cntt.in/
.:super_crazy:.
Intel® Core™ 2 Extreme
Intel® Core™ 2 Extreme
avatar

Nam
Tổng số bài gửi : 196
Age : 28
Đến Từ : nơi đã đi khỏi
Hobbies : thất nghiệp
Chuyên Ngành : thích gì làm đó
Vi Phạm :
0 / 1000 / 100

Registration date : 07/04/2008

Bài gửiTiêu đề: Re: Hỏi bài xíu   Sat Apr 19, 2008 3:36 pm

ah , cái trên chỉ là VD đề cho việc giải thích của mình rõ hơn thui ah
Còn đúng hôk phải có bảng rõ ràng chứ
Về Đầu Trang Go down
Xem lý lịch thành viên http://www.360.yahoo.com/nguyenhuy_s3cr4z7
andungtra
Intel® Pentium® D
Intel® Pentium® D
avatar

Nam
Tổng số bài gửi : 12
Age : 28
Đến Từ : UIT
Hobbies : IT
Chuyên Ngành : IT
Vi Phạm :
0 / 1000 / 100

Registration date : 07/04/2008

Bài gửiTiêu đề: Re: Hỏi bài xíu   Sat Apr 19, 2008 3:40 pm

--câu 40.Tìm khách hàng (MAKH, HOTEN) có số lần mua hàng nhiều nhất
select khachhang.makh,khachhang.hoten,solan.lanmua
from(
select makh,count(sohd)as lanmua
from hoadon
group by makh
having count(sohd)>=all(select count(sohd)as lanmua
from hoadon
group by makh)
)as solan,khachhang
where solan.makh=khachhang.makh

Mình đưa ra một ví dụ thế này:
bước đầu bạn cho chạy hết tất cả đoạn lệnh
bước thứ 2: bạn bỏ lệnh where solan.makh=khachhang.makh ở cuối đi rồi cho chạy thử
bước thứ 3: bạn cho in ra solan

select solan.lanmua
from(
select makh,count(sohd)as lanmua
from hoadon
group by makh
having count(sohd)>=all(select count(sohd)as lanmua
from hoadon
group by makh)
)as solan
Rồi bạn so sánh
Về Đầu Trang Go down
Xem lý lịch thành viên http://k2c2.cntt.in/
VY YEN
Intel® Pentium® D
Intel® Pentium® D


Nữ
Tổng số bài gửi : 13
Age : 28
Đến Từ : HỒ CHÍ MINH CITY
Hobbies : LISTEN MUSIC
Chuyên Ngành : CHƯA BIẾT
Vi Phạm :
0 / 1000 / 100

Registration date : 05/04/2008

Bài gửiTiêu đề: Re: Hỏi bài xíu   Mon Apr 21, 2008 9:06 pm

Trả lời câu hỏi của bạn Sieg
Câu hỏi của bạn tương tự như câu 11 phần I: Ngày mua hàng(NGHD)(thuộc bảng hoá đơn) của một khách hàng thành viên sẽ lớn hơn hoặc bằng ngày khách hàng đó đăng ký thành viên (NGDK)(thuộc bảng khách hàng)
Bài này mình được thầy chỉ như sau:

--TAO KHOA LIEN KET
CREATE TRIGGER TR_NGAYHOADON_NGAYDANGKY
ON HOADON
FOR UPDATE,INSERT
AS

--KHAI BAO BIEN
DECLARE @TENKHACHHANG VARCHAR (40),
@NGAYMUAHANG SMALLDATETIME,
@NGAYDANGKY SMALLDATETIME

--GAN DATA CHO BIEN
SELECT @TENKHACHHANG=B.HOTEN,
@NGAYMUAHANG=A.NGHD,
@NGAYDANGKY=B.NGDK

--NOI 2 BANG
FROM HOADON A INNER JOIN KHACHHANG B ON A.MAKH=B.MAKH

--NGAY TRONG 2 BANG KHAC NHAU SO SANH PHAI DUNG DATEDIFF
IF DATEDIFF (DAY, @NGAYDANGKY,@NGAYMUAHANG)<0
BEGIN
RAISERROR ('KHACH HANG %S PHAI CO NGAY MUA HANG LON HON NGAY DANG KY',16,1,@TENKHACHHANG)
ROLLBACK TRANSACTION
END
Về Đầu Trang Go down
Xem lý lịch thành viên
tieutu119
Mod
Mod
avatar

Nam
Tổng số bài gửi : 85
Age : 28
Đến Từ : K2C4.1 VNU-UIT
Hobbies : Music, movies, etc....
Chuyên Ngành : Computer Engineering
Tên : Hoài Duy
Vi Phạm :
0 / 1000 / 100

Registration date : 05/04/2008

Bài gửiTiêu đề: Re: Hỏi bài xíu   Mon Apr 21, 2008 10:08 pm

sao c4.1 không được dạy phần này nhỉ?

_________________
WELCOME TO MY BLOG
>>http://360.yahoo.com/yan_new_jerry8x<<
Về Đầu Trang Go down
Xem lý lịch thành viên http://360.yahoo.com/yan_new_jerry8x
VY YEN
Intel® Pentium® D
Intel® Pentium® D


Nữ
Tổng số bài gửi : 13
Age : 28
Đến Từ : HỒ CHÍ MINH CITY
Hobbies : LISTEN MUSIC
Chuyên Ngành : CHƯA BIẾT
Vi Phạm :
0 / 1000 / 100

Registration date : 05/04/2008

Bài gửiTiêu đề: Re: Hỏi bài xíu   Tue Apr 22, 2008 6:06 pm

À thầy dạy thực hành nói phần này mai mốt sẽ được học sau
Về Đầu Trang Go down
Xem lý lịch thành viên
Sieg
Intel® Core™ 2 Duo
Intel® Core™ 2 Duo
avatar

Nam
Tổng số bài gửi : 50
Age : 28
Đến Từ : TN
Hobbies : Game
Vi Phạm :
0 / 1000 / 100

Registration date : 07/04/2008

Bài gửiTiêu đề: Re: Hỏi bài xíu   Tue Apr 22, 2008 8:20 pm

orange_money đã viết:
cho hoi:inner join,left join,right join ,full join khac nhau cho nao?kien thuc nong can,xin chi giao

inner join: kết nối tự nhiên
left join: kết trái ( tức là sau phép kết thì các giá trị của bảng bên phải ko có mà bảng bên trái có thì vẫn đc tính)
right join: kết phải ( tương tự kết trái )
full join : tương tự trên nhưng mà lấy cả 2 bên
to Vy Yến: bài này ban đầu hỏi thầay thì thầy bảo dùng trigger nhưng thầy bảo k cần làm. Về nhà mò cũng k tiến bộ gì thêm
==> bỏ cuộc
to andungtra: Câu 40 mình thấy bạn làm tương đối dài. Mình làm ngắn hơn nhưng phải tạo thêm 1 bảng phụ
cấu trúc tạ bảng phụ:
Select into temp
from
where
( có thể dùng group by và having nếu mún)
Mình thấy nhìu câu sau này tạo bảng phụ làm rất dễ thì phải
Về Đầu Trang Go down
Xem lý lịch thành viên
andungtra
Intel® Pentium® D
Intel® Pentium® D
avatar

Nam
Tổng số bài gửi : 12
Age : 28
Đến Từ : UIT
Hobbies : IT
Chuyên Ngành : IT
Vi Phạm :
0 / 1000 / 100

Registration date : 07/04/2008

Bài gửiTiêu đề: Re: Hỏi bài xíu   Tue Apr 22, 2008 8:41 pm

Bạn đã thay đổi nghĩa là bạn coi bộ dữ liệu đó dở nhưng chúng ta làm chứ không nhận xét bộ dữ liệu đó hay hay là dở.Hôm trước ở lớp mình cô cho làm bài thi thử giữa kỳ của năm trước có câu tương tự như thế này mình tạo ra bảng phụ mà cô không cho mình phải sửa lại thành thế này đấy.


Được sửa bởi andungtra ngày Tue Apr 22, 2008 8:49 pm; sửa lần 1.
Về Đầu Trang Go down
Xem lý lịch thành viên http://k2c2.cntt.in/
Sieg
Intel® Core™ 2 Duo
Intel® Core™ 2 Duo
avatar

Nam
Tổng số bài gửi : 50
Age : 28
Đến Từ : TN
Hobbies : Game
Vi Phạm :
0 / 1000 / 100

Registration date : 07/04/2008

Bài gửiTiêu đề: Re: Hỏi bài xíu   Tue Apr 22, 2008 8:44 pm

Thực ra thỉ lớp mình chưa học đến đây. Mình chỉ tự mò, nhưng có 1 thắc mắc là bảng phụ Temp thì chữ "temp" lại có màu xanh. Mình nghĩ là do có 1 hàm temp trong SQL
hay là do bảng phụ tên temp có gì đặc biệt???
Về Đầu Trang Go down
Xem lý lịch thành viên
andungtra
Intel® Pentium® D
Intel® Pentium® D
avatar

Nam
Tổng số bài gửi : 12
Age : 28
Đến Từ : UIT
Hobbies : IT
Chuyên Ngành : IT
Vi Phạm :
0 / 1000 / 100

Registration date : 07/04/2008

Bài gửiTiêu đề: Re: Hỏi bài xíu   Tue Apr 22, 2008 9:12 pm

Hình như bạn đúng thì phải ,lúc đầu mình cứ tưởng bạn tạo ra bảng mới nên không được. Cái thằng select into term này tạo ra một bảng tạm xong chương trình nó sẽ xóa nên không ảnh hưởng tới bộ dữ liệu. Cám ơn bạn cung cấp cho mình kiến thức mới nha
cái này mình mới được biết đấy.Nhưng còn câu sô 43 yêu cầu Mỗi nước sản xuất, tìm sản phẩm (MASP,TENSP) có giá bán cao nhất thì bạn làm sao. MÌnh nghĩ với tích decac cho bài này là nhanh nhất không cần tạo bảng phụ
Về Đầu Trang Go down
Xem lý lịch thành viên http://k2c2.cntt.in/
Sieg
Intel® Core™ 2 Duo
Intel® Core™ 2 Duo
avatar

Nam
Tổng số bài gửi : 50
Age : 28
Đến Từ : TN
Hobbies : Game
Vi Phạm :
0 / 1000 / 100

Registration date : 07/04/2008

Bài gửiTiêu đề: Re: Hỏi bài xíu   Wed Apr 23, 2008 10:32 am

Hôm nay hỏi cô thì Temp thực ra có chữ màu xanh là vì nó thuộc 1 câu lệnh khác.
Nhưng mình tra trong muc Help thì có dòng thế này

SQL Server version 6.5 is supported by this release of English Query, but only when you install Service Pack 3 (SP3) or later. If you are not running SQL Server 6.5 with SP3, you may encounter problems with generated temp tables that are required for some queries.

Có thể là bảng temp chỉ có tác dụng với SP3 trở lên và SQL server 6.5 nên mình k chắc.
Nếu bạn thỏa điều kiện thì thử xem, chỉ việc cho chạy câu lệnh thực hiện lưu bàng phụ temp 2 lần xem nó có báo trùng k??? Nếu báo trùng thì tức bảng phu temp ko có tác dụng. K bít ai sài SP3 và SQL 6.5 ko nhỉ?? Có thì thử mình xem.
Còn câu 43 thì bạn thử đưa ra cách làm của bạn mình xem
Và hôm nay học bên C6 thì mấy câu dạng phức tạp như 40 thì cô vẫn chỉ theo cách là tạo bảng phụ ^^
Về Đầu Trang Go down
Xem lý lịch thành viên
Sponsored content




Bài gửiTiêu đề: Re: Hỏi bài xíu   

Về Đầu Trang Go down
 
Hỏi bài xíu
Xem chủ đề cũ hơn Xem chủ đề mới hơn Về Đầu Trang 
Trang 1 trong tổng số 1 trang

Permissions in this forum:Bạn không có quyền trả lời bài viết
(¯`*•.¸WELCOME TO K2C4 FORUM¸.•*´¯) :: (^_^) Trung Tâm Hội Thảo CNTT (^_^) :: Lập Trình Cơ Sở Dữ Liệu-
Chuyển đến