PHẦN I: MỞ ĐẦUGiới thiệu về phần mền SQL PHẦN II :BÀI TOÁNMô tả bài toán quản lý bất động sản thao tác lập bảng tạo bảng Ứng dụng các thao tác trong SQL trong bài toán:1.Câu lênh SELECT2.Khung nhìn VIEW3.Ràng buộc CHECK4.Thủ tục proc5.Hàm FUNTION6.TRIGGER7.Kết nối dữ liệu:
PHẦN I: MỞ ĐẦU Bất động sản từ lâu gắn liền với sống người dân xã hội Cùng với phát triển nhanh chóng khu vực kinh tế,thị trường bất động sản ngày hình thành phát triển với tốc độ nhanh Một công ty bất động sản bao gồm nhiều hoạt động Để quản lý tốt cần có hệ sở liệu cụ thể, chi tiết tránh bỏ sót thông tin trùng lặp gây rối trình quản lý Để phục vụ cho việc quản lý nhóm em nghiên cứu thực đề tài: Xây dựng sở liệu công ty bất động sản Giới thiệu phần mền SQL SQL server gì? SQL Server viết tắt Structure Query Language,nó công cụ quản lý liệu sử dụng phổ biến nhiều lĩnh vực Hầu hết ngôn ngữ bậc cao có trình hỗ trợ SQL Visual BASic,Oracle,Visual C Các chương trình ứng dụng công cụ quản trị CSDL cho phép người sử dụng truy nhập tới CSDL mà không cần sử dụng trực tiếp SQL Nhưng ứng dụng chạy phải sử dụng SQL Lịch sử phát triển SQL Server phát triển từ ngôn ngữ SEQUEL2 IBM theo mô hình Codd trung tâm nghiên cứu IBM California ,vào năm 70 cho hệ thống QTCSDL lớn Đầu tiên SQL Server sử dụng ngôn ngữ quản lý CSDL chạy máy đơn lẻ Song phát triển nhanh chóng nhu cầu xây dựng CSDL lớn theo mô hình khách chủ( mô hình toàn CSDL tập trung máy chủ (Server)) Mọi thao tác xử lý liệu thực máy chủ lệnh SQL máy trạm dùng để cập nhập lấy thông tin từ máy chủ) Ngày ngôn ngữ lập trình bậc cao có trợ giúp SQL Nhất lĩnh vực phát triển Internet ngôn ngữ SQL đóng vai trò quan trọng Nó sử dụng để nhanh chóng tạo trang Web động SQL viện tiêu chuẩn quốc gia Mỹ (ANSI)và tổ chức tiêu chuẩn quốc tế (ISO) chấp nhận ngôn ngữ chuẩn cho CSDL quan hệ Nhưng chuẩn chưa đưa đủ 100%.Nên SQL nhúng ngôn ngữ lập trình khác bổ xung mở rộng cho SQL chuẩn cho phù hợp với ứng dụng mình.Do có khác rõ ràng giưã SQL Đặc điểm SQL Server - SQL ngôn ngữ tựa tiếng Anh - SQL ngôn ngữ phi thủ tục, không yêu cầu ta cách thức truy nhập CSDL Tất thông báo SQL dễ sử dụng khả mắc lỗi - SQL cung cấp tập lệnh phong phú cho công việc hỏi đáp DL + Chèn, cập nhật, xoá hàng quan hệ + Tạo, sửa đổi, thêm xoá đối tượng CSDL + Điều khiển việc truy nhập tới sở liệu đối tượng CSDL để đảm bảo tính bảo mật sở DL +Đảm bảo tính quán ràng buộc CSDL - Yêu cầu để sử dụng cho hỏi đáp phải nắm vững cấu trúc CSDL Đối tượng làm việc SQL Server Là bảng ( tổng quát quan hệ )dữ liệu hai chiêù Các bảng bao gồm nhiều cột hàng.Các cột gọi trường ,các hàng gọi ghi.Cột với tên gọi kiểu liệu (kiểu dl cột nhất)xác định tạo nên cấu trúc bảng (Ta dùng lệnh Desc[ribe] TABLE-name để xem cấu trúc bảng ,phần tuỳ chọn[] bỏ Oracle).Khi bảng tổ chức hệ thống cho mục đích có CSDL PHẦN II :BÀI TOÁN Mô tả toán quản lý bất động sản Công ty bất động sản Cơ sở liệu gồm bốn bảng lưu thông tin về: nhân viên, khách hàng, bất động sản, hợp đồng Bảng nhân viên lưu thông tin nhân viên công ty: mã nhân viên, họ tên nhân viên, ngày sinh, quê quán giới tính, có khóa mã nhân viên Bảng khách hàng lưu thông tin khách hàng: mã khách hàng, họ tên khách hàng, ngày sinh, địa chỉ, có khóa mã khách hàng Bảng bất động sản lưu thông tin bất động sản: mã bát động sản, diện tích, địa chỉ,gia, có kháo mã bất động sản Bảng hợp đồng lưu trữ thông tin hợp đồng ký công ty: mã hợp đồng, mã nhân viên, mã khách hàng, mã bất động sản, ngày lập, tổng tiền Liên kết bảng: Bảng bất động sản liên kết với bảng nhân viên thông qua khóa ngoại mã nhân viên Một nhân viên quản lý nhiều hợp đồng Một hợp đồng có nhân viên quản lý Bảng bất động sản liên kết với bảng khách hàng thông qua khóa ngoại mã khách hàng Một khách hàng có nhiều hợp đồng Một hợp đồng bao gồm khách hàng Bảng bất động sản liên kết với bảng bất động sản qua khóa ngoại mã bất động sản Một hợp đồng có nhiều bất động sản Mỗi bất động sản nằm hợp đồng Lập bảng CREATE TABLE NHANVIEN( maNV int PRIMARY KEY, hotenNV nvarchar(30) not null, ngaysinh date not null, gioitinh bit notnull, quequan nvarchar(100), ); CREATE TABLE KHACHHANG( maKH int PRIMARY KEY, hotenKH nvarchar(30)not null, diachi nvarchar(100)not null, namsinh date not null, ); CREATE TABLE BATDONGSAN( maBDS int PRIMARY KEY, dientich decimal not null, diachi nvarchar(50), gia money not null, ); CREATE TABLE HOPDONG( maHD int PRIMARY KEY, maNV int, CONSTRAINT fk_NV_HD FOREIGN KEY (maNV) REFERENCES NHANVIEN(maNV), maKH int, CONSTRAINT fk_KH_HD FOREIGN KEY (maKH) REFERENCES KHACHHANG(maKH), maBDS int, CONSTRAINT fk_BDS_HS FOREIGN KEY (maBDS) REFERENCES BATDONGSAN(maBDS), ngaylap datetime not null, sotien money not null, ); Thông tin bảng: NHANVIEN maN V 111 hotenNV ngaysinh gioitinh quequan Nguyen Van An 23/05/1973 true Ha Noi 112 Truong Thi Binh 02/06/1989 f al se Hai Phong 113 Do Duc Cuong 15/11/1978 true Quang Ninh 114 Ha Mai Hoa 30/09/1990 f al se Ha Noi 115 Nguyen Thien Kim 24/04/1988 f al se Thai Binh KHACHHANG maKH 211 212 213 hotenKH Nguyen Van Ba Dao Thi Cuc Duong Thanh Tung diachi Ha Nam Ha Noi Thanh Hoa sinh 03/03/1990 15/08/1984 24/04/1974 214 215 216 Hoang Minh Truong Thi Men Nguyen Van Nam Da Nang Thai Binh Thai Nguyen 25/06/1991 30/11/1987 23/12/1977 217 218 219 220 Tran Quoc Tuong Lam Thi Van Hoang Thi Vuong Vu Thi Yen Ha Noi Ha Noi Bac Giang Lang Son 04/02/1985 21/05/1970 02/05/1980 31/07/1991 BATDONGSAN maBDS 311 dien tich 65 diachi Cau Giay gia 000 000 000 312 313 314 315 316 317 318 319 320 50 90 70 94 120 60 100 72 67 Dong Da Hoan Kiem Hai Ba Trung Ha Dong Cau Giay Hai Ba Trung Tay Ho Long Bien Gia Lam 500 000 000 000 000 000 500 000 000 000 000 000 000 000 000 700 000 000 500 000 000 500 000 000 000 000 000 HOPDONG maHD maNV maKH maBDS ngaylap 411 115 212 315 01/04/2015 000 000 000 412 113 217 316 30/03/2015 000 000 000 413 112 215 319 25/02/2015 500 000 000 414 113 213 313 31/01/2015 000 000 000 415 111 211 317 22/04/2015 700 000 000 416 112 219 320 07/01/2015 000 000 000 417 115 214 314 18/02/2015 500 000 000 418 112 220 312 16/03/2015 500 000 000 419 111 218 318 22/01/2015 500 000 000 420 114 216 311 04/04/2015 000 000 000 Ứng dụng thao tác SQL toán: Câu lênh SELECT Yêu cầu 1: Hiển thị danh sách khách hàng mua BDS có diện tích 70 select k.maKH, k.hotenKH, b.maBDS, b.dientich tongtien from KHACHHANG k innerjoin HOPDONG h on k.maKH=h.maKH innerjoin BATDONGSAN b on h.maBDS=b.maBDS where dientich>70 Yêu cầu 2: Đếm số nhân viên có quê quán Ha Noi: selectCOUNT(maNV) from NHANVIEN where quequan like'Ha Noi' Khung nhìn VIEW Yêu cầu : Tạo khung nhìn cho bảng khách hàng create view xemkh as select kh.maKH , kh.diachi , hd.ngaylap , hd.sotien from KHACHHANG as kh inner join HOPDONG as hd on kh.maKH = hd.maKH Yêu cầu : Xóa khung nhìn DROP VIEW xemkh Ràng buộc CHECK CREATE TABLE NHANVIEN ( maNV int PRIMARY KEY, hotenNV nvarchar(30) not null, ngaysinh date not null, gioitinh bit notnull, quequan nvarchar(100), constraint chk_gioitinh check( true = nam or fasle = nu), ) Thủ tục proc yêu cầu 1: Thêm liệu vào bảng NhânViên createproc [dbo].[themNV] @maNV int, @hotenNV nvarchar (30), @ngaysinh date, @gioitinh bit, @quequan nvarchar(100) as insert NHANVIEN values(@manv,@hotennv,@ngaysinh,@gioitinh,@quequan) Execute themNV'116','TranHaiNinh','01/20/1994','true','Hai Duong' Câu lệnh chọn BẤT ĐỘNG SẢN Hàm FUNTION - Yêu cầu 1: đưa bảng thông tin bất động sản có mã bất động sản với mã bất động sản nhập vào từ bàn phím - Câu lệnh: Create function f_chonBDS ( @maBDS char (10)) Returns table As Return ( select * from BATDONGSAN Where maBDS=@maBDS ) - Thực hàm: Mở Query Select * from f_chonBDS (‘315’) Yêu cầu 2: sửa hàm , xóa hàm Câu lệnh: Alter function f_chonBDS (@maBDS int) Returns table As Return ( select * from BATDONGSAN Where maBDS = @maBDS) Drop function f_chonBDS TRIGGER Yêu cầu 1: Trigger cập nhật địa “Ha Noi” cho mã khách hàng ‘ 213’ CREATETRIGGER t_suadiachikh on KHACHHANG after UPDATE AS Begin select*from KHACHHANG end go Chạy update KHACHHANG set diachi='Ha Noi'where maKH ='213' Kết Yêu cầu 2: Trigger chèn thêm khách hàng có mã khách hàng “221”, họ tên “Nguyen Thi Lan”, địa “Nam Dinh”, năm sinh “2/2/1988” CREATETRIGGER t_ttkh on KHACHHANG forinsert as begin declare @maKH int declare @hotenKH nvarchar(30) declare @diachi nvarchar(100) declare @namsinh datetime select*From KHACHHANG end go Chạy insertinto KHACHHANG values('221','Nguyen Thi Lan','Nam Dinh','2/2/1989') Kết 7 Kết nối liệu: [...]... Yêu cầu 2: Trigger chèn thêm một khách hàng mới có mã khách hàng là 22 1”, họ tên “Nguyen Thi Lan”, địa chỉ “Nam Dinh”, năm sinh 2/ 2/1988” CREATETRIGGER t_ttkh on KHACHHANG forinsert as begin declare @maKH int declare @hotenKH nvarchar(30) declare @diachi nvarchar(100) declare @namsinh datetime select*From KHACHHANG end go Chạy insertinto KHACHHANG values( '22 1','Nguyen Thi Lan','Nam Dinh', '2/ 2/1989')... cầu 2: sửa hàm , xóa hàm Câu lệnh: Alter function f_chonBDS (@maBDS int) Returns table As Return ( select * from BATDONGSAN Where maBDS = @maBDS) Drop function f_chonBDS 6 TRIGGER Yêu cầu 1: Trigger cập nhật địa chỉ “Ha Noi” cho mã khách hàng ‘ 21 3’ CREATETRIGGER t_suadiachikh on KHACHHANG after UPDATE AS Begin select*from KHACHHANG end go Chạy update KHACHHANG set diachi='Ha Noi'where maKH = '21 3'... @hotenKH nvarchar(30) declare @diachi nvarchar(100) declare @namsinh datetime select*From KHACHHANG end go Chạy insertinto KHACHHANG values( '22 1','Nguyen Thi Lan','Nam Dinh', '2/ 2/1989') Kết quả 7 Kết nối dữ liệu: ... 000 416 1 12 219 320 07/01 /20 15 000 000 000 417 115 21 4 314 18/ 02/ 2015 500 000 000 418 1 12 220 3 12 16/03 /20 15 500 000 000 419 111 21 8 318 22 /01 /20 15 500 000 000 420 114 21 6 311 04/04 /20 15 000 000... ngaylap 411 115 21 2 315 01/04 /20 15 000 000 000 4 12 113 21 7 316 30/03 /20 15 000 000 000 413 1 12 215 319 25 / 02/ 2015 500 000 000 414 113 21 3 313 31/01 /20 15 000 000 000 415 111 21 1 317 22 /04 /20 15 700 000... có CSDL PHẦN II :BÀI TOÁN Mô tả toán quản lý bất động sản Công ty bất động sản Cơ sở liệu gồm bốn bảng lưu thông tin về: nhân viên, khách hàng, bất động sản, hợp đồng Bảng nhân viên lưu thông