欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

SQL之数据库表的操作

程序员文章站 2024-03-08 14:49:22
...

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

上一篇: I/O(输入/输出)

下一篇: