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.