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
Deviceslà 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ộtdatabase devicelà để 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
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 DATABASEdatabase_name
[ON {DEFAULT |database_device} [=size] [,database_device[=size]]...]
[LOG ONlog_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 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
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
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ựcFloating-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.nthuộ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)
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 địnhp =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
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ệ
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 <column_name> <datatype> NULL, <column_name> <datatype> NULL... Sửa đổi cột
ALTER TABLE TableName
MODIFY <column_name> <datatype>, <column_name> <datatype>,...
[ 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