SQL语言_SQL和T-SQL基础
作者:田超凡
版权所有,转载请注明原作者,仿冒侵权必究法律责任
1.表的基本概念
数据库中的表用来根据不同需求和实际需要分门别类存储数据,数据库中的数据都存放在不同类型的表中,因此可以说表是数据库的一个重要组成部分。
2.数据完整性的概念,以及SQL Server为保证数据完整性提供的4种类型的约束的作用、区别、联系
数据完整性:数据完整性指的是数据库中数据的准确性。
为保证数据完整性,SQL Server提供了以下4种类型的约束:
(1)实体完整性约束
作用:确保同一个表中不能存在相同的数据行。
实施方式:主键约束、非空约束、标识列
(2)域完整性约束
作用:确保给定列输入值的有效性。
实施方式:检查约束、外键约束、默认约束、唯一约束
(3)引用完整性约束
作用:保持表之间已建立的关系。
实施方式:外键约束
(4)自定义完整性约束
作用:通过用户自定义完整性定义特定规则。
实施方式:自定义。
3.SQL Server中的基本数据类型
二进制数据类型:binary/varbinary/image
字符数据类型:
char/varchar(非Unicode字符)
nchar/nvarchar(Unicode字符)
长度区别:char/nchar固定长度,varchar/nvarchar长度可变
text长文本 ntext可变长度的长文本
日期时间类型:datetime/smalldatetime/date
数值数据类型(包括整数、小数和分数):
整数:int/bigint/smallint/tinyint
小数:float/real
货币数据类型:money
布尔数据类型(1是0否,实际返回true/false):bit
4.表的结构以及主外键相关定义、如何建立表间关系(实施引用完整性)
表的结构:列是否为空IS NULL/NOT NULL 是否有默认值DEFAULT,是否是标识列IDENTITY(标识种子,标识增量),是否是主键PRIMARY KEY
是否为空:是否允许列中插入空值
默认值:不显式在某列插入数据时,该列默认插入的数据
标识列:自动编号,不能输入数据,数据类型必须是整数型,可以设置为主键,实施实体完整性
主键:主键用来唯一标识表中的每一列,强制实体完整性,一个表只能有一个主键。
复合主键:当需要将两列或两列以上的列设置为一个主键时,则该主键也叫复合主键。
外键:用来建立引用关系,确保从表中的某个数据项在主表中必须存在,强制引用完整性,一个表可以有多个外键,外键中的数据和主键中的数据相对应,添加外键约束前必须先添加外键对应的主键(主键约束)
※通过学习本章,你需要掌握并熟练运用的知识:
1.SQL语言的定义、作用?
2.T-SQL和SQL间的关系?
3.SQL语言的组成?
4.SQL语言中的运算符?
5.T-SQL插入数据的语法?(一次插入一行/一次插入多行)
6.T-SQL插入标识列的语法?
7.T-SQL更新(修改)数据的语法?
8.T-SQL删除数据的语法?(删除部分记录/删除表中所有数据)
9.TRUNCATE TABLE使用中的一些注意事项?
10.T-SQL语言执行增、删、改的一些注意事项
※对照下面的一些自我总结看看是否掌握了本章知识
1.
定义:SQL语言是结构化查询语言(struct query language),通过使用SQL语言,可以使用代码代替使用鼠标对数据库中的一些常用操作,SQL语言甚至可以通过ADO.NET搭建数据库和应用程序之间的桥梁。SQL语言相对于界面操作而言,操作方式更加灵活,执行速度更快,执行效率更高,可以满足更多的实际需求,SQL语言是当今程序员必须掌握的一个对于操作数据库而言的基本技能。
作用:数据库需要一套指令集,能够识别指令,执行相应操作,并向程序提供数据。目前标准的指令集就是SQL语言。
2.
T-SQL:SQL Server使用的ANSI SQL的一个扩展集,依赖于SQL语言,T-SQL只能在SQL Server数据库中使用,使用范围相对单一。
SQL语言:数据库通用的结构化查询语言,适用范围相对较广,可以在当今主流的几乎任意一种数据库中使用,方便程序员对数据库进行操作。
关系:
作用域不同:SQL语言可以在当今主流的几乎所有数据库中使用,T-SQL只能在SQL Server数据库中使用。
依赖关系:T-SQL依赖于SQL语言
3.
SQL语言主要由以下几个部分组成:
DML 数据操作语言
DDL 数据定义语言
DQL 数据查询语言
DCL 数据控制语言
4.
SQL语言中的运算符主要由以下几种类型:
算术运算符:进行常见的加减乘除取模运算
赋值运算符:可以给变量赋值,一般在更新(修改)数据中用的比较多,用来给某列赋修改后的值。
比较运算符:进行常见的大小关系比较,主要运用于建立检查约束(CHECK)和作为分支结构控制语句(如IF-ELSE、CASE-END) 的判断条件
逻辑运算符:AND/OR/NOT用来对条件进行判断,返回布尔类型(true/false)
5.
T-SQL一次插入一行数据:
INSERT [INTO] table_name(column1,column2….)
VALUES(value1,value2…)
T-SQL一次插入多行数据:
INSERT-SELECT语句:将以存在表中的数据一次性插入到已建好的表中
INSERT [INTO] table_name(column1,column2…)
SELECT column1,column2….
FROM table_name
SELECT-INTO:将已存在的表中的数据插入到新表中(系统自动创建新表)
SELECT column1,column2….
INTO table_new
FROM table_name
INSERT-SELECT-UNION:一次插入多行数据(手动输入的情况)
INSERT [INTO] table_name(column1,column2…)
SELECT value1,value2 UNION ——第一行
SELECT value1,value2 UNION ——第二行
…最后一行结尾不用加UNION
6.T-SQL插入标识列:
SELECT IDENTITY(数据类型(必须是整数型,一般使用int),标识种子,标识增量) AS 标识列名
INTO table_name
FROM table_name
7.T-SQL更新表中数据
UPDATE table_name SET column1=value1,column2=value2…
WHERE 更新条件
8.T-SQL删除数据
删除部分记录:
DELETE FROM table_name
WHERE 删除条件
删除表中所有数据:
DELETE FROM table_name
TRUNCATE TABLE table_name
9.TRUNCATE-TABLE删除表中所有数据时的一些注意事项:
①使用TRUNCATE TABLE删除的数据不能恢复
②使用TRUNCATE TABLE删除表中数据后,标识列会重新开始编号
③不能使用TRUNCATE TABLE删除带有外键约束的引用的表的数据
④使用TRUNCATE TABLE删除表中数据后,表中的约束依然存在
⑤建议尽量少用TRUNCATE TABLE语句删除表中所有数据,以免由于误操作而造成数据丢失、损坏,从而带来的严重后果。
10.T-SQL语言执行表中数据增、删、改的注意事项:
①新增的数据必须满足插入的表中的各种约束,从而保证数据完整性。另外,列名和插入的数据数量、类型、顺序必须保持一致,不然会导致插入失败
②更新表中数据(修改表中的数据时),一般需要使用WHERE字句限定更新(修改)条件,如果不限定WHERE条件,则将默认更新表中所有数据。实际应用中一般建议限定WHERE条件,以免误操作导致表中所有数据的更新(原本只需要更新部分数据),而破坏数据完整性
③删除数据时一定要谨慎,尽量少用TRUNCATE TABLE删除数据,删除数据的语法中WHERE字句可选,不限定WHERE条件则默认删除表中所有数据,产生的效果类似于TRUNCATE TABLE,但是使用DELETE语句删除数据后标识列不会重新开始编号,甚至可以撤销删除(恢复数据),而TRUNCATE TABLE执行的删除操作则是彻底的,不可撤销和恢复的。