SQL Server DML(UPDATE、INSERT、DELETE)常见用法(一)

  

1.引言

T-SQL(Transact Structured Query Language)是标准的SQL的扩展,是程序和SQL Server沟通的主要语言。

T-SQL语言主要由以下几部分组成:

  • 数据定义语言(DDL):用来建立数据库、数据库对象等,如CREATE TABLE、DROP TABLE等。
  • 数据控制语言(DCL):控制数据库的存取许可、权限等,如GRANT等。
  • 数据操纵语言(DML):用于插入、修改、删除和查询数据库中数据,如SELECT、INSERT、UPDATE、DELETE等。

  数据定义语言和数据控制语言实现的操作通常通过Micosoft SQL Server Management Studio可视化操作。程序中使用最多的是数据操纵语言,这里主要介绍数据操纵语言中SELECT、INSERT、UPDATE、DELETE的最常见,最基本的用法。

2. 常用概念

  在介绍数据操纵语言之前,先来了解一些SQL Server中常用的规范和格式,以及在T-SQL语句中可能用到的概念。

2.1标识符

服务器、数据库和数据库对象(如表、视图、列、索引、约束等)都有标识符,数据库对象的名称被看作为该对象的标识符。

  • 标识符格式
  1. 首字母必须以字母(UNICODE 2.0中定义)、下划线_、符号@、或者数字符号#开头,后续可是字母、数字、_、@、$、#。
  2. 以@开头的标识符表示局部变量或参数,以#开头表示临时表或变量,以##开头表示全局临时对象,某些Transact SQL 函数以@@开头。
  • 标识符分类
  1. 常规标识符:符合标识符格式规格,如age123,_we
  2. 分隔标识符:包含在“”或者[]内的标识符,标识符中间可以有空格,如[hong kong]

2.2对象命名规则

  完整的对象名由服务器名、数据库名、schema、和对象名组成,其间使用.号连接;可以省略中间一部分用.表示

  Server.database.schema.object

  Server..schema.object

  schema.object

  Object

2.3常量、变量、运算符和通配符

  • 常量
  1. 数值常量包含整数常量、小数常量和浮点数常量,如12,12.56,12.5e7
  2. 字符串常量,在单引号内,包含字母数字以及特殊字符,如!、@、#;如果包含嵌入的引号,可以使用两个单引号表示嵌入的单引号。如’student’。
  3. 日期和时间,日期、时间和时间间隔的常量值被指定为日期和时间常量。例如‘1989-09-34‘,‘04/04/1998‘,时间和日期根据国家不同书写方式也不同。
  4. 符号常量,特殊的常量符号代表不同的常量数据值,CURRENT_DATE等。
  • 变量
  1. 局部变量以@开头。
  2. 全局变量以@@开头,内部定义了很多全局变量,如@@CONNECTIONS表示,服务器启动后的连接次数。
  • 运算符和通配符
  1. 运算符包含算数运算符+、-、*、/、%;赋值运算符=;比较运算符>、<、=、>=、<=、<>;逻辑运算符ALL、AND、ANY、BETWEEN、EXISTS、IN、LIKE、NOT、OR、SOME;位运算符&、|、^、~;连接运算符+。
  2. 通配符,%:包含零个或更多字符;_:任何单个字符;[]:指定范围或集合中任意单个字符;[^]:不属于指定范围或集合中的单个字符。

3.DML数据操作语言

  DML数据操作语言,包含SELECT、INSERT、UPDATE、DELETE这四种T-SQL语句,下面通过例子,具体介绍这四个语句的基本使用。

假设现有如下的一张表格,表名称为Student:

  

3.1 SELECT语句

  SELECT语句用来查询数据表格或视图,是使用最多的一条语句,由于其语法复杂,子句较多,在后面有专门的一章来说明它的用法。

3.2 INSERT语句

  INSERT语句向表中添加新纪录,该语句可以向表中插入一条新纪录或者插入一个结果集。语法如下(以下所有语法的格式如下,大写表示关键字,[]表示可选内容,[,…]表示可重复前项):

    INSERT [INTO] table_or_view_name (column_name[,…]) VALUES (expression)[,…]

  向表中插入数据:

    

  结果如下:

    

3.3 UPDATE语句

  修改数据库中数据。语法如下:

    UPDATE table_or_view_name [FROM {<table_source>}[,…]]

    SET column_name = expression | DEFAULT | NULL [,…]

    WHERE search_condition

修改表格中姓名为王莉的年龄为19:

    

结果如下:

    

3.4 DELETE语句

  删除表格中记录,语法如下:

    DELETE [FROM <table_source>[,…]]

    WHERE search_condition

删除表格中姓名为王莉的记录:

    

结果如下:

    

4 结论

 数据操纵语言个数不多,结构简单,但是使用频繁,其中的SELECT语句使用最多,也最复杂,详细介绍请看后一章,SQL Server SELECT查询语句基本用法。

时间: 2024-11-04 15:13:56

SQL Server DML(UPDATE、INSERT、DELETE)常见用法(一)的相关文章

SQL Server DML(SELECT)常见用法(二)

1   引言 上篇讲到SQL Server中DML的基本使用方法,其中SELECT语句是最常用的语句,其功能强大,结构复杂,下面通过例子,具体介绍其使用方法. 2 SELECT查询语句 SELECT语句从数据表或视图中查找数据,SELECT语法归纳如下: [WITH <common_table_expression>] SELECT select_list [INTO new_table_name] [FROM table_source] [WHERE search_condition] [G

sql server 数据库机种 insert 语句用法insert into emproyee(e_name,e_sex)values(&#39;唐家三少&#39;,0); insert into emproyee

刚倒弄sql server 对insert 语句插入多条数据时总结下> 单条数据插入: insert into emproyee(e_name,e_sex)values('唐家三少',0); insert into emproyee(e_name,e_sex)select'骷髅精灵',0 多条数据插入: insert into emproyee(e_name,e_sex)select'天蚕土豆',0 union all select '我吃西红柿',0 union all select '逆苍天

SQL SERVER 使用BULK Insert将txt文件中的数据批量插入表中(1)

1/首先建立数据表 CREATE TABLE BasicMsg( RecvTime FLOAT NOT NULL , --接收时间,不存在时间相同的数据 AA INT NOT NULL, --24位地址码 . FlightID Varchar(10) NULL, --航班号) 2/ 建立存储过程 USE DF17DataProIF EXISTS (SELECT * FROM SYS.PROCEDURES WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[BulkDataP

SQL Server中的锁类型及用法

一. 为什么要引入锁 多个用户同时对数据库的并发操作时会带来以下数据不一致的问题: 丢失更新 A,B两个用户读同一数据并进行修改,其中一个用户的修改结果破坏了另一个修改的结果,比如订票系统 脏读 A用户修改了数据,随后B用户又读出该数据,但A用户因为某些原因取消了对数据的修改,数据恢复原值,此时B得到的数据就与数据库内的数据产生了不一致 不可重复读 A用户读取数据,随后B用户读出该数据并修改,此时A用户再读取数据时发现前后两次的值不一致 并发控制的主要方法是封锁,锁就是在一段时间内禁止用户做某些

SQL Server 存储过程的几种常见写法分析,我们该用那种写法

本文出处: http://www.cnblogs.com/wy123/p/5958047.html 最近发现还有不少做开发的小伙伴,在写存储过程的时候,在参考已有的不同的写法时,往往很迷茫,不知道各种写法孰优孰劣,该选用那种写法,以及各种写法优缺点,本文以一个简单的查询存储过程为例,简单说一下各种写法的区别,以及该用那种写法专业DBA以及熟悉数据库的同学请无视. 废话不多,上代码说明,先造一个测试表待用,简单说明一下这个表的情况 类似订单表,订单表有订单ID,客户ID,订单创建时间等,查询条件是

sql server数据库中raiserror函数的用法

server数据库中raiserror的作用就和asp.NET中的throw new Exception一样,用于抛出一个异常或错误.这个错误可以被程序捕捉到. raiserror的常用格式如下:raiserror('错误的描述',错误的严重级别代码,错误的标识,错误的描述中的参数的值(这个可以是多个),一些其它参数),在官方上的格式描述如下: RAISERROR ( { msg_id | msg_str | @local_variable } { ,severity ,state } [ ,a

sql server 2005中的分区函数用法(partition by 字段)

分组取TOP数据是T-SQL中的常用查询, 如学生信息管理系统中取出每个学科前3名的学生.这种查询在SQL Server 2005之前,写起来很繁琐,需要用到临时表关联查询才能取到.SQL Server 2005后之后,引入了row_number()函数,row_number()函数的分组排序功能使这种操作变得非常简单. create database StudentDBgo use StudentDBgo create table Student  --学生成绩表( id int,  --主键

SQL Server 排序函数 ROW_NUMBER和RANK 用法总结

下面的例子和SQL语句均在SQL Server 2008环境下运行通过,使用SQL Server自带的AdventureWorks数据库. 转载请注明此文原创自 CSDN TJVictor的专栏:http://blog.csdn.net/tjvictor/archive/2009/07/08/4331039.aspx 1.ROW_NUMBER()基本用法: SELECT  SalesOrderID,  CustomerID,  ROW_NUMBER() OVER (ORDER BY SalesO

Sql Server系列:Insert语句

1. INSERT语法 [ WITH <common_table_expression> [ ,...n ] ] INSERT { [ TOP ( expression ) [ PERCENT ] ] [ INTO ] { <object> | rowset_function_limited [ WITH ( <Table_Hint_Limited> [ ...n ] ) ] } { [ ( column_list ) ] [ <OUTPUT Clause>