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

效果:

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

SQL之数据库表的操作相关推荐

  1. 实战 | 利用Delta Lake使Spark SQL支持跨表CRUD操作

    转载自  实战 | 利用Delta Lake使Spark SQL支持跨表CRUD操作 供稿 | eBay ADI-Carmel Team 作者 | 金澜涛 编辑 | 顾欣怡 本文7309字,预计阅读时 ...

  2. 利用T-SQL处理SQL Server数据库表中的重复行

    Duplicate rows in a SQL Server database table can become a problem. We will see how we can find and ...

  3. 利用T-SQL动态定义重复SQL Server数据库表行

    介绍 (Introduction) Lever T-SQL to handle duplicate rows in SQL Server database tables article highlig ...

  4. SQL server 数据库表的配置及其表的导入导出

    SQL server 数据库表的配置及其表的导入导出 在实际应用中,需要对测试数据进行存储,以便于后续对数据进行查询.这里介绍SQL SEVER数据的表的配置及其数据库的导入和导出等操作. 一.安装S ...

  5. columnproperty server sql_导出SQL Server数据库表中字段的说明/备注

    时 间:2013-02-18 09:09:11 作 者:摘 要:导出SQL Server数据库表中字段的说明/备注 正 文: 打开SQL企业管理器 ,找到你要导出用户表字段信息的那个数据库 ,点击工具 ...

  6. SQL去除数据库表中tab、空格、回车符等特殊字符的解决方法

    SQL去除数据库表中tab.空格.回车符等特殊字符的解决方法 参考文章: (1)SQL去除数据库表中tab.空格.回车符等特殊字符的解决方法 (2)https://www.cnblogs.com/ml ...

  7. MySQL数据库(3)_MySQL数据库表记录操作语句

    附: MYSQL5.7版本sql_mode=only_full_group_by问题1.查询当前sql_mode: select @@sql_mode2.查询出来的值为:set @@sql_mode ...

  8. sql查询数据库表中重复数值

    sql查询数据库表中重复数值 -- 查询表中id重复的值 select id from 表名 group by id having count(*) > 1--查询表中的重复记录,重复记录是根据 ...

  9. 命令行客户端MySQL基本命令的使用(登录、登出、数据库操作的SQL语句、表结构的SQL语句、表数据操作的SQL语句)

    1. 登录和登出数据库 登录数据库: 输入下面命令: mysql -uroot -p 说明: -u 后面是登录的用户名  [写成-u root也是可以的] -p 后面是登录密码, 如果不填写, 回车之 ...

最新文章

  1. 【控制】《多智能体系统一致性与复杂网络同步控制》郭凌老师-第9章-结论与展望
  2. SpringBoot 使用WebMvcConfigurer处理请求
  3. tomcat提高图片服务器性能,Tomcat性能调优(windows)
  4. C++ puts函数 打印字符串很方便
  5. 基于Element-plus封装配置化表单组件(组件的v-model实现)
  6. Java使用Springboot集成Es官方推荐(RestHighLevelClient)
  7. 95-31-020-ChannelGroup-DefaultChannelGroup
  8. 生活质量衡量系统_16个你需要了解的DevOps指标,助你提升软件质量
  9. java技术不行有复试怎么办_复试答不上来怎么办?记住这四点不慌!
  10. layui报错 “Layui hint: 模块名 xxx 已被占用“ 的问题解决方案
  11. [CareerCup] 17.3 Factorial Trailing Zeros 求阶乘末尾零的个数
  12. 模仿莫烦的PyCharm主题
  13. 图书借阅与图书管理系统的设计与实现,源码+论文。
  14. 《创业,我们创什么》---- 读书笔记
  15. 【ELT.ZIP】OpenHarmony啃论文俱乐部—一种深度神经网压缩算法
  16. 重写equals方法一定要重写hashcode方法吗
  17. 你有花生我有酒,一本学道看一天(一)
  18. mongodb4.0学习总结三(write concern)
  19. 螣龙安科:在线协作平台的安全建议
  20. 鸿蒙启智 博学多才,花园小学:浩荡儒风续 鸿蒙今日开

热门文章

  1. SVN创建分支与合并分支
  2. flink中维表Join几种常见方式总结
  3. 两步实现个人电脑上server-u搭建FTP服务器
  4. php文件保存读取,读取保存在文件中的php数组?
  5. shell mutt发邮件
  6. CMake使用总结(2)
  7. 当前台式计算机新款,惠普正式发售新款OMEN台式机,有两种大小规格
  8. excel根据列类型分类
  9. RabbitMQ:confirm确认模式
  10. React学习16(Switch组件的使用)