zoukankan      html  css  js  c++  java
  • SQL梳理

      1 1.简介
      2 
      3 2.DDL & DML
      4 
      5 3.SELECT
      6 
      7   ①DISTINCT
      8 
      9   ②WHERE
     10 
     11   ③AND & OR
     12 
     13   ④ORDER BY
     14 
     15 4.INSERT
     16 
     17 5.UPDATE
     18 
     19 6.DELETE
     20 
     21 1.简介
     22 
     23 什么是 SQL?
     24 
     25 SQL 指结构化查询语言
     26 SQL 使我们有能力访问数据库
     27 SQL 是一种 ANSI 的标准计算机语言
     28 SQL 能做什么?
     29 
     30 SQL 面向数据库执行查询
     31 SQL 可从数据库取回数据
     32 SQL 可在数据库中插入新的纪录
     33 SQL 可更新数据库中的数据
     34 SQL 可从数据库删除记录
     35 SQL 可创建新数据库
     36 SQL 可在数据库中创建新表
     37 SQL 可在数据库中创建存储过程
     38 SQL 可在数据库中创建视图
     39 SQL 可以设置表、存储过程和视图的权限
     40 RDBMS
     41 
     42   RDBMS 指的是关系型数据库管理系统。
     43 
     44   RDBMS 是 SQL 的基础,同样也是所有现代数据库系统的基础,比如 MS SQL Server, IBM DB2, Oracle, MySQL 以及 Microsoft Access。
     45 
     46   RDBMS 中的数据存储在被称为表(tables)的数据库对象中。
     47 
     48   表是相关的数据项的集合,它由列和行组成。
     49 
     50 2.DDL & DML
     51 
     52 可以把 SQL 分为两个部分:数据操作语言 (DML) 和 数据定义语言 (DDL)。
     53 
     54 SQL (结构化查询语言)是用于执行查询的语法。但是 SQL 语言也包含用于更新、插入和删除记录的语法。
     55 
     56 查询和更新指令构成了 SQL 的 DML 部分:
     57 
     58 SELECT - 从数据库表中获取数据
     59 UPDATE - 更新数据库表中的数据
     60 DELETE - 从数据库表中删除数据
     61 INSERT INTO - 向数据库表中插入数据
     62 SQL 的数据定义语言 (DDL) 部分使我们有能力创建或删除表格。我们也可以定义索引(键),规定表之间的链接,以及施加表间的约束。
     63 
     64 SQL 中最重要的 DDL 语句:
     65 
     66 CREATE DATABASE - 创建新数据库
     67 ALTER DATABASE - 修改数据库
     68 CREATE TABLE - 创建新表
     69 ALTER TABLE - 变更(改变)数据库表
     70 DROP TABLE - 删除表
     71 CREATE INDEX - 创建索引(搜索键)
     72 DROP INDEX - 删除索引
     73 3.SELECT
     74 
     75 语法: A ⇒ SELECT 列名称 FROM 表名称  
     76 
     77          B ⇒  SELECT * FROM 表名称
     78 
     79 Id    LastName    FirstName    Address    City
     80 1    Adams    John    Oxford Street    London
     81 2    Bush    George    Fifth Avenue    New York
     82 3    Carter    Thomas    Changan Street    Beijing
     83  
     84 
     85 A例:SELECT LastName,FirstName FROM Persons
     86 
     87  88 
     89 LastName    FirstName
     90 Adams    John
     91 Bush    George
     92 Carter    Thomas
     93  
     94 
     95 B例:SELECT * FROM Persons
     96 
     97  98 
     99 Id    LastName    FirstName    Address    City
    100 1    Adams    John    Oxford Street    London
    101 2    Bush    George    Fifth Avenue    New York
    102 3    Carter    Thomas    Changan Street    Beijing
    103  
    104 
    105DISTINCT
    106 
    107 语法:  SELECT DISTINCT 列名称 FROM 表名称
    108 
    109 例:
    110 
    111 Company    OrderNumber
    112 IBM    3532
    113 W3CSchool    2356
    114 Apple    4698
    115 W3CSchool    6953
    116 117 
    118 SELECT Company FROM Orders 
    119 
    120 121 
    122 Company
    123 IBM
    124 W3CSchool
    125 Apple
    126 W3CSchool
    127WHERE
    128 
    129 語法: SELECT 列名称 FROM 表名称 WHERE 列 运算符 值
    130 
    131 操作符    描述
    132 =    等于
    133 <>    不等于
    134 >    大于
    135 <    小于
    136 >=    大于等于
    137 <=    小于等于
    138 BETWEEN    在某个范围内
    139 LIKE    搜索某种模式
    140 例:
    141 
    142 LastName    FirstName    Address    City    Year
    143 Adams    John    Oxford Street    London    1970
    144 Bush    George    Fifth Avenue    New York    1975
    145 Carter    Thomas    Changan Street    Beijing    1980
    146 Gates    Bill    Xuanwumen 10    Beijing    1985
    147 148 
    149 SELECT * FROM Persons WHERE City='Beijing'
    150 
    151 152 
    153 LastName    FirstName    Address    City    Year
    154 Carter    Thomas    Changan Street    Beijing    1980
    155 Gates    Bill    Xuanwumen 10    Beijing    1985
    156AND & OR
    157 
    158 ANDOR 运算符用于基于一个以上的条件对记录进行过滤。
    159 
    160 ANDOR 可在 WHERE 子语句中把两个或多个条件结合起来。
    161 
    162 如果第一个条件和第二个条件都成立,则 AND 运算符显示一条记录。
    163 
    164 如果第一个条件和第二个条件中只要有一个成立,则 OR 运算符显示一条记录。
    165 
    166  
    167 
    168 LastName    FirstName    Address    City
    169 Adams    John    Oxford Street    London
    170 Bush    George    Fifth Avenue    New York
    171 Carter    Thomas    Changan Street    Beijing
    172 Carter    William    Xuanwumen 10    Beijing
    173 174 
    175 AND 运算符实例: SELECT * FROM Persons WHERE FirstName='Thomas' AND LastName='Carter'
    176 
    177 178 
    179 LastName    FirstName    Address    City
    180 Carter    Thomas    Changan Street    Beijing
    181  
    182 
    183 OR 运算符实例: SELECT * FROM Persons WHERE firstname='Thomas' OR lastname='Carter'
    184 
    185 186 
    187 LastName    FirstName    Address    City
    188 Carter    Thomas    Changan Street    Beijing
    189 Carter    William    Xuanwumen 10    Beijing
    190 结合 ANDOR 运算符: SELECT * FROM Persons WHERE (FirstName='Thomas' OR FirstName='William') AND LastName='Carter'
    191 
    192 193 
    194 LastName    FirstName    Address    City
    195 Carter    Thomas    Changan Street    Beijing
    196 Carter    William    Xuanwumen 10    Beijing
    197  
    198 
    199ORDER BY
    200 
    201 ORDER BY 语句用于对结果集进行排序。
    202 
    203 ORDER BY 语句用于根据指定的列对结果集进行排序。
    204 
    205 ORDER BY 语句默认按照升序对记录进行排序。
    206 
    207 如果您希望按照降序对记录进行排序,可以使用 DESC 关键字。
    208 
    209 Company    OrderNumber
    210 IBM    3532
    211 W3CSchool    2356
    212 Apple    4698
    213 W3CSchool    6953
    214 215 
    216 SELECT Company, OrderNumber FROM Orders ORDER BY Company
    217 
    218 219 
    220 Company    OrderNumber
    221 Apple    4698
    222 IBM    3532
    223 W3CSchool    6953
    224 W3CSchool    2356
    225  
    226 
    227 SELECT Company, OrderNumber FROM Orders ORDER BY Company DESC
    228 
    229 230 
    231 Company    OrderNumber
    232 W3CSchool    6953
    233 W3CSchool    2356
    234 IBM    3532
    235 Apple    4698
    236  
    237 
    238 SELECT Company, OrderNumber FROM Orders ORDER BY Company DESC, OrderNumber ASC
    239 
    240 241 
    242 Company    OrderNumber
    243 W3CSchool    2356
    244 W3CSchool    6953
    245 IBM    3532
    246 Apple    4698
    247 4.INSERT
    248 
    249 语法: INSERT INTO 表名称 VALUES (值1, 值2,....)
    250 
    251      INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....)
    252 
    253 LastName    FirstName    Address    City
    254 Carter    Thomas    Changan Street    Beijing
    255 256 
    257 INSERT INTO Persons VALUES ('Gates', 'Bill', 'Xuanwumen 10', 'Beijing')
    258 
    259 260 
    261 LastName    FirstName    Address    City
    262 Carter    Thomas    Changan Street    Beijing
    263 Gates    Bill    Xuanwumen 10    Beijing
    264  
    265 
    266 LastName    FirstName    Address    City
    267 Carter    Thomas    Changan Street    Beijing
    268 Gates    Bill    Xuanwumen 10    Beijing
    269  ↓
    270 
    271 INSERT INTO Persons (LastName, Address) VALUES ('Wilson', 'Champs-Elysees')
    272 
    273 274 
    275 LastName    FirstName    Address    City
    276 Carter    Thomas    Changan Street    Beijing
    277 Gates    Bill    Xuanwumen 10    Beijing
    278 Wilson         Champs-Elysees     
    279  
    280 
    281 5.UPDATE
    282 
    283 語法: UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值
    284 
    285 LastName    FirstName    Address    City
    286 Gates    Bill    Xuanwumen 10    Beijing
    287 Wilson         Champs-Elysees     
    288 289 
    290 UPDATE Person SET FirstName = 'Fred' WHERE LastName = 'Wilson'
    291 
    292 293 
    294 LastName    FirstName    Address    City
    295 Gates    Bill    Xuanwumen 10    Beijing
    296 Wilson    Fred    Champs-Elysees     
    297  
    298 
    299 UPDATE Person SET Address = 'Zhongshan 23', City = 'Nanjing' WHERE LastName = 'Wilson'
    300 
    301 302 
    303 LastName    FirstName    Address    City
    304 Gates    Bill    Xuanwumen 10    Beijing
    305 Wilson    Fred    Zhongshan 23    Nanjing
    306  
    307 
    308 6.DELETE
    309 
    310 語法: DELETE FROM 表名称 WHERE 列名称 =311 
    312 LastName    FirstName    Address    City
    313 Gates    Bill    Xuanwumen 10    Beijing
    314 Wilson    Fred    Zhongshan 23    Nanjing
    315 316 
    317 DELETE FROM Person WHERE LastName = 'Wilson'
    318 
    319 320 
    321 LastName    FirstName    Address    City
    322 Gates    Bill    Xuanwumen 10    Beijing
    323  
    324 
    325 删除所有行: DELETE FROM table_name
    326 
    327           DELETE * FROM table_name
    View Code
  • 相关阅读:
    pip升级报错AttributeError: 'NoneType' object has no attribute 'bytes'
    在Windows中安装MySQL
    nginx配置成功,浏览器无法访问
    mysql 安装完以后没有mysql服务
    对字符串的切片操作
    linux下anaconda的安装和使用
    python学习笔记
    python学习笔记2018-9-18
    python学习笔记2018-9-17
    电脑必须用U盘引导盘才能进系统解决办法
  • 原文地址:https://www.cnblogs.com/chuizhuizhigan/p/3302593.html
Copyright © 2011-2022 走看看