CHƯƠng 1: TỔng quan về sql server và csdl quan hệ i-giới thiệu sql server



tải về 457.4 Kb.
trang6/12
Chuyển đổi dữ liệu27.07.2016
Kích457.4 Kb.
#7139
1   2   3   4   5   6   7   8   9   ...   12

III-Xóa CSDL

-1Bằng lệnh DROP DATABASE:


Cú pháp: DROP DATABASE [, …]

Ví dụ: DROP DATABASE mydb1, mydb2



Chú ý:

          • CSDL Master có Table SYSDATABASES chứa thông tin như Name, ID,… của các database trên Server

If Exists(Select ‘True’ From master..SysDatabases Where Name = ’Thuvien’)

Drop Database ThuVien

          • Bạn phải có vai trò db_owner trên CSDL.

          • Không ai đang làm việc với CSDL

-2Bằng Enterprise Manager:


Click phải vào tên Database trên khung bên trái, chọn Delete.

IV-Sửa Đổi CSDL

-1Bằng lệnh ALTER DATABASE:


Để thêm hay xóa file và nhóm file hoặc thay đổi các thuộc tính của file và nhóm file, như thay đổi tên và dung lượng của file sử dụng cú pháp:

ALTER DATABASE databasename

ADD FILE [,...n]

| ADD LOG FILE [,...n]

| REMOVE FILE

| MODIFY FILE



Các ví dụ:

A. Thêm 1 file chứa dữ liệu cho database

CREATE DATABASE Test

ON ( FILENAME = 'C:\data\Testdat1.ndf',

NAME = Testdat1, SIZE = 5MB, MAXSIZE = 100MB,

FILEGROWTH = 5MB

)

GO

ALTER DATABASE Test



ADD FILE ( NAME = Testdat2,

FILENAME = 'c:\mssql7\data\Testdat2.ndf',

SIZE = 5MB, MAXSIZE = 100MB,

FILEGROWTH = 5MB

)

C. Thêm 2 file Log kích thước 5-MB cho Database



ALTER DATABASE Test

ADD LOG FILE

( NAME = Testlog2,

FILENAME = 'C:\Data\Testlog2.ldf',

SIZE = 5MB, MAXSIZE = 100MB,

FILEGROWTH = 5MB),

( NAME = Testlog3,

FILENAME = 'c:\Data\Testlog3.ldf',

SIZE = 5MB, MAXSIZE = 100MB, FILEGROWTH = 5MB)

D. Xoá file của database

ALTER DATABASE Test REMOVE FILE Testdat2

E. Sửa file : Tăng kích thước file cho Test database in Example B.

ALTER DATABASE Test

MODIFY FILE (NAME = Testdat1, SIZE = 20MB)


-2Bằng Enterprise Manager:


Click phải vào tên Database trên khung bên trái, chọn Properties.

V-Đổi Tên CSDL:


EXEC SP_RENAMEDB ‘OldName’, ‘NewName’

Chú ý:

  • Bạn phải là có quyền Admin

  • CSDL phải ở chế độ SingleUser

  • Tên các file và nhóm file không bị ảnh hưởng bởi sự thay đổi.

VI-Xem Thông Tin CSDL:

-1Trong Query Analyzer Bằng Thủ Tục Lưu Trữ Hệ Thống:


Thông tin của các Database được lưu trữ trong table hệ thống SYSDATABASES của CSDL Master. Bạn có thể liệt kê bằng lệnh:

Select * From Master.dbo.SysDatabases

Ngoài ra, bạn có thể dùng các system stored procedures để hiển thị thông tin about databases and database options:

System stored procedure

Description

SP_HELPDB

Hiển thị thông tin của tất cả Databases trên Server gồm: name, size, owner, ID, creation date, and status information.

SP_HELPDB database_name

Hiển thị thông tin của database được chỉ định, gồm : name, size, owner, ID, creation date, and status information. Ngoài ra còn cho biết chi tiết các file dữ liệu và log file.

SP_SPACEUSED [objname]

Kích thước của current database hoặc table trong current database.

Ví dụ 1: Xem thông tin của CSDL TheThao

EXEC SP_HELPDB TheThao

Ví dụ 2: Xem kích thước CSDL TheThao.

USE TheThao

Go

EXEC SP_SPACEUSED



Ví dụ 3: Xem kích thước table tblCLB

USE TheThao

Go

EXEC SP_SPACEUSED tblCLB


VII-TẠO TABLE :


Khi tạo table, bạn cần quan tâm đến các yêu tố trên các Field được tạo như :

Key : Field đó là khóa hay không

ID : Field đó có thuộc tính Identity hay không

Column Name : Tên Field

Data Type : Kiểu dữ liệu của Field

Size : Kích thước lưu trữ

Allow Null : Cho phép Null

Default : Giá trị mặc định

Identity : Field số có giá trị tăng tự động, với giá trị ban đầu là bao nhiêu (Identity Seed) và số gia(Identity Increament) là bao nhiêu.

Tên Table bạn nên đặt với tiếp đầu ngữ là “tbl”.


-1BẰNG ENTERPRISE MANAGER:


Click phải vào mục Tables trên khung trái và chọn New Table…


-2Bằng lệnh Create Table:


Cú pháp :

CREATE TABLE [DatabaseName.[Owner].| Owner.] TableName

( | ColumnName AS | [,...n] )



      1. Khai Báo Cấu Trúc :

Mỗi cột bạn cần chỉ định:

Example

CREATE TABLE customer

(cust_id uniqueidentifier ROWGUIDCOL NOT NULL DEFAULT NEWID(),

cust_name char(30) NOT NULL)


      1. Khai báo ràng buộc :

Có 2 loại khai báo RB:

  • Khai báo RBTV trên mỗi cột: (Column Constraint)

Sau lời khai báo tên và kiểu của cột bạn có thể khai báo tiếp các RB dữ liệu trên cột đó.

Các RB có thể là :



          • NULL hoặc NOT NULL

          • PRIMARY KEY hoặc UNIQUE [ CLUSTERED | NONCLUSTERED ]

  • Clustered : Một Table chỉ có 1 chỉ mục loại này, xác định thứ tự vật lý của table. Được dùng cho các thuộc tính thường phải tìm kiếm giá trị trên đó

  • Non-Clustered: Sắp xếp dữ liệu theo các Field chỉ định. Một Table có thể có nhiều chỉ mục loại này. Dữ liệu và Index được lưu ở 2 nơi khác nhau .

          • REFERENCES ref_table [(ref_column)]

[ ON DELETE { CASCADE | NO ACTION} ]

[ ON UPDATE { CASCADE | NO ACTION } ]



          • CHECK (logical_expression)

          • DEFAULT : Giá trị mặc định của cột trên mẫu tin mới

          • IDENTITY [(seed, increment )] : Thường được dùng khai báo cho cột kiểu số nguyên, là khoá chính của table. Chỉ định giá trị được ghi trên mẫu tin mới là một số phân biệt với các mẫu tin khác. Trong đó : Seed -giá trị khởi đầu và Increment - số gia.

Ví dụ: CREATE TABLE [dbo].[SanPham] (

MaSP SmallInt Identity (1,1) NOT NULL ,

TenSP varchar(30) NOT NULL,

DonGia Money Default 0,

SoTon Real Default 0 ) ON PRIMARY

Chú ý:


  • Mỗi table chỉ có 1 cột mang thuộc tính IDENTITY.

  • Hàm IDENT_SEED(‘tablename’) : trả về giá trị Seed, nếu table không có cột khai báo Identity sẽ cho giá trị NULL.

  • Hàm IDENT_INCR(‘tablename’) : trả về giá trị Increment.

  • Hàm @@IDENTITY dùng nhận giá trị identity của mẫu tin được chèn cuối cùng.

SQL Server tự động đặt tên cho mỗi RB. Tuy nhiên, Bạn có thể đặt tên RB bằng cú pháp :

[CONSTRAINT ]

/********************** table CongViec************************** */

CREATE TABLE CONGVIEC

( MACV smallint IDENTITY(1,1) CONSTRAINT PK_CV PRIMARY KEY CLUSTERED,

MOTA varchar(50) CONSTRAINT NN_MOTA NOT NULL DEFAULT 'Cong Viec Moi',

LCBmin tinyint CONSTRAINT NN_LCBmin NOT NULL

CONSTRAINT CHK_LCBmin CHECK (LCBmin >= 10),

LCBmax tinyint CONSTRAINT NN_LCBmax NOT NULL

CONSTRAINT CHK_LCBmax CHECK (LCBmax <= 250)

)

/* ***************** publishers table ******************** */



CREATE TABLE publishers

( pub_id char(4) NOT NULL

CONSTRAINT UPKCL_pubind PRIMARY KEY CLUSTERED

CHECK (pub_id IN ('1389', '0736', '0877', '1622', '1756')

OR pub_id LIKE '99[0-9][0-9]'),

pub_name varchar(40) NULL, city varchar(20) NULL,

state char(2) NULL, country varchar(30) NULL DEFAULT('USA')

)


  • Khai báo ràng buộc trên nhiều cột của Table: (Table Constraint)

Được khai báo riêng, nằm sau các khai báo cột. Bao gồm các ràng buộc:

  • [ CONSTRAINT constraint_name ]

  • PRIMARY KEY | UNIQUE ( column [ ASC | DESC ] [ ,...n ] )

  • FOREIGN KEY ( column [,...] ) REFERENCES ref_table [( ref_column [,...] )]
            [ ON DELETE { CASCADE | NO ACTION } ]
            [ ON UPDATE { CASCADE | NO ACTION } ]

  • CHECK ( logical_expression )

Ví dụ:

CREATE TABLE DDH

( MADH SmallInt IDENTITY(1,1) CONSTRAINT PK_DDH PRIMARY KEY CLUSTERED,

MaNCC SmallInt NOT NULL CONSTRAINT FK_DHH_NCC REFERENCES NHACC(MaNCC),

NgayDH SmallDateTime DEFAULT GetDate() NOT NULL,

NgayYCGiao SmallDateTime DEFAULT GetDate() NOT NULL,

CONSTRAINT CHK_NgayYCGiao CHECK (NgayDH <= NgayYCGiao)

)

Go



EXEC SP_HELP DDH /*Xem thông tin Table

      1. Khai báo cột biểu thức:

Cột biểu thức, còn gọi là cột ảo, có dữ liệu lấy từ những cột khác bằng những biểu thức. Không dùng biểu thức là truy vấn con. Cột ảo không tham gia vào khóa của bảng.

Cú pháp: ColumnName AS

Ví dụ : CREATE TABLE mytable

( low int, high int,

myavg AS (low + high)/2

)

EXEC sp_help mytable /*Xem thông tin Table



      1. Tạo Table Tạm :

Table được tạo bằng các phát biểu trên sẽ được lưu trữ trong CSDL đang mở. Nhưng đôi khi bạn cần tạo một Table mà bạn sẽ xóa ngay. Khi đó bạn có thể tạo table tạm lưu trữ bên trong CSDL TempDB bằng cú pháp trên nhưng sử dụng ký hiệu # (Pound) kề trước tên Table.

CREATE TABLE #MyTable (

Field1 int PRIMARY KEY,

Field2 char(10) NOT NULL,

Field3 datetime )

Table tạm có thể cục bộ (local) hoặc toàn cục phụ thuộc vào phạm vi hoạt động:



  • Table cục bộ, được khai báo với 1 dấu #, chỉ được truy xuất bởi kết nối vừa tạo ra nó.

  • Table toàn cục, được khai báo với 2 dấu #, được truy xuất bởi các kết nối hiện hành

tải về 457.4 Kb.

Chia sẻ với bạn bè của bạn:
1   2   3   4   5   6   7   8   9   ...   12




Cơ sở dữ liệu được bảo vệ bởi bản quyền ©hocday.com 2024
được sử dụng cho việc quản lý

    Quê hương