T-SQL语言
数据定义语言(DDL) 定义数据库里的结构
create,alter,drop
数据操作语言(DML) 对里面的记录进行操作
insert,delete,update,select
数据控制语言(DCL)
分配(grant),回收(revoke)和拒绝(deny)
表达式
符号和运算符的组合
通配符
只对字符串的筛选有效
'_' 一个字符
% 任意长度
[] 指定范围内
[^] 不在括号中
逻辑运算符
and not or
当一个语句中使用多个逻辑运算符时,首先求not的值,然后求and的值,最后求or的值
插入数据
insert ... values:使用values子句,每次插入一条数据
insert ... select:使用select子句,每次可插入一个数据集
insert ... execute:插入一个存储过程返回的集合
insert ... default:赋予默认值(这个很少用)
语法格式:
insert [into] table_name [(column_list)]
{values(
{default
|null|
expression}[,...n])
}|default values
对于not null 的列,不能直接插入默认值
对于标识列,不需要插入数据,系统会自动生成
SQL2005中,varchar等数据类型不能输入中文,转化成nvarchar即可
在添加和修改时使用N关键字,如输入'语文',应写成N'语文'
修改数据
语法格式:
update table_name set {column_name = expression}[,...n]
[where serach_condition]
注意别违反原有的约束
删除数据
使用delete语句
delete [from] table_name [where serach_condition]
使用truncate语句
语法格式:
truncate table table_name
在功能上等同于delete [from] table_name,删除表中全部记录
truncate 语句比delete语句快
truncate不记录日志,只记录整个数据页的释放操作,而delete语句对每一行修改都记录日志
truncate 不删除表的结构及约束、索引,但是会把标识列的计数值重置
对于有foreign key约束的表,不能使用truncate