| Hỏi bài xíu | |
|
|
Tác giả | Thông điệp |
---|
Sieg Intel® Core™ 2 Duo
Tổng số bài gửi : 50 Age : 35 Đến Từ : TN Hobbies : Game Vi Phạm : Registration date : 07/04/2008
| Tiê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 | |
|
| |
tieutu119 Mod
Tổng số bài gửi : 85 Age : 34 Đến Từ : K2C4.1 VNU-UIT Hobbies : Music, movies, etc.... Chuyên Ngành : Computer Engineering Tên : Hoài Duy Vi Phạm : Registration date : 05/04/2008
| Tiê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? | |
|
| |
orange_money Intel® Pentium® 4
Tổng số bài gửi : 5 Age : 34 Đến Từ : k2c4.2 Hobbies : danh nhau Chuyên Ngành : chua biet Vi Phạm : Registration date : 07/04/2008
| Tiê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 | |
|
| |
.:super_crazy:. Intel® Core™ 2 Extreme
Tổng số bài gửi : 196 Age : 35 Đến Từ : nơi đã đi khỏi Hobbies : thất nghiệp Chuyên Ngành : thích gì làm đó Vi Phạm : Registration date : 07/04/2008
| Tiê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 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 | |
|
| |
andungtra Intel® Pentium® D
Tổng số bài gửi : 12 Age : 35 Đến Từ : UIT Hobbies : IT Chuyên Ngành : IT Vi Phạm : Registration date : 07/04/2008
| Tiê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 . | |
|
| |
.:super_crazy:. Intel® Core™ 2 Extreme
Tổng số bài gửi : 196 Age : 35 Đến Từ : nơi đã đi khỏi Hobbies : thất nghiệp Chuyên Ngành : thích gì làm đó Vi Phạm : Registration date : 07/04/2008
| Tiê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 | |
|
| |
andungtra Intel® Pentium® D
Tổng số bài gửi : 12 Age : 35 Đến Từ : UIT Hobbies : IT Chuyên Ngành : IT Vi Phạm : Registration date : 07/04/2008
| Tiêu đề: Re: Hỏi bài xíu Sat Apr 19, 2008 3:30 pm | |
| bạn thử chạy 2 lệnh select và from ở 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 | |
|
| |
.:super_crazy:. Intel® Core™ 2 Extreme
Tổng số bài gửi : 196 Age : 35 Đến Từ : nơi đã đi khỏi Hobbies : thất nghiệp Chuyên Ngành : thích gì làm đó Vi Phạm : Registration date : 07/04/2008
| Tiê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ứ | |
|
| |
andungtra Intel® Pentium® D
Tổng số bài gửi : 12 Age : 35 Đến Từ : UIT Hobbies : IT Chuyên Ngành : IT Vi Phạm : Registration date : 07/04/2008
| Tiê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 | |
|
| |
VY YEN Intel® Pentium® D
Tổng số bài gửi : 13 Age : 34 Đến Từ : HỒ CHÍ MINH CITY Hobbies : LISTEN MUSIC Chuyên Ngành : CHƯA BIẾT Vi Phạm : Registration date : 05/04/2008
| Tiê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 | |
|
| |
tieutu119 Mod
Tổng số bài gửi : 85 Age : 34 Đến Từ : K2C4.1 VNU-UIT Hobbies : Music, movies, etc.... Chuyên Ngành : Computer Engineering Tên : Hoài Duy Vi Phạm : Registration date : 05/04/2008
| Tiê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ỉ? | |
|
| |
VY YEN Intel® Pentium® D
Tổng số bài gửi : 13 Age : 34 Đến Từ : HỒ CHÍ MINH CITY Hobbies : LISTEN MUSIC Chuyên Ngành : CHƯA BIẾT Vi Phạm : Registration date : 05/04/2008
| Tiê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 | |
|
| |
Sieg Intel® Core™ 2 Duo
Tổng số bài gửi : 50 Age : 35 Đến Từ : TN Hobbies : Game Vi Phạm : Registration date : 07/04/2008
| Tiê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 | |
|
| |
andungtra Intel® Pentium® D
Tổng số bài gửi : 12 Age : 35 Đến Từ : UIT Hobbies : IT Chuyên Ngành : IT Vi Phạm : Registration date : 07/04/2008
| Tiê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. | |
|
| |
Sieg Intel® Core™ 2 Duo
Tổng số bài gửi : 50 Age : 35 Đến Từ : TN Hobbies : Game Vi Phạm : Registration date : 07/04/2008
| Tiê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??? | |
|
| |
andungtra Intel® Pentium® D
Tổng số bài gửi : 12 Age : 35 Đến Từ : UIT Hobbies : IT Chuyên Ngành : IT Vi Phạm : Registration date : 07/04/2008
| Tiê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ụ | |
|
| |
Sieg Intel® Core™ 2 Duo
Tổng số bài gửi : 50 Age : 35 Đến Từ : TN Hobbies : Game Vi Phạm : Registration date : 07/04/2008
| Tiê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ụ ^^ | |
|
| |
Sponsored content
| Tiêu đề: Re: Hỏi bài xíu | |
| |
|
| |
| Hỏi bài xíu | |
|