浅谈 T-SQL语句操纵数据表

SQL是结构化查询语言,也是关系数据库的标准语言,各类数据库都支持SQL作为查询语言。
T-SQL 是标准SQL的加强版,除了标准的SQL命令之外,还对SQL命令进行了许多扩充。提供类似于程序语言的基本功能。如变量说明、流程控制、功能函数等。
当我们安装上数据库时,在其上常做的操作无非就是插(增)、删、改、查这四类,今天我们就来围绕这四个操作来谈一谈。
插入数据:

insert into **表名** (列名1,列名2.....)    其中into为可选项,可以省略   #多个列名和多个值列表用逗号隔开
values (列值1,列值2......)    值列表中的顺序与数据表中的字段顺序保持一致

更新数据(修改数据):

update **表名** set 列名=‘更新值‘  set后面可以紧随多个数据列的更新值
where **更新条件**  where 是可选的,用来限制条件,如果不限制,则整个表的所有数据行都将被更新

删除数据:

delete from **表名 **
where **删除条件**    如果不加删除条件,那么就是删除整个表中的所有记录
truncate  table **表名**   删除整个表的记录,执行速度更快,用于清空大数据量表
注意,使用 truncate 前要确保数据可删除


select 语法结构(查询数据):

select *select_list*   # 指定查询内容
into *new_table_name*    # 把查询结果存放到一个新表中
from *table_name*  # 指定查询源
where *search_conditions*    # 指定查询条件
group by *group_by_expression*   # 指定查询结果的分组条件
having *search_conditions*   # 指定分组搜索条件与group by 子句一起使用
order by *order_expression* [asc|desc]  # 指定查询结果的排序方式

条件表达式:
1、常量:表示单个指定数据值得符号
字母、数字或符号
2、列名:表中列的名称
3、一元运算符:仅有一个操作数的运算符
“+”表示正数,“-”表示负数
4、二元运算符:将两个操作数组合执行操作的运算符
算数运算符、位运算符、逻辑运算符、比较运算符



查询举例:

select * from **表名**     # 查询表中所有列
select **列名1,列名2,列名3**.....  from  **表名**  # 查询表中特定列
select  **列** from 表名 where *search_conditions* (如:职务=‘经理‘) # 查询表中特定行
select * from test where 基本工资 between 8000 and 10000 #查询test表中基本工资8000到10000之间的员工所有信息
select * from test where 基本工资<10000 or 基本工资>20000 #查询表中基本工资低于10000或高于20000的员工所有信息
select * from test where 基本工资 in (8000,9000,10000) #查询表中工资为8000,9000,和10000的员工所有信息。
select * from test where ×××号 like ‘66%‘ #查询test表中×××号以66开头的员工所有信息。
select * from test where 姓名 like ‘杨%‘ and 职务=‘运维工程师‘ #查询表中姓杨的运维工程师的信息
select * from test where 备注 is not null #查询表中备注不为空的员工所有信息。
select top 5 * from test #查询表中前5行的数据。
select * from test order by 基本工资 desc #查询test表中所有的信息,并按照基本工资从高到低显示查询结果。
select distinct 职务 from test #查询test表中有哪些职务

select 使用into关键字:
select 姓名,×××号,职务 into new01 from test #将test表中所有员工的姓名、×××号和职务生成一个新表new01。
insert 使用select关键字:
insert into new1 (姓名,职务,出生日期) select 姓名,职务,出生日期 from test where 基本工资>=15000 #将test表中所有基本工资大于等于15000的员工的姓名,职务,和出生日期保存到 new1表中(注意,这里的 new1表中需要提前建立)
使用union关键字:
insert into new2 (姓名,职务,出生日期) select ‘张三‘,‘运维‘,‘1995-01-01‘ union select ‘李四‘,‘运维‘,‘1996-01-01‘ union select 姓名,职务,出生日期 from test #将test表中所有员工的姓名、职务和出生日期,以及新输入的2名员工相关信息,一起保存到新表new2

原文地址:https://blog.51cto.com/14227204/2408143

时间: 2024-09-29 09:16:29

浅谈 T-SQL语句操纵数据表的相关文章

浅谈!SQL语句中LEFT JOIN ON WHERE和LEFT JOIN ON AND的区别

今天的工作学习之路是一个数据库的小知识,当时没有区分出所以然,特此记录分享一下子. 众所周知,数据库的表都是单独存在的,但是当我们进行联合查询(多表查询)时,我们获得数据库返回的值时就好像在一张表里一样,这是因为在进行联合查询时数据库会生成一个临时表返回给我们所想要的数据信息,这时我们都是通过LEFT JOIN 等语句进行相关联,并且我们也会为我们所想查询的数据进行一个筛选,这时我们就会用到过滤语句. LEFT JOIN ON WHERE:在临时表生成后,再对临时表的数据进行过滤,再返回左表.

浅谈ORACLE SQL语句优化经验

(1) 选择最有效率的表名顺序(只在基于规则的seo/' target='_blank'>优化器中有效): ORACLE 的解析器按照从右到左的顺序处理FROM子句中的表名,FROM子句中写在最后的表(基础表 driving table)将被最先处理,在FROM子句中包含多个表的情况下,你必须选择记录条数最少的表作为基础表.如果有3个以上的表连接查询, 那就需要选择交叉表(intersection table)作为基础表, 交叉表是指那个被其他表所引用的表. (2) WHERE子句中的连接顺序.

用SQL语句将数据表中的数据保存为JSON格式

没有找到好的工具,只想到了拼字符串的方式,用   NVARCHAR(MAX)  可能有截断,不推荐使用,方法中使用了 FOR XML PATH('') 实现,有关其使用方法参考这里 表结构: SQL 语句: SELECT '{"id":'+CONVERT(NVARCHAR(20),id)+',"areacode":'+areacode+',"areaname":"'+areaname+'","paremt_areac

sql语句删除数据表重复字段的方法

大家都可能遇到字段重复的情况,网上很多人在找方法,也给出了一些方法,但是有的方法是误导大家,铁牛写出以下方法,方便大家使用 1.通过group by把重复的字段筛选出来,并建立临时表tmp create table tmp as select max(id) as col1 from www group by dfdfd; 2.从去重表对象里通过not in的条件来筛选出不在临时表的列col1,执行not in的删除操作 delete from www where id not in (sele

SQL语句-批量插入表(表数据插表)

批量插入表(表数据插表) ****1.INSERT INTO SELECT语句语句形式为:Insert into Table2(field1,field2,...) select value1,value2,... from Table1要求目标表Table2必须存在,由于目标表Table2已经存在,所以我们除了插入源表Table1的字段外,还可以插入常量.示例如下: 2.SELECT INTO FROM语句语句形式为:SELECT vale1, value2 into Table2 from

SQL server 数据库的表的创建与使用T-SQL语句操控数据表

表的创建与T-SQL语句的使用 一,表的创建与基本概念 表是包含数据库中所有数据的数据库对象,表定义是一个集合.数据在表中组织方式与在电子表格中相似,都是按行和列的格式组织的.每一行代表一条唯一的记录,每一列代表记录中的一个字段. **SQLserver 中的表包含下列主要组件 ** #列: 每一列代表由表的建模的对象的某个属性,列如,一个产品表有id 列,颜色列和重量列 #行: 每一行代表由表建模的对象的一个单独的实例 数据类型 表的创建 使用T-SQL语句操控数据表 1.查询王明的成绩?结果

关于oracle sql语句查询时表名和字段名要加双引号的问题

oracle初学者一般会遇到这个问题. 用navicat可视化创建了表,可是就是不能查到! 后来发现②语句可以查询到 ①select * from user; 但是,我们如果给user加上双引号就可以查到了! ②select * from "user"; 难道oracle跟mysql等不同,查询时候一定要加双引号?那这样不是很麻烦!于是经过查找资料得出如下结论: 1.oracle表和字段是有大小写的区别.oracle默认是大写,如果我们用双引号括起来的就区分大小写,如果没有,系统会自动

SQL语句之 多表管理

SQL语句之 多表管理 一个数据库内通常会有不止一张表,有时候我们要把多张表联系起来,这就需要用到多表管理的语句. 1.外键约束 一个表中的非主键字段,如果在另外一张表中是主键,那么这个字段我们叫它做外键. 例如,现在有两个表: 学生表 - 学号,姓名,性别,所在班级号 班级表 - 班级号,班级人数 在学生表中,学号是主键:在班级表中,班级号是主键,而学生表中‘所在班级号’是非主键.所以,所在班级号对学生表来说是一个外键. 语句:CONSTRAINT student_class_fk FOREI

sql语句查询同一表内多字段同时重复的记录 sql数据库重复记录删除

分享下用sql语句删除数据库中重复记录的方法.比如现在有一人员表 (表名:peosons) 若想将姓名.身份证号.住址这三个字段完全相同的记录查询出来select p1.* from persons p1,persons p2 where p1.id<>p2.id and p1.cardid = p2.cardid and p1.pname = p2.pname and p1.address = p2.address可以实现上述效果.几个删除重复记录的SQL语句 1.用rowid方法2.用gr