DBMS 数据库管理系统
Catalog(分类) (数据库Database 表空间TableSpace)
不同类的数据应该放在不同的数据库中
1、便于对各个Catalog进行个性化管理
2、避免命名冲突
3、安全性更高
Table(表) 不同类型的资料放到不同的区域,这种区域叫做表
列(Column) 字段(Field)
主键就是数据行的唯一标识
主键有两种选用策略:业务主键和逻辑主键
业务主键是使用有业务意义的字段做主键,比如身份证号,银行账号等;
逻辑主键是使用没有任何意义的字段做主键,完全给程序看的,业务人员不会看的数据。
因为很难保证业务主键不会重复,所以推荐用逻辑主键
数据库数据类型:
bit 布尔类型 0,1
char(n) 字符类型
nvarchar(n)可能含有中文
varchar(n)
区别:
char(n) 不足长度n的部分用空格填充
var=>variable,可变的
SQL主要分为DDL(数据定义语言)和DML(数据操作语言)两类。Create,Drop属于DDL,Select,Insert等属于DML
union 将两个查询结果合为一体,两个查询的列数和类型要相容。自动合并结果中重复的数据(distinct)若不想自动合并,需在union后加all
(合并报表,例如查询一个表中的最低年龄,最高年龄等等)
数据库函数:
数字函数:
ABS() 绝对值
CEILING() 舍入到最大整数 天花板
FLOOR() 舍入到最小整数 地板
RONGD() 四舍五入 半径
字符串函数:
LEN() 字符串长度
LOWER()、UPPER() 转小写、大写
LTRIM()、RTRIM()、LTRIM(RTRIM()) 去除左侧、右侧、左右侧空格
SUBSTRING(string,start_position,length) 截取
日期函数:
GETDATE()
DATEADD(DATEPART,NUMBER,DATE) 计算增加以后的日期
例子:select dateadd(day,-3,getdate())
DATEDIFF(datepart,startdate,enddate):计算两个日期之间的差额
DATEPART(datepart,date) 返回一个日期的特定部分
类型转换函数:
CAST(expretion as date_type) 例如:cast('123' as int)
CONVERT(date_type,(expretion )
ISNULL(expretion,value) 空值处理函数
CASE函数用法1
单值判断,相当于switch case
CASE expretion
WHEN value1 THEN returnvalue1
WHEN value2 THEN returnvalue2
WHEN value3 THEN returnvalue3
ELSE defaultreturnvalue
END
例子1:
select FName,(CASE FLevel
WHEN 1 THEN 'VIP客户'
WHEN 2 THEN '高级客户'
WHEN 3 THEN '普通客户'
ELSE '客户类型错误'
END) AS FLevelName
from T_Customer
CASE函数用法2
相当于if else if……else
例子2:
select FName,(CASE
WHEN FSalary<2000 then '低收入'
WHEN FSalary>=2000 and FSalary<5000 then '中等收入'
ELSE '高收入'
END) AS 收入水平
from T_Employee