SQL语法精要:查询、约束与函数操作

需积分: 3 6 下载量 107 浏览量 更新于2024-09-24 收藏 456KB DOCX 举报
"这篇资料主要总结了SQL Server中的一些常用操作,包括查询、分页、约束添加以及函数和存储过程的创建。对于SQL Server初学者或需要复习语法的人来说,是一份非常实用的参考资料。" 在SQL Server中,查询是数据库操作的基础。查询前三条记录可以使用`SELECT TOP 3 * FROM student WHERE`语句,这里的`TOP 3`指定了要选取的记录数量,`WHERE`后面的条件用于进一步筛选。进行分页查询时,如果要获取第n页每页3条数据,可以使用嵌套的`SELECT`语句,如下所示: ```sql SELECT TOP 3 * FROM student WHERE id NOT IN (SELECT TOP(3*(n-1)) id FROM student) ``` 在表结构管理方面,SQL Server提供了多种约束来保证数据的完整性和一致性。例如,添加主键约束可以使用`ALTER TABLE`语句,如`ALTER TABLE stuInfo ADD CONSTRAINT PK_stuNo PRIMARY KEY (stuNo)`,这将确保`stuNo`字段的唯一性。添加唯一约束类似,如`ALTER TABLE stuInfo ADD CONSTRAINT UQ_stuID UNIQUE (stuID)`,防止`stuID`字段出现重复值。 默认约束的添加可以这样操作:`ALTER TABLE stuInfo ADD CONSTRAINT DF_stuAddress DEFAULT ('地址不详') FOR stuAddress`,这样在插入数据时,如果未提供`stuAddress`,系统会自动填入'地址不详'。检查约束(`CHECK`)如`ALTER TABLE stuInfo ADD CONSTRAINT CK_stuAge BETWEEN 15 AND 40`,确保`stuAge`字段的值在15到40之间。 外键约束用于维护表间的关系,例如`ALTER TABLE stuMarks ADD CONSTRAINT FK_stuNo FOREIGN KEY (stuNo) REFERENCES stuInfo(stuNo)`,这确保了`stuMarks`中的`stuNo`引用`stuInfo`表中的有效`stuNo`。 在处理标识列时,如果需要将某个字段设置为自动增长的标识列,可以使用如下语句:`ALTER TABLE stuInfo ALTER COLUMN stuNo IDENTITY(1,1)`,这会让`stuNo`字段每次插入新记录时自动递增。 非空约束的添加也很简单,例如:`ALTER TABLE stuInfo ALTER COLUMN sex nvarchar(20) NOT NULL`,确保`sex`字段不能有空值。 函数在SQL Server中分为标量值函数和表值函数。创建一个标量值函数,如: ```sql CREATE FUNCTION 函数名(@参数 参数类型) RETURNS 返回值类型 AS BEGIN RETURN 返回值 END ``` 调用该函数时,可以写成`dbo.函数名(参数)`。 而创建一个表值函数则如下: ```sql CREATE FUNCTION 函数名(@参数 参数列表) RETURNS @返回表 TABLE ( 表结构 ) AS BEGIN RETURN END ``` 调用表值函数,可以使用`SELECT * FROM 函数名(参数列表)`。 至于存储过程的创建,无参数的存储过程示例如下: ```sql CREATE PROC 存储过程名 AS BEGIN -- 存储过程的SQL语句 END ``` 存储过程可以包含多个SQL语句,用于封装一系列的操作,提高代码复用性和执行效率。