Bài giảng SQL

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

pdf39 trang | Chuyên mục: SQL Server | Chia sẻ: dkS00TYs | Lượt xem: 2687 | Lượt tải: 4download
Tóm tắt nội dung Bài giảng SQL, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
Wynkoop", "520-555-1212")
Các trường hợp :
- Nếu không có danh sách cột thì được hiểu là mọi cột theo đúng thứ tự vốn có trong
bảng. Các giá trị trong danh sách gía trị sẽ được thêm tuân tự cho cột thứ nhất, cột thứ
2, ...
insert into customers
values ("Caitlin Wynkoop","123 West St.", "520-555-1212")
- Có thể thay danh sách giá trị bằng DEFAULT. Lúc này sẽ thêm một dòng mới với các
giá trị mặc định được định nghĩa khi tạo bảng.
26/37
Nhập dữ liệu từ bảng khác.
Câu lệnh INSERT .... SELECT
INSERT INTO DestTableName
( col_1, col_2,...)
SELECT c1, c2, ...
FROM SourceTableName
WHERE Condition
Một số Hệ quan trị CSDL cho phép tạo bảng tạm. Bảng tạm sẽ tự động bị xoá khi két
nối kết thúc. Ta đã biét rằng các câu lệnh truy vấn thông tin thường phải nối nhiều bảng.
Qúa trình này mất thì giờ. Nếu có nhiều câu truy vấn khác nhau cần nối nhiều 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 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ụ. Xoá hết các dòng liên quan đến department 'SALES'
delete from employees
where department = 'SALES'
Lưu ý : cũng giống như câu lệnh Update, nếu thiếu điều khoản Where thì mọi dòng bị
xoá. Vậy hãy thận trọng.
Nếu muốn xoá mọi dòng của bảng trong các xử lí nhưng bảng vẫn giữ nguyên thì có thể
dùng câu lệnh TRUNCAT
TRUNCATE TableName
Câu lệnh DELETE TableName chỉ xoá nội dung mọi dòng, khung bảng vẫn còn. Muốn
xoá hẳn bảng cần dùng lệnh DROP TableName.
28/37
Tạo lập và quản lí 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ị với giao diện đồ hoạ hoặc dòng lệnh, ví dụ
DISK INIT.
DISK INIT
NAME = 'logical_name',
PHYSNAME= 'physical_name',
VDEVNO = virtual_device_number,
SIZE = number_of_2K_blocks
[, VSTART = virtual_address]
Bảng các tham số của DISK INIT
Tham số Y nghĩa
Logical
name Tên của SQL Server.
Physical
name Tên tệp và đường dẫn đầy đủ.
29/37
virtual
device
number
Sô ID duy nhất cho một device. Có thể nhận các giá trị từ 0 đến 255.
Không được trùng với các ID đã có. Sô 0 dành cho master database.
Number of
2k blocks Xác định dung lượng đĩa. Tối thiểu là 512 (* 2k = 1M).
virtual
address Địa chỉ ảo.
Tạo CSDL.
câu lệnh CREATE DATABASE DB_Name.
Cú pháp có thể 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ònrỗi tiếp theo.
log_device Tên của device dùng ghi nhật kí.
FOR LOAD Chỉ khi thực hiện LOAD thì NSD mới thâm nhập được.
Tạo lập bảng
Câu lệnh - CREATE TABLE
30/37
CREATE TABLE TableName
Field1 datatype [not NULL],
Field2 datatype [not NULL],
Field3 datatype [not NULL], ...
Các tên trường, tên bảng phải theo đúng quy định ví dụ
- dài không quá 30 kí tự
- không phân biệt chữ hoa, thường.
- là chữ cái A - Z và một số kí tự khác : _ , # , $ , @
- không trùng với từ khoá, không trùng nhau trong phạm vi tác dụng : trong cùng một
Schema, Owner thì tên bảng phải khác nhau, trong một bảng thì tên cột phải khac nhau.
- 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 của Personal Oracle 7.
CHAR xâu kí tự độ dài <= 255, nối thêm khoảng trắng vào cuối xâu.
DATE Ngày tháng : thế kỉ, năm, tháng, ngày, giờ, phút, giây.
LONG kiểu kí tự daì đến 2 GB. 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.
TINYINT 0 đến 255.
Ví dụ
create table number_example
(int1 int,int2 smallint,int3 tinyint)
INSERT into number_example
values (400000000,32767,255)
Các kiẻu số thực Floating-point.
REAL 3.4E-38 to 3.4E+38.
FLOAT[(n)]n =số byte, mặc định là 8 byte nếu không chỉ rõ n.
1.7E-308 to 1.7E+308. n thuộc 1 .. 7, là real.
Nếu n thuộc đoạn 8 .. 15, thì giống như không chỉ rõ n.
Ví dụ
create table precision_example
(num1 real,num2 float)
INSERT into precision_example
values (4000000.1234,4000000.1234)
32/37
select * from precision_example
num1 num2
------------------- --------------------
4000000.0 4000000.1234
Các kiểu số thực
decimal[(p[, s])]
numeric[(p[, s])]
p là tổng số chữ số. S là số chữ số sau dấu chấm.
Phạm vi 10**38-1 đến -10**38 vói 2 .. 17 byte.
Mặc định p = 18;mặc định s = 0.
Ví dụ
create table definition_example
(num1 decimal,num2 numeric(7,6))
INSERT into definition_example
values (123456789123456789,1.123456)
select * from definition_example
num1 num2
---------------------------------
123456789123456789 1.123456
Kiểu xâu kí tự - CHAR
CHAR
Rất hay dùng
33/37
Giá trị là xâu trong cặp dấu nháy đơn ' ' hoặc nháy kép " "
Ví dụ CHAR(15), mỗi giá trị là 15 byte, có thể chứa 15 kí tự. Nếu ngắn hơn được nối
thêm khoảng trắng cho đâỳ.
VARCHARxâu độ dài thay đổi.
varCHAR(15), nghĩa là độ dài tối đa là 15 kí tự.
create table string_example
(CHAR1 CHAR(5),CHAR2 varCHAR(5))
INSERT into string_example
values ('AB','CD')
select * from string_example
CHAR1CHAR2
----------
AB CD
.
datetime
smalldatetime
Rộng 8 byte. 4 byte cho ngày tháng, 4 byte cho thời gian.
dạng số Y nghĩa tương đương
710624 June 24, 1971
19710624 June 24, 1971
1971 January 1, 1971
71 Không hợp lệ
'' January 1, 1900 12:00 A.M.
smalldatetiME
34/37
từ 1/1/1900 đến 6/6/2079.
Thêm cột, sửa đổi cột.
Câu lệnh ALTER TABLE.
Tác dụng sửa đôỉ cấu trúc của bảng.
Thêm cột
ALTER TABLE TableName
ADD NULL,
 NULL...
Sửa đổi cột
ALTER TABLE TableName
MODIFY ,
 ,...
[ constraint]
Một số hạn chế.
- thường chỉ dùng để thay đỏi độ rộng cột. Có thể tăng hoặc giảm độ rộng cột. Tuy nhien
chỉ giảm được nếu không có giá trị dữ liệu nào dài hơn.
- có thể đổi từ NOT NULL sang NULL và ngược lại. Tuy nhiên, chỉ có thể đổi từ NULL
sang NOT NULL nếu mọi dòng hiện có đều có giá trị (Not Null) tại cột này.
Huỷ bảng và huỷ CSDL
DROP TABLE TableName
DROP BATABASE DatabaseName
35/37
Tham gia đóng góp
Tài liệu: Bài giảng Sql
Biên tập bởi: Vien CNTT – DHQG Hanoi
URL: 
Giấy phép: 
Module: Sql server
Các tác giả: Vien CNTT – DHQG Hanoi
URL: 
Giấy phép: 
Module: Truy vấn thông tin
Các tác giả: Vien CNTT – DHQG Hanoi
URL: 
Giấy phép: 
Module: Cập nhật dữ liệu
Các tác giả: Vien CNTT – DHQG Hanoi
URL: 
Giấy phép: 
Module: Tạo lập và quản lí CSDL
Các tác giả: Vien CNTT – DHQG Hanoi
URL: 
Giấy phép: 
36/37
Chương trình Thư viện Học liệu Mở Việt Nam
Chương trình Thư viện Học liệu Mở Việt Nam (Vietnam Open Educational Resources
– VOER) được hỗ trợ bởi Quỹ Việt Nam. Mục tiêu của chương trình là xây dựng kho
Tài nguyên giáo dục Mở miễn phí của người Việt và cho người Việt, có nội dung phong
phú. Các nội dung đểu tuân thủ Giấy phép Creative Commons Attribution (CC-by) 4.0
do đó các nội dung đều có thể được sử dụng, tái sử dụng và truy nhập miễn phí trước
hết trong trong môi trường giảng dạy, học tập và nghiên cứu sau đó cho toàn xã hội.
Với sự hỗ trợ của Quỹ Việt Nam, Thư viện Học liệu Mở Việt Nam (VOER) đã trở thành
một cổng thông tin chính cho các sinh viên và giảng viên trong và ngoài Việt Nam. Mỗi
ngày có hàng chục nghìn lượt truy cập VOER (www.voer.edu.vn) để nghiên cứu, học
tập và tải tài liệu giảng dạy về. Với hàng chục nghìn module kiến thức từ hàng nghìn
tác giả khác nhau đóng góp, Thư Viện Học liệu Mở Việt Nam là một kho tàng tài liệu
khổng lồ, nội dung phong phú phục vụ cho tất cả các nhu cầu học tập, nghiên cứu của
độc giả.
Nguồn tài liệu mở phong phú có trên VOER có được là do sự chia sẻ tự nguyện của các
tác giả trong và ngoài nước. Quá trình chia sẻ tài liệu trên VOER trở lên dễ dàng như
đếm 1, 2, 3 nhờ vào sức mạnh của nền tảng Hanoi Spring.
Hanoi Spring là một nền tảng công nghệ tiên tiến được thiết kế cho phép công chúng dễ
dàng chia sẻ tài liệu giảng dạy, học tập cũng như chủ động phát triển chương trình giảng
dạy dựa trên khái niệm về học liệu mở (OCW) và tài nguyên giáo dục mở (OER) . Khái
niệm chia sẻ tri thức có tính cách mạng đã được khởi xướng và phát triển tiên phong
bởi Đại học MIT và Đại học Rice Hoa Kỳ trong vòng một thập kỷ qua. Kể từ đó, phong
trào Tài nguyên Giáo dục Mở đã phát triển nhanh chóng, được UNESCO hỗ trợ và được
chấp nhận như một chương trình chính thức ở nhiều nước trên thế giới.
37/37

File đính kèm:

  • pdfBài giảng SQL.pdf
Tài liệu liên quan