sqlserver 用SQL语句操作数据

1.SQL语句
Structured Query Language:结构化查询语言
作用:对SQL Server执行所有的操作都可以;程序中的增删改查

2.SQL与T-SQL是什么关系?
T-SQL(Transcat-SQL)是SQL的增强版
对功能进行了扩充:如变量说明、流程控制、功能函数

3.SQL的组成
(1)DML(数据操作语言)
插入、删除和修改数据库中的数据
INSERT、DELETE 、UPDATE 等
(2)DCL(数据控制语言)
用来控制存取许可、存取权限等
GRANT、REVOKE 等
(3)DQL(数据查询语言)
用来查询数据库中的数据
SELECT 等
(4)DDL(数据定义语言)
用来建立数据库、数据库对象和定义表的列
CREATE TABLE 、DROP TABLE 等

4.SQL中的运算符
算术运算符
一种符号,它是用来进行列间或者变量之间的比较和数学运算
包括算术运算符、赋值运算符、比较运算符、逻辑运算符
(1)算术运算符
运算符 说明
+ 加运算,求两个数或表达式相加的和,如6+8
- 减运算,求两个数或表达式相减的差 
* 乘运算,求两个数或表达式相乘的积 
/ 除运算,求两个数或表达式相除的商,如5/3的值为1
% 取模运算,求两个数或表达式相除的余数,如:5%3的值为2 
(2)赋值运算符
运算符 说明
= 把一个数或变量或表达式赋值给另一变量,如:Name='王华' 
(3)比较运算符
运算符 说明
= 等于,例如:age=23 
> 大于,例如:price>100 
< 小于 
<> 不等于
>= 大于等于
<= 小于等于
!= 不等于(非SQL-92标准 )
(4)逻辑运算符
运算符 说明
AND 当且仅当两个布尔表达式都为true时,返回TRUE。
OR 当且仅当两个布尔表达式都为false,返回FALSE。
NOT 布尔表达式的值取反 

5.使用INSERT语句插入
          插入数据行

           INSERT [INTO] 表名 [(列名)]
           VALUES (值列表)
           插入多行数据:
           第一种:通过INSERT SELECT语句将现有表中的数据添加到已存在的表中
           语法: INSERT INTO <表名>(列名)
           SELECT <列名>
          FROM <源表名>
           第二种:通过SELECT INTO语句将现有表中的数据添加到新表中
          语法: SELECT (列名)
          INTO <表名>
          FROM <源表名>
          注意:该语句只能执行一次
         第三种:通过UNION关键字合并数据进行插入
         语法: INSERT INTO <表名>(列名)
         SELECT <列名> UNION
         SELECT <列名> UNION

6.使用DELETE语句删除数据行
          语法:DELETE [FROM] 表名 [WHERE <删除条件>]

7.使用TRUNCATE语句删除数据行
语法:TRUNCATE TABLE 表名
注意:1.表结构、列、约束等不被改动
           2.不能用于有外键约束引用的表
           3.标识列重新开始编号
           4.尽量少用,因为它删除的数据不能恢复

8.使用UPDATE语句更新数据行
语法:UPDATE 表名 SET 列名 = 更新值
            [WHERE 更新条件]
注意:1、更新多列数据使用逗号隔开
           2、勿忘条件限制,以防有效数据的丢失

9.插入数据行注意事项
(1)每次插入一行数据,不能只插入半行或者几列数据,插入的数据是否有效将按照整行的完整性的要求来检验
(2)每个数据值的数据类型、精度和小数位数必须与相应的列匹配
(3)不能为标识列指定值
(4)如果在设计表的时候就指定了某列不允许为空,则必须插入数据
(5)插入的数据项,要求符合检查约束的要求
(6)具有缺省值的列,可以使用DEFAULT(缺省)关键字来代替插入的数值

10.delete和truncate的区别
(1)delete每删除一行,都会将操作过程记录在事务日志文件中,而truncate不会,所以truncate删除所有记录快,但删除之后无法用事务日志文件恢复
(2)delete删除记录时,会先将表中的各行锁定,才能删除,而truncate只锁定表和页
(3)用truncate删除完记录后,自动增长的标识列会重新开始计数,而用delete删除后,还会从上次最后记录为开始点继续计数
(4)如果要删除记录的表是其他表外键指向的表,那么不能用truncate来删除,只能用delete语句删除
(5)truncate语句不能删除参与索引视图的表,而delete语句可以

11.       null:本身为空值
           “ ”:有一个值,值为空

12.开发过程中删除是修改标记的操作

13."<>"与”!=”区别
功能相同,标准不同
ANSI标准中是用"<>",但为了跟大部分数据库保持一致,数据库中一般都提供了“!=”和"<>"两种来表示不等于
两种都支持:

MySQL5.1: 支持 != 和 <>
PostgreSQL 8.3: 支持 != 和 <>
SQLite: 支持 != 和 <>
Oracle 10g: 支持 != 和 <>
Microsoft SQL Server 2000/2005/2008: 支持 != 和 <>
IBM Informix Dynamic Server 10: 支持 != 和 <>
InterBase/Firebird: 支持 != 和 <>
最后两个只支持ANSI标准的数据库:
IBM DB2 UDB 9.5:仅支持 <>
Apache Derby:仅支持 <>

原文地址:https://www.cnblogs.com/zjx-959/p/13044351.html