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

 

posted @ 2013-09-05 09:43  垂坠  阅读(261)  评论(0编辑  收藏  举报