Advertisement
toantranct

Untitled

Jun 1st, 2021
128
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 9.24 KB | None | 0 0
  1. CREATE DATABASE QLCH;
  2. USE QLCH;
  3.  
  4. CREATE TABLE KHACH(
  5. ma_khach nvarchar(6) NOT NULL PRIMARY KEY,
  6. Ten_kh nvarchar(30),
  7. Diachi_kh nvarchar(30)
  8. )
  9.  
  10. CREATE TABLE DONHANG (
  11. so_don nvarchar(6) NOT NULL PRIMARY KEY,
  12. Ma_khach nvarchar(6),
  13. Ngay_don DATE,
  14. FOREIGN KEY (Ma_khach) REFERENCES khach(ma_khach)
  15. )
  16.  
  17. CREATE TABLE phieugiao(
  18. so_phieu nvarchar(6) NOT NULL PRIMARY KEY,
  19. ma_khach nvarchar(6),
  20. ngay_giao DATE,
  21. noi_giao nvarchar(30),
  22. tong_tien FLOAT(9),
  23. FOREIGN KEY (ma_khach) REFERENCES khach(ma_khach)
  24. )
  25.  
  26. CREATE TABLE dongphieu(
  27. so_phieu nvarchar(6),
  28. ma_hang nvarchar(6),
  29. don_gia FLOAT(6),
  30. so_luonggi FLOAT(7),
  31. FOREIGN KEY (so_phieu) REFERENCES phieugiao(so_phieu),
  32. FOREIGN KEY (ma_hang) REFERENCES  hang(ma_hang)
  33. )
  34.  
  35. CREATE TABLE hang(
  36. ma_hang nvarchar(6) NOT NULL PRIMARY KEY,
  37. ten_hang nvarchar(15),
  38. mota_hang nvarchar(30),
  39. don_vi nvarchar(10)
  40. )
  41.  
  42. CREATE TABLE dongdon(
  43. so_don nvarchar(6),
  44. ma_hang nvarchar(6),
  45. so_luongd INT,
  46. FOREIGN KEY (so_don) REFERENCES donhang(so_don),
  47. FOREIGN KEY (ma_hang) REFERENCES hang(ma_hang)
  48. )
  49.  
  50. -- 2
  51. ALTER TABLE khach
  52. ADD sothich text;
  53.  
  54. SELECT * FROM khach;
  55. -- thêm 2 cột noicungcap và noisanxuat kiểu text
  56. ALTER TABLE hang
  57. ADD NoiCungCap text, NoiSanXuat text;
  58.  
  59. --2 sửa kiểu dữ liệu sothich từ text sang memo(nvarchar)
  60. ALTER TABLE khach
  61. ALTER COLUMN SoThich nvarchar;
  62.  
  63. -- sửa kiểu dữ liệu NoiCungCap sang số
  64. ALTER TABLE hang
  65. ALTER COLUMN noicungcap NUMERIC;
  66.  
  67. -- xoá cột NoiCungCap, NoiSanXuat trong bảng hang
  68. ALTER TABLE hang
  69. DROP COLUMN noicungcap, noisanxuat;
  70.  
  71. -- xoá cột sothich trong bảng khach
  72. ALTER TABLE khach
  73. DROP COLUMN SoThiCh;
  74.  
  75. --II
  76. SELECT * FROM khach;
  77. INSERT INTO khach
  78. VALUES ('K001', N'Đào Minh Thư', N'Đại học Quốc gia'),
  79.     ('K002', N'Nguyễn Liên Dung', N'BNC'),
  80.     ('K003', N'Phạm Hoàng Nhung', N'Đại học Thuỷ Lợi'),
  81.     ('K004', N'Trịnh Hồng Cường', N''),
  82.     ('K005', N'Nguyễn Văn Hải', N'Đại học Thuỷ Lợi');
  83. INSERT INTO donhang
  84. VALUES ('DH001', 'K001', '3/22/2002'),
  85.     ('DH002', 'K001', '7/13/2003'),
  86.     ('DH003', 'K002', '12/24/2002');
  87. INSERT INTO hang
  88. VALUES ('H001', N'Hoa loa kèn', N'Hoa trắng, to', 'Bông'),
  89.         ('H002', N'Hoa hồng', N'Nhiều mau', 'Bông'),
  90.         ('H003', N'Hoa lan', N'', 'Cành');
  91.  
  92. SELECT * FROM khach;
  93. SELECT * FROM donhang;
  94. SELECT * FROM dongdon;
  95. SELECT * FROM hang;
  96. SELECT * FROM dongphieu;
  97. SELECT * FROM phieugiao;
  98. INSERT INTO dongdon
  99. VALUES ('DH001','H001', 100),
  100.         ('DH001','H002', 30),
  101.         ('DH002','H003', 1);
  102. INSERT INTO phieugiao
  103. VALUES ('PG001', 'K001', '05/12/2017', N'Cồn nổi', 500),
  104.         ('PG002', 'K002', '03/22/2018', N'Hà nội', 500),
  105.         ('PG003', 'K002', '01/01/2018', N'Thanh hoá', 500);
  106. -- them phieu giao
  107. INSERT INTO phieugiao
  108. VALUES ('PG004', 'K002', '10/28/2017', N'Hà nội', 350000),
  109.         ('PG005', 'K004', '12/19/2018', N'Thanh hoá', 490000),
  110.         ('PG006', 'K001', '02/23/2019', N'Hà nội', 1000000);
  111. INSERT INTO dongphieu
  112. VALUES ('PG001','H001', 30000 , 20),
  113.         ('PG002','H003', 15000 , 2),
  114.         ('PG003','H002', 5000 , 130);
  115.  
  116. DELETE FROM dongdon WHERE ma_hang = 'H001';
  117. DELETE FROM dongphieu WHERE ma_hang = 'H001';
  118. DELETE FROM hang WHERE ma_hang = 'H001';
  119.  
  120. DELETE FROM khach WHERE Diachi_kh = N'Đại học Thuỷ Lợi';
  121. DELETE FROM khach WHERE Ten_kh = N'Trịnh Hồng Cường';
  122. SELECT * FROM khach;
  123.  
  124. --Sửa đổi địa chỉ của khách hàng thành địa chỉ mới là Đại học Quốc Gia với ma_khach là K002.
  125. UPDATE khach
  126. SET Diachi_kh = N'Đại học Quốc Gia'
  127. WHERE ma_khach = 'K002';
  128. SELECT * FROM khach;
  129.  
  130. --Sửa đổi tất cả các tên hàng là “Hoa lan” thành “Hoa phong lan” và mô tả hàng là “Hàng nhập khẩu từ Đà Lạt”
  131. UPDATE hang
  132. SET ten_hang = N'Hoa phong lan', mota_hang = N'Hàng nhập khẩu từ Đà Lạt'
  133. WHERE ten_hang = N'Hoa lan';
  134. SELECT * FROM hang;
  135. --III
  136. -- 1. Xem toàn bộ nội dung của bảng KHACH
  137. SELECT * FROM khach;
  138.  
  139. --2. Xem toàn bộ nội dung của bảng HANG.
  140. SELECT * FROM hang;
  141.  
  142. -- 3. Xem toàn bộ nội dung của bảng DONHANG.
  143. SELECT * FROM donhang;
  144.  
  145. -- 4. Đưa ra Tên và Địa chỉ của tất cả các Khách hàng trong bảng KHACH.
  146. SELECT Ten_kh, Diachi_kh FROM khach;
  147.  
  148. -- 5. Đưa ra Tên hàng, Mô tả hàng và Đơn vị tính của tất cả các mặt hàng trong bảng HANG.
  149. SELECT ten_hang, mota_hang, don_vi
  150. FROM hang;
  151.  
  152. --6. Đưa ra tất cả các đơn vị tính dùng để tính hàng hóa.
  153. SELECT don_vi FROM hang;
  154.  
  155. --7. Đưa ra tất cả các tên hàng trong bảng HANG.
  156. SELECT ten_hang FROM hang;
  157.  
  158. -- 8. Đưa ra tất cả các địa chỉ của khách hàng.
  159. SELECT diachi_kh FROM KHACH;
  160.  
  161. -- 9. Đưa ra so_phieu, ma_hang, don_gia, soluonggi và Thành tiền (don_gia*so_luong) của tất cả các hàng trong bảng DONGPHIEU.
  162. SELECT so_phieu, ma_hang, don_gia, so_luonggi, don_gia*so_luonggi AS ThanhTien
  163. FROM dongphieu;
  164.  
  165. -- 10. Đưa ra so_phieu, ma_hang, don_gia, soluonggi và Thành tiền (don_gia*so_luong),sử dụng bí danh la thanh_tien của tất cả các hàng trong bảng DONGPHIEU
  166. SELECT so_phieu, ma_hang, don_gia, so_luonggi, don_gia*so_luonggi AS ThanhTien
  167. FROM dongphieu AS thanhtien;
  168.  
  169. --11. Đưa ra tất cả giá trị của bảng HANG theo thứ tự giảm dần của ma_hang.
  170. SELECT * FROM hang
  171. ORDER BY ma_hang DESC;
  172.  
  173. --12. Đưa ra tất cả các giá trị của bảng PHIEUGIAO theo thứ tự tăng dần (giảm dần) của tổng tiền (tong_tien).
  174. -- tăng dần
  175. SELECT * FROM phieugiao
  176. ORDER BY tong_tien;
  177.  
  178. -- giảm dần
  179. SELECT * FROM phieugiao
  180. ORDER BY tong_tien DESC;
  181.  
  182. --13. Đưa ra tất cả các khách hàng có địa chỉ là Đại học Quốc Gia trong bảng KHACH.
  183. SELECT * FROM KHACH
  184. WHERE Diachi_kh = N'Đại học Quốc Gia';
  185.  
  186. --14. Đưa ra So_phieu, Ma_khach trong bảng PHIEUGIAO với điều kiện Tong_tien>=100.000, và sắp xếp theo điều kiện giảm dần của Tong_tien.
  187. SELECT so_phieu, ma_khach
  188. FROM phieugiao
  189. WHERE tong_tien >= 100000
  190. ORDER BY tong_tien DESC;
  191.  
  192. --15. Đưa ra ten_hang, mota_hang của những hàng hóa có don_vi được tính theo bông trong bảng HANG.
  193. SELECT ten_hang, mota_hang
  194. FROM hang
  195. WHERE don_vi = N'Bông';
  196.  
  197. --16. Đưa ra danh sách các bản ghi bao gồm so_phieu, ma_khach, ngay_giao trong bảng PHIEUGIAO với điều kiện Noi_giao là Hà Nội và Tong_tien> 50.000.
  198. SELECT so_phieu, ma_khach, ngay_giao
  199. FROM phieugiao
  200. WHERE noi_giao = N'Hà Nội' AND tong_tien > 50000;
  201.  
  202. -- 17. Đưa ra danh sách các bản ghi bao gồm Ma_khach, Ten_khach trong bảng KHACH với điều kiện địa chỉ của khách ở Đại học Quốc Gia hoặc Đại học Thủy Lợi.
  203. SELECT ma_khach, Ten_kh
  204. FROM khach
  205. WHERE Diachi_kh IN (N'Đại học Quốc gia', N'Đại học Thuỷ Lợi');
  206.  
  207. -- 18. Đưa ra những mặt hàng trong bảng HANG có đơn vị tính là Bông, Cành hoặc Bó.
  208. SELECT * FROM hang
  209. WHERE don_vi IN (N'Bông', N'Cành', N'Bó');
  210.  
  211. --19. Đưa ra danh sách những khách hàng (Ma_khach, Tong_tien) nằm trong bảng PHIEUGIAO có Noi_giao nằm trong số các địa điểm sau: Hà Nội, Hồ Chí Minh, Hải Phòng.
  212. SELECT ma_khach, tong_tien FROM phieugiao
  213. WHERE noi_giao IN (N'Hà Nội', N'Hồ Chí Minh', N'Hải Phòng');
  214.  
  215. -- 20. Đưa ra tất cả những thông tin trong bảng PHIEUGIAO với điều kiện tong_tien nằm trong khoảng từ 100.000 đến 500.000.
  216. SELECT * FROM phieugiao
  217. WHERE tong_tien BETWEEN 100000 AND 500000;
  218.  
  219. --21. Đưa ra ma_kh, ten_kh trong bảng KHACH của những khách hàng có họ là Nguyễn.
  220. SELECT ma_khach, ten_kh FROM khach
  221. WHERE Ten_kh LIKE N'Nguyễn%';
  222.  
  223. --22. Đếm số lần mua hàng của khách hàng có ma_kh là K001 trong bảng PHIEUGIAO. Thuộc tính mới này được đặt tên là SoLanMua.
  224. SELECT COUNT(ma_khach) AS SoLanMua
  225. FROM phieugiao
  226. WHERE ma_khach = 'K001';
  227.  -- c2
  228. SELECT  ma_khach, COUNT(ma_khach) AS SoLanMua
  229. FROM phieugiao
  230. GROUP BY ma_khach
  231. HAVING  ma_khach = 'K001';
  232.  
  233. -- 23. Tính tổng tiền trung bình của mỗi PHIEUGIAO. Thuộc tính mới này được đặt tên là TrungBinhPG.
  234. SELECT  ma_khach, avg(tong_tien) AS TrungBinhPG
  235. FROM phieugiao
  236. GROUP BY ma_khach;
  237.  
  238. SELECT * FROM phieugiao;
  239. --24. Tính tổng tiền trong bảng PHIEUGIAO của những khách hàng có ma_khach = ‘K002’.
  240. SELECT SUM(tong_tien) AS TrungBinhPG
  241. FROM phieugiao
  242. WHERE ma_khach = 'K002';
  243.  
  244. -- 25. Tính tổng số các khách hàng trong bảng KHACH có địa chỉ (diachi_KH) là Đại học Thủy Lợi.
  245. INSERT INTO khach
  246. VALUES  ('K004', N'Trịnh Đình Quang', N'Đại học Thuỷ Lợi'),
  247.     ('K005', N'Nguyễn Văn Hải', N'Đại học Thuỷ Lợi');
  248.  
  249. SELECT COUNT(ten_kh) AS TongSoKhachHang
  250. FROM khach
  251. WHERE Diachi_kh = N'Đại học Thuỷ Lợi';
  252.  
  253.  
  254. --26.  Đưa ra ma_khach, ngay_giao, noi_giao trong bảng PHIEUGIAO có tong_tien thanh toán lớn nhất.
  255. SELECT ma_khach, ngay_giao, noi_giao
  256. FROM phieugiao
  257. WHERE tong_tien = (SELECT MAX(tong_tien) FROM phieugiao);
  258.  
  259. --27.  Đưa ra ma_khach, ngay_giao, noi_giao trong bảng PHIEUGIAO có tong_tien thanh toán nhỏ nhất.
  260. SELECT ma_khach, ngay_giao, noi_giao
  261. FROM phieugiao
  262. WHERE tong_tien = (SELECT MIN(tong_tien) FROM phieugiao);
  263.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement