天天看點

SQL之資料庫表的操作

#SQL之資料庫表的操作

  • 表的建立
  • 表的修改
  • 表的限制條件的添加
  • 表的插入
  • 表的更新
  • 表資料的删除
  • 表的清空

    以上的表的操作皆可通過sql server management studio 圖形化工具建立。

    ##1.表的建立

    文法:

    create table table_name ----建立資料庫名

    (

    column_name1 datatype1 constraint1,

    column_name1 datatype1 constraint1,

    … ----列名 資料類型名 限制名

    )

    [on filegroup|default] ------可選

    [textimage_on filegroup|defalut]

    以上的on filegroup|default表示将定義的表歸類在某一個資料庫檔案組中,如果沒有指定,則歸類在預設的檔案組default中。如果表中的屬性有text或者image類型的資料,則把這些資料歸類在一起存放在專門指定的filegroup中。

    例子:

    在目前資料庫下建立一個student表,包含:學号、姓名、年齡、系别屬性

    代碼:

create table student
(
  no           char(10),
  name         nchar(20),
  age          tinyint,
  department   nchar(20)
)
           

效果:

SQL之資料庫表的操作

##2.表的修改

已經建立好的表可以進行修改,可以為表添加屬性、更改已有屬性的資料類型及限制、删除已有屬性。

(1)為表添加屬性

文法:

alter table table_name

add column column_name data_type [constraint]

例子:

為表student 添加sex屬性,char(5)類型,check 限制為sex=‘男’或’女’。

代碼:

use student
go
alter table student
add  sex char(5) not null check(sex in ('男','女'))
           

效果:

SQL之資料庫表的操作
(2)修改表的屬性
   可以修改表中已經存在的屬性,修改這些屬性的資料類型,限制條件等
   例子:
   将表student中name屬性改為varchar(40)
   代碼:
           
use student
go 
alter table student
alter column name varchar(40)
           
SQL之資料庫表的操作
(3)删除表的屬性
     文法:
     alter  table table_name
     drop column column_name
     例子:
     删除student表中sex屬性
     代碼:
           
use student
go 
alter table student 
drop constraint CK__student__sex__15502E78  ---删除check限制,不同機器,限制名稱可能不同
alter table student
drop column sex
           

效果:

SQL之資料庫表的操作

##3.表的限制條件的添加

表的限制條件是為了保證表的資料完整性而設計的,sql server提供的完整性限制有6種:primary key、[not] null,unique、foreign key、default、check限制。

primary key限制:

該限制是為了實作實體完整性,實體要求完整性要求實體的主鍵唯一且不能為空,該限制正是為了實作這個目的。

[not] null限制:

該限制是為了在滿足在定義關系時,關系中的某些屬性不能為空的要求。在進行表的插入操作時會檢查插入的資料是否滿足這個要求。

unique限制:

關系中的某些屬性要求不為空且唯一,unique限制滿足了這樣的要求。

foreign key限制:

該限制是為了實作關系的參照完整性,實作表與表的互相聯系,比如連接配接操作等。

check限制:

關系中的某些屬性的域具有一定的取值範圍(邏輯表達式),check限制正是為了使得這些屬性滿足一定的取值要求。

default限制:

關系中的某些屬性可以在插入操作時不用顯式的插入,系統根據default設定的值自動為相應的屬性填入預設值。

用T-sql語言添加以上限制有皆有2種實作方式:

1.建立表時添加

2.更改表時添加

下面分别從上面2個方面出發定義相應限制。

###(1)建立表時添加限制

為student表的相應屬性添加限制條件,具體如下:

no primary key ------主鍵限制

name not null ------not null限制

age not null check(age>=0) -----not null check限制

department not null ----not null 限制

identityid unique ----unique限制

classid foreign key references sc(classid)

-----參照完整性,參照sc表的classid屬性

代碼:

create table student
(
  no           char(10)  primary key,
  name         nchar(20) not null ,
  age          tinyint   not null check(age>=0),
  department   nchar(20) not null,
  identityid   char(18)  unique,             
  classid      varchar(10) foreign key references sc(classid)
)
           
SQL之資料庫表的操作

###(2)更新表時添加限制

文法:

alter table table_name

add constraint constraint_name check|unique…

例子:
 重建立立一個沒有限制條件的student表,再用更新表的方法為student表建立(1)中一樣的限制條件。
           
create table student
(
  no           char(10) not null,
  name         nchar(20) not null,
  age          tinyint   not null,
  department   nchar(20) not null,
  identityid   char(18)  not null,             
  classid      varchar(10) not null
)
alter table student
add constraint pk_1 primary key(no)

alter table student
add constraint ck_1 check(age>=0)

alter table student
add constraint un_1 unique(identityid)

alter table student
add constraint fk_1 foreign key(classid) references sc(classid)
           

效果:

SQL之資料庫表的操作

##4.表的插入

上面的操作隻是建立了一個空表,表内沒有資料内容,是以需要對表進行插入操作。

文法:

insert into 對象表名

values(column_list)

注:如果要插入的資料中屬性的順序和表定義時的順序不一樣,則需要指定插入的順序。

例子:

将syudent表中classid屬性删去,再向student表中插入以下資料:

(‘1001’,‘張三’,22,‘計算機系’,‘12222’),

(‘1002’,‘王麻子’,21,‘自動化系’,‘22222’),

(‘1003’,‘馬雲’,22,‘資訊系統系’,‘32222’)

代碼:
           
use student 
go 
alter table student 
drop column classid 


           
insert into student
values('1001','張三',22,'計算機系','12222'),
      ('1002','王麻子',21,'自動化系','22222'),
      ('1003','馬雲',22,'資訊系統系','32222')
           

效果:

SQL之資料庫表的操作

##5.表的更新

可以對表中的某一行的某一屬性進行更改

文法:

update table_name

set column_name=value

[where conditins_expr]

可以根據where子句中的條件對表中的屬性進行更改。

例子:

将4中student表中插入的資料中張三的姓名改為王健林

代碼:

use student
go 
update student
set name='王健林'
where name='張三'
           

效果:

SQL之資料庫表的操作

##5.表資料的删除

表中資料可以借助delete來實作。

文法:

delete table_name

where conditions_expr

删除表中滿足where子句條件的行,如果省略where,則删除表中全部資料。

例子:

删除表中學号為1002的記錄。

代碼:

use student
go 
delete student
where no='1002'
           
SQL之資料庫表的操作

##6.表資料的清空

為了将表中資料清空有2種方式:

1.使用不帶where的delete子句

2.使用truncate table table_name

這裡使用第二種方法

文法:

truncate table table_name

例子:

清空student表

代碼:

use student
go
truncate table student
           

效果:

SQL之資料庫表的操作

您的贊助将是我不斷創作的最大動力,謝謝支援!!!

如果您覺得我的文章對您有幫助,可以通過以下方式進行贊賞:

SQL之資料庫表的操作