天天看点

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之数据库表的操作