Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 39 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
39
Dung lượng
160,42 KB
Nội dung
Bài giảng Sql Biên tập bởi: Vien CNTT – DHQG Hanoi Bài giảng Sql Biên tập bởi: Vien CNTT – DHQG Hanoi Các tác giả: Vien CNTT – DHQG Hanoi Phiên bản trực tuyến: http://voer.edu.vn/c/1bb6a607 MỤC LỤC 1. Sql server 2. Truy vấn thông tin 3. Cập nhật dữ liệu 4. Tạo lập và quản lí CSDL Tham gia đóng góp 1/37 Sql server Giới thiệu chung về SQL Vài nét khái quát Lịch sử SQL ra đời vào năm 1970 - tại Phòng thí nghiệm của IBM, San Jose, California. Là một ngôn ngữ mô tả, phi thủ tục - Non procedural language. Các câu lệnh mô tả yêu cầu cần phải Làm gì - What, chứ không cần nêu từng bước tiến hành Làm như thế nào - How Tên gọi sql = Structured Query Language, nghĩa là ngôn ngữ truy vấn (thông tin) có cấu trúc. Thực chất không chỉ có Query mà SQL còn thực hiện nhiều chức năng khác như bổ xung thêm dữ liệu, sửa đổi cập nhật thông tin, huỷ thông tin, liên kết lưu trữ thông tin. Vậy phải gọi là Structured Add, Modify, Delete, Join, Store, Trigger & Query Language. Ngày nay SQL thực tế đa trở thành chuẩn - De facto Standard - để truy vấn và xử lí dữ liệu trong hầu hết các hệ quản trị CSDL. Ngôn ngữ SQL được dùng trong các ứng dụng CSDL theo mô hình Client-Server. Các chương trình khách gửi yêu cầu truy vấn thông tin dưới dạng các câu lệnh SQL. Chương trình chủ dịch vụ - Server CSDL - sẽ thực hiện yêu cầu và gửi lại kết quả cho chương trình khách. Có hai họ sản phẩm, để cài đặt cho PC và để cìa đạt trong các hệ thống lớn -VLDB - very large DB. Ví dụ một số hệ quản trị CSDL điển hình. MicroSoft Access. Personal oracle - SQL* Plus 2/37 MicroSoft Query. OBBC - Open Database Connectivity. Là thư viện các hàm (chức năng) cung cấp một giao diện trình ứng dụng - API -chung tới hệ thống DB. Không phụ thuộc vào nhà cung cấp hệ quản trị DBMS, ( non vendor- specific) Các nhà cung cấp thường thêm các tính năng ngoài chuẩn, ví dụ : Transact-SQL của MicroSoft & Sybase, PL/SQL của Oracle. ODBC đã thành chuẩn, nhiều sản phẩm chấp nhận và phát triển các công cụ dùng chuẩn này : Visual Basic, Visual C++, Foxpro, Borland Delphi, Power Builder Cần cân nhắc ODBC : portability, nhưng chậm hơn Vendor specific : nhanh hơn, tối ưu hơn. 3/37 SQL trong chương trình ứng dụng. Ba kiểu tương tác với ứng dụng - Mođun : các thủ tục làm sẵn. thông qua các tham số, gọi và trả kết quả về. - Nhúng trực tiếp : các câu lệnh SQL trong chương trình. - Gọi trực tiếp : tương tác. Nhúng là hình thức làm việc tĩnh - static : câu lệnh được biên dịch ra, không thay đổi được khi chạy. Hiện nay Dynamic SQL : cho phép chuẩn bị câu lệnh SQL trong khi chạy. Các thành phần của câu lệnh SQL được ghép nối lại trong thời gian chạy, cho phép mức linh hoạt rất cao trong khai thác CSDL. Giống như chuyển từ compiler sang interpreter. 4/37 Odbc có tính năng Dynamic. Chuẩn ANSI 1992 : SQL-92 định nghĩa 3 mức tương thích của một hệ quản trị CSDL với SQL - SQL compliance : entry, intermediate, full. 5/37 Truy vấn thông tin SQL Query Một câu lệnh SQL thường gọi là một Query. Như trên đã nêu, Query không chỉ đơn giản là hỏi - truy vấn thông tin từ CSDL để phục vụ NSD. Một SQL query có thể - tạo lập hay huỷ một bảng - thêm, xoá, cập nhật một dòng, một trường - tiùm kiếm trong nhiều bảng có liên quan - thay đổi chế độ an toàn. Trong chương này ta chỉ tập chung vào chức năng hay sử dụng nhất của một SQL Query là truy vấn thông tin. Cú pháp chung - câu lệnh SELECT. - câu lệnh SQL không phân biệt chứ in hoa, viết thường. (Nhưng kiểu dữ liệu Char = xâu kí tự thì có phân biệt). - dấu cách có thể là : các khoảng trắng, dấu table, dấu xuống dòng. - kết thúc câu lệnh có thể là : dấu chấm phẩy hoặc không có gì tuỳ theo từng hệ thống. Ví dụ SELECT NAME, STARTTERM, ENDTERM FROM PRESIDENTS WHERE NAME = 'LINCOLN' Select name, startterm, endterm From presidents Where name = 'LINCOLN' 6/37 Select name, startterm, endterm From presidents Where name = 'LINCOLN' Các thành phần cơ bản. Các từ khoá + các biểu thức -> các điều khoản Các điều khoản -> câu lệnh SQL select <danh sách tên cột>from <tên bảng> where <điều kiện tìm kiếm> điều khoản Selectđiều khoản Fromđiều khoản Where Danh sách tên cột : các tên cột cách nhau dấu phẩy thứ tự giống như đã liệt kê, có thể khác với thứ tự vốn có trong bảng. * = tất cả các cột theo thứ tự vốn có Vi dụ : Giả sử có bảng tên là Employee với các trường (các cột) tên là Badge, Name, Departement, BirthYear, Salary. Sau này ta sẽ viết ngắn gọn như sau : Employee ( Badge, Name, Departement, BirthYear, Salary ). Câu lệnh sau đây sẽ hiện toàn thể nội dung của bảng. SELECT * FROM EMPLOYEE Badge Name Department Birth year Salary 1834 Bob Smith Sales 1970 24000.00 1051 Fred Sanders Sales 1965 36000.00 3211 Stan Humphries Field Service 1974 22000.00 6732 Fred Stanhope Field Service 1958 56000.00 4411 Sue Sommers Logistics 1965 40000.00 5522 Lance Finepoint Library 1970 24000.00 1997 Mark McGuire Field Service 1966 36000.00 9998 Sally Springer Sales 1973 22000.00 7/37 7773 Ludmilla Valencia Software 1969 36000.00 8883 Barbara Lint Field Service 1966 40000.00 8005 Jeffrey Vickers Mailroom 1965 42000.00 7779 Jim Walker Unit Manager 1971 24000.00 Từ khoá DISTINCT / ALL DISTINCT = chỉ lấy những dòng khác nhau Nghĩa là nếu có nhiều dòng giống nhau chỉ lấy một đại diện. ALL = tất cả các dòng, kể cả trùng nhau đây là mặc định , không cần gõ ALL. Cú pháp Select DISTINCT <danh sách tên cột> Select ALL <danh sách tên cột> Ví dụ SELECT DISTINCT Departement FROM EMPLOYEE Department Sales Field Service Logistics Library Software Mailroom Unit Manager 8/37 [...]... CSDL Tạo lập CSDL Những khái niệm chung Việc tạo lập CSDL thuộc nhiều vào hệ thống SQL Cần tham khảo kĩ tài liệu hướng dẫn Dưới đây là một số khái niệm chính cần biết về SQL Server Devices Devices là tệp vật lí trên đĩa để lưu dữ liệu và tệp nhật kí Nó phải được tạo lập trước khi tạo CSDL Một database device là để chứa dữ liệu, dump device đểlưu nhật kí giao tác Có thể tạo device bằng công cụ quản trị... column_name IN (value_1, value_n) Ví dụ 13/37 select * from employee where badge between 2000 and 7000 Các hàm thao tác dữ liệu Các hàm xử lí tập thể - Aggregate functions Các câu lệnh SQL thông thường két xuất dữ liệu lần lượt theo từng dòng của bảng Các hàm tập đoàn - Aggegate function - Xử lí dữ liệu thuộc mọi dòng trong toàn bộ một cột ( hoặc một nhóm dòng thoả điều kiện nào đó) và cho ra chỉ một kết quả... quả của nối tự nhiên là tích Đề các Nếu bảng 1 có m dòng, bảng 2 có n dòng thì kết quả sẽ gồm m*n dòng Nối có điều kiện Việc chuẩn hoá loại bỏ dư thừa dữ liệu làm cho bảng nhỏ hơn và cơ sở dữ liệu gồm nhiều bảng hơn Rất thông thường, các truy vấn SQL lien quan đến nhiều bảng Điều khoản Where thể hiện mối liên hệ này Ví dụ : Có CSDL gồm ba bảng CUSTOMER (Name, Address, Phone) 21/37 ODERS ( OrderOn,... bảng thì việc tạo bảng tạm thời một lần sẽ làm tăng tốc độ xử lí Cập nhật dữ liệu - câu lệnh UPDATE UPDATE TableName SET col_1 = val_1, col_2 = val_2 WHERE Condition update employees set department = 'SALES', badge = 1232 where name = 'Bob Smith' Các giá trị vế phải có thể là biểu thức, nhưng phải đảm bảo phù hợp kiểu dữ liệu Nếu kích thước quá dài sẽ bị cắt đi Có thẻ lỗi Overflow nếu giá trị vượt... thoả mãn Select name, orderon From orders Where name ALL (select name from orders where name = 'xxxxx') Câu lệnh trên có kết quả là mọi người, trừ ông 'xxxxx' 25/37 Cập nhật dữ liệu Thêm dòng mới - Câu lệnh INSERT Nhập dữ liệu trực tiếp từ câu lệnh Câu lênh INSERT VALUES INSERT INTO TableName ( col_1, col_2, ) VALUES (val_1, val_2) Trong đó, danh sách cột cho biét các giá trị tương ứng được chèn... khác nhau tuỳ từng hệ thống Dưới đây là của Transact _SQL CREATE DATABASE database_name [ON {DEFAULT | database_device} [= size] [, database_device [= size]] ] [LOG ON log_device [= size] [,log_device[= size]] ] [FOR LOAD] Các tham số của câu lệnh CREATE DATABASE Tham số Y nghĩa database_name Tên của CSDL database_device Tên decive Nếu là DEFAULT thì SQL Server sẽ chọn device còn rỗi tiếp theo log_device... Kiểu dữ liệu, tuỳ quy định của từng hệ thống Giá trị NULL: Null nghĩa là không chứa giá trị nào, khác với khoảng trắng, số không Lựa chọn NOT NULL bắt buộc phải cung cấp giá trị cho cột đó mỗi khi thêm một bản ghi mới Một sô hệ CSDL cho phép ấn định lựa chọn UNIQUE - duy nhất- đối với một cột Không thẻ có hai giá trị bằng nhau trong cột này Đây là điều kiện để làm Khoá - Key - Dưới đây là kiểu dữ liệu. .. Thường gọi là kiểu Memo LONGRAW kiểu nhị phân binary, dài 2 GB NUMBER số, dấu phẩy tĩnh hoặc động RAW kiểu nhị phân dài đến 255 byte 31/37 ROWID sô hệ 16 VARCHAR xâu kí tự độ daì thay đổi Các kiểu dữ liệu của SQL server Các kiểu số nguyên - Numeric integers - có độ rộng trường cố định Cho phép tính toán trực tiếp INT (integer): -(2**31) đến 2**31 -2,147,483,648 đến 2,147,483,647 SMALLINT -32768 đến +32767... không loại bỏ các giá trị trùng lặp, xử lí cả nhóm dòng cùng giá trị như một đơn vị select department, count(*) headcount from employee group by department GROUP BY thường dùng với các hàm xử lí nhóm dữ liệu Ví dụ select department, AVG(Salary) from employee group by department Điều khoản HAVING Where không làm việc với các hàm xử lí (tập đoàn) nhóm như AVG, SUM Phaỉ dùng Having select department, SUM(Salary)... đảm bảo phù hợp kiểu dữ liệu Nếu kích thước quá dài sẽ bị cắt đi Có thẻ lỗi Overflow nếu giá trị vượt ra ngoài phạm vi hợp lệ Nếu không có điều khoản Where thì nghĩa là Update mọi dòng của bảng Xoá dữ liệu - câu lệnh DELETE Có thể xoá một dòng, nhiều dòng, mọi dòng 27/37 Không thể xoá chỉ một vài cột ( phải Update) DELETE FROM TableName WHERE Condition Thành phần FROM là tuỳ chọn, có thể bỏ qua Ví dụ . Bài giảng Sql Biên tập bởi: Vien CNTT – DHQG Hanoi Bài giảng Sql Biên tập bởi: Vien CNTT – DHQG Hanoi Các tác giả: Vien CNTT –. tuyến: http://voer.edu.vn/c/1bb6a607 MỤC LỤC 1. Sql server 2. Truy vấn thông tin 3. Cập nhật dữ liệu 4. Tạo lập và quản lí CSDL Tham gia đóng góp 1/37 Sql server Giới thiệu chung về SQL Vài nét khái quát Lịch sử SQL ra đời vào. Dynamic. Chuẩn ANSI 1992 : SQL- 92 định nghĩa 3 mức tương thích của một hệ quản trị CSDL với SQL - SQL compliance : entry, intermediate, full. 5/37 Truy vấn thông tin SQL Query Một câu lệnh SQL thường gọi