您的位置:首页 > 职场人生

黑马程序员--学习笔记之SQL基础语句及函数

2012-06-24 15:20 726 查看
---------------------- Windows Phones 7手机开发.Net培训、期待与您交流! ----------------------

SQL语句是和DBMS“交谈”专用的语句,不同DBMS都认SQL语法

SQL语句主要分类:

DDL 数据定义语言 Create table(新建表), Drop table(删除表) , Alter table(修改表)
DML 数据操作语言 select update insert delete (增删改查)

例子(摘自其它PPT):

为学生-课程数据库中的S、C、SC三个表建立索引。其中S表按学号升序建惟一索引,C表按课程号降序建立聚簇索引,SNO、CNO表按学号升序和课程号降序建非聚簇索引。
CREATE UNIQUE INDEX S_SNO ON S(SNO)
CREATE CLUSTERED INDEX C_CNO ON C(CNO DESC)
CREATE NONCLUSTERED INDEX SC_SNO_CNO ON SC(SNO ASC,CNO DESC)

常用增删改查语句格式:

select * from 表名 where 条件
insert into 表名 (字段1,字段2,....) values (值1,值2...)
update 表名 set 字段=值 where 条件
delete from 表名 where 条件

标准格式(摘自其它PPT):

SELECT语句的一般格式为:

SELECT [ALL|DISTINCT]<目标列表达式>[,<目标列表达式>]...

[INTO <新表名>]

FROM <表名或视图名>[,<表名或视图名>] ...

[WHERE <条件表达式>]

[GROUP BY <列名1> ... [HAVING <条件表达式>]]

[ORDER BY <列名2> [ASC|DESC]] ...

/*order by 排序 DESC 倒序, ASC升序

order by 跟 where 一起用时, where 必须放在order by 之前

group by 分组*/

2.插入单个元组的INSERT语句的格式为:

INSERT [INTO] <表名> [(<属性列1>[,<属性列2>]...)]

VALUES(<常量1> [,<常量2>]...)

3.修改操作又称为更新操作,其语句的一般格式为:

UPDATE <表名>

SET <列名>=<表达式>[,<列名>=<表达式>]...

[WHERE <条件>]

4.删除语句的一般格式为:

DELETE [FROM] <表名> [WHERE <条件>]

常用的函数

集合函数

count(*) 函数返回指定列的值的数目
max() 函数返回一列中的最大值, NULL 值不包括在计算中
min() 函数返回一列中的最小值, NULL 值不包括在计算中
avg() 函数返回一列中的平均值, NULL 值不包括在计算中
sum() 返回表达式中所有值的和或仅非重复值的和,SUM 只能用于数字列, NULL 值不包括在计算中

关于 NULL 的趣事

在数据库中,数据 “Null ”表示是一个不确定的数据,
比如: select null+1 的运行结果也是null,因为 一个不确定的数加上1,结果等于不确定的数
同样: select 'abc'+null; select * from T_Employee where FName<> null 等
在数据库有一个判断数据是否为null的函数:
Isnull(name,'unkown') 如果name为空, 就显示"unkown",如果name不为空就显示name的值

聚合函数的注意点

聚合函数不能出现在where子句中. 如果要用聚合函数做做条件,就必须要用Having

并且Having 要放在group by 之后.

Hvaing 是对分组后信心的过滤,能用的列和select中能用的列是一样. having不能代替where

过滤完全重复的信息

使用关键字" distinct " 过滤完全重复的信息.

union 两个查询结果,合并成一个结果. 两个查询的个数要一样, 类型要相同.

union与union all的相同点与不同点

union 会把完全重复的信息过滤掉

union all 可以完全合并起来. 不会过滤.

常用的数学函数

ABS() 就绝对值
Ceiling() (天花板函数)舍入到最大整数.3.33将被舍入为4,2.89将被舍入为3,-3.61将被舍入为-3

Floor() (地板函数)舍入到最小整数,3.33将被舍入为3,-3.61将被舍入为-4
Round() 四舍五入.select Round(3.1415,2) 结果是 3.1400

字符串函数

Len() 计算字符串的长度 len(' 123 ') 结果 5

Lower() 转小写,Upper() 转大写

Ltrim() 去掉字符串左边的空格,

Rtrim() 去掉字符串右边的空格.

Ltrim(Rtrim(' A ')) 去掉两边的空格.

Substring (string,start_position,length) 截取字符串长度,start_position为开始截取的位置,length为截取的长度

日期函数

GetDate() 获取当前日期时间

select DATEADD(mm,1,getdate()) 计算增加以后的日期

select DATEDIFF(HH,GETDATE(),DATEADD(DAY,-3,getdate())) 计算两个日期之间的差额.

select DATEPART(YEAR,getdate()) 获取指定日期, 结果 指定的年. 2011

数据转换函数

Cast (数据 as 类型)

Convert (类型 , 数据)
---------------------- Windows Phones 7手机开发.Net培训、期待与您交流! ----------------------

详细请查看http://net.itheima.com/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: