1. 程式人生 > 其它 >SQL語言學習-資料定義語言

SQL語言學習-資料定義語言

Sql語言至今已經有6個版本。SQL查詢語言包括了所有對資料的操作命令,這些操作可分為四類:資料定義語言(DDL)、資料操縱語言(DML)、資料控制語言(DCL)和嵌入式SQL語言。

資料定義語言(Data Defination Language)用於定義資料庫物件。基本的DDL命令包括:Create、alter、drop。

資料操縱語言(Data Manipulation Language)用於資料的檢索和資料的更新,資料更新包括:Insert、Delete、Update。資料檢索由Select完成。

資料控制語言(Data Control Language)包括許可權的授權(Grant)、撤銷(Revoke)、完整性規則的描述以及事務開始和結束等控制語句。

嵌入式SQL語言規定了SQL語言在宿主程式中的使用規則。

1.建立資料表

Create負責資料庫物件的建立。資料庫、資料表、資料庫索引、儲存過程、觸發器等都可以通過Create建立。

Create建表:

 1 CREATE TABLE [dbo].[Customer](
 2     [CusID] [numeric](18, 0) NOT NULL,
 3     [RegID] [int] NOT NULL,
 4     [CusName] [varchar](50) NOT NULL,
 5     [CusPhone] [varchar](20) NOT NULL,
 6     [CusAddress] [varchar](100) NOT NULL,
 7     [CusRedate] [date] NULL,
 8     [CusCredit] [int] NOT NULL,
 9     [CusPrepay] [numeric](10, 0) NULL,
10  CONSTRAINT [PK_CUSTOMER] PRIMARY KEY CLUSTERED 
11 (
12     [CusID] ASC
13 )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY],
14  CONSTRAINT [UNI_CUST] UNIQUE NONCLUSTERED 
15 (
16     [CusName] ASC
17 )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
18 ) ON [PRIMARY]

create table table_name( column datatype [column level constraint])

比如 create table test(id integer constraint PK_TEST primary key,

name varchar(50) not null unique,stuid integer not null,constraint FK_Student foreign key references Student(stuid))

通過該程式碼 能夠建立test的表  並能定義id、name、stuid 三列。其中id為主鍵、stuid為外來鍵。 外來鍵的表必須是已經存在的表。

2.更改資料表

在資料表的使用過程中,可能需要對錶的結構或者約束進行修改。alter就是負責資料庫物件修改的指令。對於資料庫可以使用 alter table tablename modification.modification 是指定修改內容的子句。

比如:表中增加一列:alter table test add age integer 

刪除一列:alter table test drop column age

更改列明: oracle中:alter table test rename age to ages. sql中:EXEC  sp_rename 'customer.[age]','ages','column'

更改資料型別:SQl中:alter table test alter column ages varchar(20),oracle中:alter table test modify ages integer

新增約束:alter table test add constraint uni_ages unique(ages)

禁用約束:Alter Table Account NOCHECK constraint Fk_Student

3.刪除資料表

刪除資料庫物件的操作使用drop指令完成。drop table table_name.