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)
)
效果:
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
效果:
上一篇: I/O(输入/输出)
推荐阅读
-
java根据数据库表内容生产树结构json数据的方法
-
Asp.Net网站优化系列之数据库的优化措施与索引优化方法
-
Oracle数据库之PLSQL绑定变量 博客分类: Oracle 动态SQL绑定变量静态SQLPLSQL
-
Asp.Net 网站优化系列之数据库优化 分字诀 分表(纵向拆分,横向分区)
-
数据库技术课程复习4---MySQL语言(1)(表的创建,插入,修改,删除)
-
JAVA 根据数据库表内容生产树结构JSON数据的实例代码
-
在Java的Spring框架的程序中使用JDBC API操作数据库
-
SQL-(8)数据库的创建、查询、修改和删除
-
Java的Hibernate框架数据库操作中锁的使用和查询类型
-
Java游戏服务器之数据库表存取封装