SQL语言

一、SQL语言概述

1.SQL语言的功能

SQL语言按其功能可分为4大部分:数据定义、数据查询、数据操纵和数据控制。

SQL功能谓词
数据定义CREATE、DROP、ALTER
数据查询SELECT
数据操纵INSERT、UPDATE、DELETE
数据控制GRANT、REVOKE、DENY

二、SQL支持的数据类型

1.数值型

(1)精确数字

(2)近似数字

2.日期时间型

3.字符串型

(1)普通字符编码串

(2)统一字符编码串

(3)二进制串

4.其他类型

三、数据定义功能

1.数据库的定义

(1)数据库创建

         create database <数据库名>

(2)数据库修改

         alter database  <数据库名>

(3)数据库删除

       drop database <数据库名>

2.表的定义

(1)表的创建

    create table  表名(列名  数据类型 [primary key|unique][not null][,列名  数据类型 [not null ,... ]);

    “[]”表示其中的内容是可选的,“|”表示在多个选项中选择一个。

    primary key :主键约束。每个表只能创建一个主键约束。

    unique:唯一性约束(即候选键)。可以有多个唯一性约束。

    not null:非空约束。是指该列不允许有空值出现,如选择了 not null 表名该列不允许有空值出         现。

    [ forenign key (<列名>)] references <外表名> (<外表列名>):外键约束。定义本列为引用其      他表的外键。

     deffault :默认值约束。指定列的默认值。

     check(逻辑表达式):列取值范围约束。限制列的取值范围。

(2)表的修改

   alter table <表名>

    {

     alter column <列名> <新数据类型>|

     add  <列名> <新数据类型> [约束] |

     add 约束定义|

     drop  <约束名>

   }   

四、数据查询功能

1.表单查询

(1)查询语句的基本结构:

       select <目标列名序列>

       from <表名> 

      [where  <行选择条件>]

      [group by <分组依据列>]

      [having <组选择条件>]

      [order by <排序依据列>]

其中:

select子句用于指定输出的字段。

from子句英语指定数据的来源。

where子句用于指定数据的行选择条件。

group by 子句用于对检索到的记录进行分组。

having 子句用于指定对分组后结果的选择条件。

order by 子句用于对查询的结果进行排序。

(2)选择表中若干列

       查询指定的列:可以在 select <目标列名序列>中指定要查询的列来实现。

       查询全部列:在 select 的<目标列名序列>中写星号“*”。

       查询表中没有的列:select子句 的<目标列名序列>可以是表中存在的属性列,也可以是表达式、常量或者函数。例如:求年龄。

(3)指定别名的语法格式:

        列名|表达式 [as] 列别名

        其中:列别名=列名|表达式

(4)选择表中若干行(需要添加where子句)

        查询满足条件的元组:

        比较大小:=、>、>=、<、<=、<>、!=。

       确定范围:between and 

        确定集合:列名[not ] in (常量1,常量2,....,常量n)

        字符串匹配:列名 [not]  Like  <匹配穿>

                             通配符:_:匹配任意一个字符。

                                          %:匹配0到多个字符。

                                          [ ]:匹配[ ]中的任意一个字符。

                                          [^]:不匹配[ ]中的任意一个字符。

        涉及空值的查询:列名 is [not] null

       多重条件查询:在where子句中使用逻辑运算符and 和or 来组成多条件查询。

  (5)消除取值相同的行。

2.对查询结果进行排序。

   排序子句的语法格式:

   order by <列名> [ASC|DESC] [,...n]

   其中:ASC:升序     DESC:降序

   如果没有指定排序方式,则默认的排序方式为ASC.

3.使用聚合函数进行统计

 (1)COUNT(*):统计表中元组的个数。

 (2)SUM(<列名>):计算列值的和值。

 (3)AVG(<列名>):计算列值的平均值。 

 (4)MAX (<列名>):计算列值的最大值。

  (5)MIN(<列名>):计算列值的最小值。

4.对数据进行分组

   GROUP BY <分组依据列> [,.....n]

   [having <组提取条件>]

  其中:having子句用于对分组后的统计结果再进行筛选,它一般和group by 子句一起使用。

5.多表连接查询

(1)内连接: from 表1  [inner]    join  表2 on <连接条件>

(2)自连接: from 表1 AS T1  join 表1 AS T2 on T1.列名= T2.列名

 (3)外连接: from 表1 LEFT|RIGHT [OUTER] JOIN 表2  On <连接条件>

6.TOP的使用

 (1)格式:TOP  n [percent] [WITH  TIES]

         其中:n为非负整数。

                  TOP  n:取查询结果的前n行数据。

                  TOP  n percent:取查询结果的前n%行数据。

                  WITH  TIES:包括并列的结果。

7.CASE表达式

  (1)CASE的语法格式:

         CASE 测试表达式

         WHEN  简单表达式 1 THEN  结果表达式  1

         WHEN  简单表达式 2 THEN  结果表达式  2

         ....

         WHEN  简单表达式 n THEN  结果表达式  n

         [ELSE 结果表达式 n+1]

       END

    其中:测试表达式可以是一个变量名、字段名、函数或子查询。

              简单表达式中不能包含比较运算符,他们给出被比较的表达式或值,其数据类型必须与                  测试表达式的数据类型相同,或者可以隐式转换为测试表达式的数据类型。

8.将查询结果保存到表中

(1)语法格式:select  查询列表序列   into <新表名>

          from 数据源

            .....————其他条件子句、分组子句等

       其中:<新表名>是用于存放查询结果的表名。

9.子查询

(1)写在where子句中的子查询通常有如下几种形式:

          where <列名>  [Not ]  in (子查询)

          where <列名>  比较运算符   (子查询)

           where  exists   (子查询)

 (2)使用子查询进行基于集合的测试

       格式:where <列名>  [Not ]  in (子查询)

        其中:是先执行子查询,然后利用子查询返回的结果再执行外层查询(先内后外)。

(3)使用子查询进行行比较测试

        格式:where <列名>  比较运算符   (子查询)

         其中:使用子查询进行比较测试时,要求子查询语句必须是返回单值的查询语句。

10.带EXISTS谓词的子查询

    (1)格式:where [not ] exists  (子查询)

            其中:带exists 谓词的子查询不返回查询的数据,只产生逻辑真值或假值。

11.查询的集合运算

 (1)SQL提供了与关系代数中集合运算并、交、和差对应的谓词,它们分别是:UNION、INTERSECT和EXCEPT。

五、视图

1.视图的概述:

   视图是基于SQL语句的结果集的可视化的表。

2.视图的定义及使用

(1)格式:create  view <视图名> [(列名[,...n])]

                    as

                                select 语句

       其中, 在定义视图时注意以下几点:

                    select语句中通常不包含order by 和 distinct 子句。

                    在定义视图时要么指定视图的全部列名,要么全部省略不写,不能只写视图的部分列                      名。

   (2)视图的修改与删除

             修改格式: alter  view    <视图名> [(列名[,...n])]

                    as

                                select 语句 

           删除格式:drop  view    <视图名>

六、数据更改功能

1.数据插入

(1)单行插入:insert  [into ]  <表名> [(列名表)]  values  (值列表)

(2)多行插入:insert  [into ]  <表名> [(列名表)]  select  语句

2.数据更新

 (1)格式:update <表名> set <列名> ={ 表达式|default|null}[,...n]

                     [from   <条件表名> [,...n]]

                     [where <更新条件>]

     其中:<表名> :指定需要更新数据的表的名称。

               set <列名> :指定要更改的列,表达式指定修改后的新值。

               表达式:返回单个值的常量值或表达式或嵌套的select语句。

               from   <条件表名>:指定用于为更新操作提供条件的表源。

(2)更新语句可分为:无条件更新和有条件更新。

3.数据删除

  (1)格式:delete [from ]  <表名>

                       [from  <条件表达式>[,...n]]

                       [where <删除条件>]

      <表名>:说明了要删除哪个表中的数据。

     from  <条件表达式>:指定用于为更新操作提供条件的表源。

     where子句:说明值删除表中满足where子句条件的记录。如果省略where子句,则表示要无条          件删除表中的全部记录。

(2)删除语句可分为:无条件删除和有条件删除。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值