T-SQL组成:
1、DML(Data Manipulation Language 数据操作语言):select,insert,update,delete等。
2、DCL(Data Control Language 数据控制语言):用来控制存储许可,存储权限等。
3、DDL(Data Definition Language 数据定义语言):建立数据库、数据库对象和定义其列。
4、变量说明、流程控制、功能函数。
基本的一些语句:
- Select 字段名1[AS 别名], ... ,字段名N[AS 别名] from 数据表名称 where <条件> order by 字段名[DESC]
- 省略DESC,输出数据从小到大递增排序
- 加上DESC,输出数据从达到小递减排序
- Insert Into 数据表名称(字段名1,..., 字段名N) Value(数据1,...,数据N)
- A.每次插入一行数据,不可能只插入半行或者几列数据,因此,插入的数据是否有效将按照整行的完整性的要求来检验。
- B.每个数据值的数据类型、精度和小数位数必须与相应的列匹配。
C.不能为标识列指定值,因为它的数字是自动增长的。
D.如果在设计表的时候就指定了某列不允许为空,则必须插入数据。
E.插入的数据项,要求符合检查约束的要求。
F.具有缺省值的列,可以使用 DEFAULT(缺省)关键字来代替插入的数值。 - Delete From 数据表名称 where <条件>
- Update 数据表名称 Set 字段名1=数据1,...,字段名N=数据N where <条件>
建立数据库:
- /*
*sysdatabases表在master数据库中,保存着当前系统中的所有数据库
*On Primary:默认就属于Primary文件组,这个可以省略
*/ - Use master
- GO
- IF Exists(Select * from sysdatabases Where name = 'stuDB')
- Drop Database stuDB
- Create Database strDB On Primary
- (
- Name = 'strDB',
- FileName = 'D:/DataBase/strDB.mdf',
- Size = 5Mb,
- MaxSize = 100Mb,
- FileGrowth = 15%
- )
- Log On
- (
- Name = 'strDB_log',
- FileName = 'D:/DataBase/strDB_log.ldf',
- Size = 5Mb,
- FileGrowth = 1Mb
- )
- GO
建立表:
- Use strDB
- GO
- /*
- *这个IF语句为什么没有效果?执行第二次就报错?
- IF EXISTS(Select * From sysobjects Where name='stuInfo')
- DROP TABLE strInfo
- */
- Create Table strInfo
- (
- stuName varchar(20) NOT NULL,
- stuID int NOT NULL,
- stuAge int NOT NULL
- )
- GO
当 SET NOCOUNT 为 ON 时,不返回计数(表示受 Transact-SQL 语句影响的行数)。当 SET NOCOUNT 为 OFF 时,返回计数。如果存储过程中包含的一些语句并不返回许多实际的数据,则该设置由于大量减少了网络流量,因此可显著提高性能。