SQL Server插入数据和删除数据基础语句使用

首先在我的Student表中插入几条数据,由于我的表已经创建完成了,所以就没有创建表的 sql 语句了,不过可以看我的上一篇文章:

http://www.cnblogs.com/Brambling/p/6649350.html

插入数据sql语句:

1  insert into Student(S_StuNo,S_Name,S_Sex,S_Height)
2   select ‘001‘,‘项羽‘,‘男‘,‘190‘ union
3   select ‘002‘,‘刘邦‘,‘男‘,‘170‘ union
4   select ‘003‘,‘貂蝉‘,‘女‘,‘180‘ union
5   select ‘004‘,‘天明‘,‘男‘,‘155‘ union
6   select ‘005‘,‘少司命‘,‘女‘,‘175‘ 

当然,也可以像下面这样写,不过我个人习惯用上面这种方法。

1   insert into Student(S_StuNo,S_Name,S_Sex,S_Height) values (‘001‘,‘项羽‘,‘男‘,‘190‘)
2   insert into Student(S_StuNo,S_Name,S_Sex,S_Height) values (‘002‘,‘刘邦‘,‘男‘,‘170‘)
3   insert into Student(S_StuNo,S_Name,S_Sex,S_Height) values (‘003‘,‘貂蝉‘,‘女‘,‘180‘)
4   insert into Student(S_StuNo,S_Name,S_Sex,S_Height) values (‘004‘,‘天明‘,‘男‘,‘155‘)
5   insert into Student(S_StuNo,S_Name,S_Sex,S_Height) values (‘005‘,‘少司命‘,‘女‘,‘175‘)

SQL Server语句把一个表的数据插入到另一个表,有以下两种方法:

第一种,当要插入的表(Student_back)不存在时

1  --把表 Student 中性别为 ‘男‘ 的学生信息 插入到表 Student_back(不存在) 中
2   select * into Student_back from Student where S_Sex=‘男‘

未指定具体列,就会自动创建一个跟(Student)一样的表并把数据插入

指定具体要插入的列就会根据指定的列创建一个表,并把数据插入

第二种,当要插入的表本身便存在时

1 --把表 Student 中性别为 ‘女‘ 的学生信息 插入到表 Student_back(存在)中
2   insert into Student_back(S_StuNo,S_Name,S_Sex,S_Height)
3   select S_StuNo,S_Name,S_Sex,S_Height  from Student
4   where S_Sex=‘女‘

因为字段 S_Id 是标识列,不能有显示插入的值,所以这里必须指定要插入的列。

前面说了创建表的sql语句,下面说说删除表的sql语句:

确切的说删除表的方式有 drop:

1 drop table Student_back

这样就删除表了,这样的删除不仅会删除表中的数据,还包括表结构、字段、视图、索引、触发器和依赖的约束等等。此方法慎用!!!

truncate:

1 truncate table Student_back

这样只是删除表中的所有数据,会保留表结构、字段、约束、索引等等,但是不能加 where 条件限制。

如果表存在 FOREIGN   KEY (外键约束),则不能使用此方法,应使用不带 where 条件的 delete 语句,但 truncate 语句比 delete 语句执行要快。

delete:

1 delete from Student_back where S_StuNo=‘001‘

这样的删除同样是删除表中的数据,并且可以添加 where 条件限制,还可以激活 trigger (触发器)。

时间: 2024-10-03 22:53:33

SQL Server插入数据和删除数据基础语句使用的相关文章

SQL Server插入中文数据后出现乱码

原文:SQL Server插入中文数据后出现乱码 今天在做项目的过程中遇到如标题的问题,情况如下图: 数据库使用的是SQL Server2012版本,创建表的脚本如下: CREATE TABLE [dbo].[Type](  [TypeId] INT NOT NULL PRIMARY KEY,     [TypeName] NVARCHAR(50)NOT NULL,     [Description] NVARCHAR(255) NULL,     [CategoryId] INT NOT NU

清空SQL Server数据库中所有表数据的方法

其实删除数据库中数据的方法并不复杂,为什么我还要多此一举呢,一是我这里介绍的是删除数据库的所有数据,因为数据之间可能形成相互约束关系,删除操作可能陷入死循环,二是这里使用了微软未正式公开的sp_MSForEachTable存储过程. 也许很多读者朋友都经历过这样的事情:要在开发数据库基础上清理一个空库,但由于对数据库结构缺乏整体了解,在删除一个表的记录时,删除不了,因为可能有外键约束,一个常见的数据库结构是一个主表,一个子表,这种情况下一般都得先删除子表记录,再删除主表记录. 说道删除数据记录,

SQL server中使用临时表存储数据

将查询出来的数据直接用“INTO #临时表名称”的方式完成临时表的创建及数据的插入 SELECT * INTO #temp_NowStatusFROM Test SELECT * FROM #temp_NowStatus --查询临时表中的数据truncate table #temp_NowStatus --清除临时表中的数据--删除临时表if object_id('tempdb..#temp_NowStatus') is not null BEGIN drop table #temp_NowS

Sql Server合并多行询数据到一行:使用自连接、FOR XML PATH('')、STUFF或REPLACE函数

示例表 tb 数据如下 id value-----1 aa1 bb2 aaa2 bbb2 ccc SELECT id, [val] = ( SELECT [value] + ',' FROM tb AS b WHERE b.id = a.id FOR XML PATH('') ) FROM tb AS a 显示结果 1 aa,bb, 1 aa,bb, 2 aaa,bbb,ccc, 2 aaa,bbb,ccc, 2 aaa,bbb,ccc, SELECT id, [val]=( SELECT [v

mySQL教程 第5章 插入 更新与删除数据

第5章 插入 更新与删除数据 使用SQL Manager管理工具连接到schoolDB.由于三张表都设置了主键,因此,以下练习中插入的记录,主键不能重. 插入数据 1. 练习:为表的所有字段插入数据 为表中所有字段插入数据,可以不用指定列 其中的into可以省去 insert into TStudent values ('00008','白安','男','132302197604044565','19760404', '[email protected]','JAVA','20120803')

[译]SQL Passion Week 2: SQL Server的基本存储单位--数据页

Week 2: SQL Server的基本存储单位--数据页 上周我们我们讲述了SQL Server如何执行一个查询, 顺带提到了数据页的概念, 这次我们从性能调优的角度上更详细深入的讲解一些数据页. 数据页是SQL Server最基础的存储单位, 所有的东西都和数据页有关. 当我们想提高查询的性能时, 必须想方设法降低查询的页读取数量. 以后讲到索引时, 还会涉及到更多索引的结构. 如果你不知道什么是页, 你就无法寻找SQL Server的故障原因. 数据页的结构 SQL Server中的页有

BCP是SQL Server中负责导入导出数据的一个命令行工具

BCP是SQL Server中负责导入导出数据的一个命令行工具,它是基于DB-Library的,并且能以并行的方式高效地导入导出大批量的数据.BCP可以将数据库的表或视图直接导出,也能通过SELECT FROM语句对表或视图进行过滤后导出.在导入导出数据时,可以使用默认值或是使用一个格式文件将文件中的数据导入到数据库或将数据库中的数据导出到文件中. 下面将详细讨论如何利用BCP导入导出数据. 1. BCP的主要参数介绍 BCP共有四个动作可以选择. (1) 导入. 这个动作使用in命令完成,后面

快速查看SQL Server 中各表的数据量以及占用空间大小

快速查看SQL Server 中各表的数据量以及占用空间大小. CREATE TABLE #T (NAME nvarchar(100),ROWS char(20),reserved varchar(18) ,Data varchar(18) ,index_size varchar(18) ,Unused varchar(18) ) GO INSERT #T EXEC SP_MSFOREACHTABLE 'EXEC sp_spaceused "?"' SELECT * FROM #T O

SQL Server 定时访问url激活数据同步

创建作业,执行以下命令 exec master..XP_cmdshell 'http://srm.rapoo.cn?op=sapintferace&i=1&t=1' 激活执行同步网步 以下内容来自网络,介绍如何启用  xp_cmdshell 扩展存储过程将命令 一.简介 xp_cmdshell 扩展存储过程将命令字符串作为操作系统命令 shell 执行,并以文本行的形式返回所有输出. 三.SQL Server 2005中的xp_cmdshell 由于存在安全隐患,所以在SQL Server

oracle 、sql server 、mysql 复制表数据

我们知道在oracle 中复制表数据的方式是使用 create table table_name as select * from table_name 而在sql server  中是不能这么使用的 语句如下: select * into table_name from table_name; 而在 mysql 中有两种方式 1. create table a like b 2. 类似oracle的方式 create table table_name as select * from tabl