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)
)

效果:
这里写图片描述

##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 ('男','女'))

效果:
这里写图片描述

(2)修改表的属性
   可以修改表中已经存在的属性,修改这些属性的数据类型,约束条件等
   例子:
   将表student中name属性改为varchar(40)
   代码:
use student
go 
alter table student
alter column name varchar(40)

这里写图片描述

   (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

效果:
这里写图片描述

##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)
)

这里写图片描述

###(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)

效果:
这里写图片描述

##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')

效果:
这里写图片描述

##5.表的更新
可以对表中的某一行的某一属性进行更改
语法:
update table_name
set column_name=value
[where conditins_expr]
可以根据where子句中的条件对表中的属性进行更改。
例子:
将4中student表中插入的数据中张三的姓名改为王健林
代码:

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

效果:
这里写图片描述

##5.表数据的删除
表中数据可以借助delete来实现。
语法:
delete table_name
where conditions_expr
删除表中满足where子句条件的行,如果省略where,则删除表中全部数据。
例子:
删除表中学号为1002的记录。
代码:

use student
go 
delete student
where no='1002'

这里写图片描述

##6.表数据的清空
为了将表中数据清空有2种方式:
1.使用不带where的delete子句
2.使用truncate table table_name
这里使用第二种方法
语法:
truncate table table_name
例子:
清空student表
代码:

use student
go
truncate table student

效果:
这里写图片描述

您的赞助将是我不断创作的最大动力,谢谢支持!!!
如果您觉得我的文章对您有帮助,可以通过以下方式进行赞赏:
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值