暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

结构化查询语言SQL学习入门

小星工作室 2021-04-13
1132

一、SQL简介

结构化查询语言(Structured QueryLanguage)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统

1974年由Boyce和Chamberlin提出,并首先在IBM公司研制的关系数据库系统SystemR上实现。

1980年10月,经美国国家标准局(ANSI)的数据库委员会X3H2批准,将SQL作为关系数据库语言的美国标准,同年公布了标准SQL,此后不久,国际标准化组织(ISO)也作出了同样的决定。

注:除了标准SQL外,大部分关系型数据库都有自己的私有扩展。



二、SQL功能

SQL功能的体现主要在于SQL语言,SQL按功能类型分以下6种语言,其中1-4条使用最多。

1、数据查询语言(DQL:Data Query Language):其语句,也称为“数据检索语句”,用以从表中获得数据,确定数据怎样在应用程序给出。保留字SELECT是DQL(也是所有SQL)用得最多的动词,其他DQL常用的保留字有WHERE,ORDER BY,GROUP BY和HAVING。这些DQL保留字常与其它类型的SQL语句一起使用

2、数据操作语言(DML:Data Manipulation Language):其语句包括动词INSERT、UPDATE和DELETE。它们分别用于添加、修改和删除。

3、数据控制语言(DCL):它的语句通过GRANT或REVOKE实现权限控制,确定单个用户和用户组对数据库对象的访问。某些RDBMS可用GRANT或REVOKE控制对表单个列的访问。

4、数据定义语言(DDL):其语句包括动词CREATE,ALTER和DROP。在数据库中创建新表或修改、删除表(CREAT TABLE 或 DROP TABLE);为表加入索引等。

5、指针控制语言(CCL):它的语句,像DECLARE CURSOR,FETCH INTO和UPDATE WHERE CURRENT用于对一个或多个表单独行的操作。

6、事务控制语言(TCL):它的语句能确保被DML语句影响的表的所有行及时得以更新。包括COMMIT(提交)命令、SAVEPOINT(保存点)命令、ROLLBACK(回滚)命令。



三、SQL使用

  • DDL:CREATE,ALTER和DROP

  • CREATE(创建)
    CREATE DATABASE 数据库名;--创建数据库
    复制

      CREATE TABLE 表名称
      (
      列名1 数据类型(数据长度),
      列名2 数据类型(数据长度),
      列名3 数据类型(数据长度)
      );--创建数据表
      复制


      数据类型
      描述

      integer(size)

      int(size)

      smallint(size)

      tinyint(size)

      仅容纳整数。在括号内规定数字的最大位数。

      decimal(size,d)

      numeric(size,d)

      容纳带有小数的数字。

      'size" 规定数字的最大位数。" d " 规定小数点

      char(size)

      容纳固定长度的字符串( 可容纳字母、数字以及特殊字符)

      在括号中规定字符串的长度。

      varchar(size)

      容纳可变长度的字符串( 可容纳字母、数字以及特殊字符)

      在括号中规定字符串的最大长度

      date(yyyymmdd)容纳日期。


        CREATE USER 用户名  IDENTIFIED BY 密码;--创建用户
        复制

          CREATE INDEX 索引名称 ON 表名称(列名称);--创建索引
          复制
          • ALTER(修改)

            alter table 表名称 add 列名称 数据类型;--在某个表增加某个字段
            alter table 表名称 drop column 列名称;--删除某个表的某个字段
            alter table 表名称 alter column 列名称 数据类型;--修改某个字段的数据类型
            复制
            • DROP(撤销)

              drop database 数据库名称;--删除数据库
              drop table 表名称;--删除表(表的结构、属性以及索引也会删除)
              复制

              • DML:SELECT、INSERT、UPDATE和DELETE

              • SELECT(查询)

                SELECT 列名称 FROM 表名称;--查询某个表中某些列值
                SELECT * FROM 表名称;--查询某个表中所有列的数据
                复制
                • INSERT(插入)

                  INSERT INTO 表名称 (列1,列2,列3,)VALUES (值1,值2,值3,);--向某个表的某些字段插入数据,注意列名称要与值一一对应
                  INSERT INTO 表名称 VALUES (值1,值2,值3,);--向某个表的所有字段插入数据,同样名称要与值一一对应
                  复制
                  • UPDATE(更新)

                    UPDATE 表名称 SET 列名称=新值;--更新某个表的某列的值,实际生产使用中常与WHERE子句同用,筛选一条或多条数据进行修改
                    update 表名称 set 列名称=REPLACE(列名称,'原字符','新字符');--更新某个表中某个字段的部分字符
                    复制
                    • DELETE(删除)

                      delete from 表名称;--删除某个表中数据,同样生产使用中常与WHERE子句同用,筛选一条或多条数据进行删除
                      复制


                      • DCL:GRANT或REVOKE

                      • GRANT(授予)

                        GRANT <权限> ON 表名[(列名)] TO <数据库用户>;
                        GRANT <权限> ON <数据对象> FROM <数据库用户>;--授权
                        复制

                        • REVOKE(回收)

                          REVOKE <权限> ON <数据对象>  FROM <数据库用户名>;--收回权限
                          复制


                          • DQL:WHERE,ORDER BY,GROUP BY和HAVING

                          • WHERE(在某种情况下)

                          WHERE子句常与“增删改查”语句搭配作筛选数据用,通过运算符对比某个字段以此作为条件筛选部分数据进行其他操作;可以理解为条件语句,满足条件的执行“增删改查”操作,不满足条件的不进行“增删改查”操作。

                          常见运算符:

                          运算符
                          描述
                          =
                          等于
                          <>
                          不等于
                          >
                          大于
                          <
                          小于
                          >=
                          大于等于
                          <=
                          小于等于
                          like
                          相似于(模糊查询)
                          between
                          某个范围内
                          • ORDER BY(排序)

                            ORDER BY 关键字用于对结果集进行排序,ORDER BY DESCD倒序排列

                            SELECT * FROM 表名称 ORDER BY 列名称;--查询表按某列进行排列
                            SELECT * FROM 表名称 ORDER BY 列名称 DESC;--查询表按某列进行倒序排列
                            复制
                            • GROUP BY(分组)

                              GROUP BY 语句用于结合聚合函数,根据一个或多个列对结果集进行分组

                              SELECT 列名称 FROM 表名称 GROUP BY 列名称;--查询某列所有不同值显示
                              复制
                              • HAVING


                              在 SQL 中增加 HAVING 子句原因是,WHERE 关键字无法与聚合函数一起使用。

                              HAVING 子句可以让我们筛选分组后的各组数据。


                              推荐书籍:《SQL基础教程》,想要深入学习的朋友有机会可以看看



                              文章转载自小星工作室,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                              评论