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 105 ①DISTINCT 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 127 ②WHERE 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 156 ③AND & OR 157 158 AND 和 OR 运算符用于基于一个以上的条件对记录进行过滤。 159 160 AND 和 OR 可在 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 结合 AND 和 OR 运算符: 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 199 ④ORDER 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