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


 ---------------------- 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):
  1. 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 <条件>]



常用的函数 
  • 集合函数
    1. count(*)   函数返回指定列的值的数目
    2. max()     函数返回一列中的最大值, NULL 值不包括在计算中
    3. min()    函数返回一列中的最小值, NULL 值不包括在计算中
    4. avg()   函数返回一列中的平均值, NULL 值不包括在计算中
    5. 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/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值