SQL Server 拾遗(一)
主键:可以将多个列设为主键,但是所有列的值的组合必须唯一(单个列的值可以不唯一)。
常用系统存储过程:
SP_DATABASES; //获取可用的数据库列表
USE [数据库名]; //使用当前库
SP_TABLES; //获取当前数据库内全部数据表列表
SP_TABLES NULL,DBO,[数据库名],"'TABLE'"; //获取当前数据库内指定条件的数据表列表
SP_SERVER_INFO; //显示服务器状态信息
SP_SPACEUSED; //显示数据库使用(和未使用)的空间量
SP_HELPUSER; //显示可用的用户账号
SP_HELPLOGINS; //显示登陆用户及它们具有的权限
SELECT语句:
SELECT TOP(百分比) PERCENT * FROM [表名]; //按百分比获取表中的行
IN操作符:
SELECT * FROM [表名] WHERE (列1= 条件1) OR (列1= 条件2);
等效于
SELECT * FROM [表名] WHERE 列1 in (条件1, 条件2);
而且后者效率更高。
方括号[]通配符:
SELECT * FROM [表名] WHERE 列1 LIKE ‘[字母1字母2]%’;//查找列1中以字母1或字母2开头的行
拼接字段:
SELECT 列1 + ‘分隔符’+ 列2 AS 列3 FROM [表名];//拼接列1和列2对应的字段,并命名为列3.
此操作只对字符类型字段有效,如需拼接数字类型字段,则先进行类型转换和空格过滤即可
SELECT STR(列1) + ‘分隔符’+ STR(列2) AS 列3 FROM [表名];//STR()为SQL函数
数据分组:
SELECT 列1,COUNT(*) AS 临时列 FROM [表名] GROUP BY 列1 //分组显示列1的数据并计算重复数
SELECT 列1,COUNT(*) AS 临时列 FROM [表名] GROUP BY 列1 HAVING COUNT(*) >= 数值1 //分组显示列1的数据并计算重复数大于数值1的列集合
区别: WHERE:数据分组前进行过滤;
HAVING:数据分组后进行过滤;