再跟SQL谈一谈--基础篇

1.简介

2.DDL & DML

3.SELECT

  ①DISTINCT

  ②WHERE

  ③AND & OR

  ④ORDER BY

4.INSERT

5.UPDATE

6.DELETE


1.简介

什么是 SQL?

  • SQL 指结构化查询语言
  • SQL 使我们有能力访问数据库
  • SQL 是一种 ANSI 的标准计算机语言

SQL 能做什么?

  • SQL 面向数据库执行查询
  • SQL 可从数据库取回数据
  • SQL 可在数据库中插入新的纪录
  • SQL 可更新数据库中的数据
  • SQL 可从数据库删除记录
  • SQL 可创建新数据库
  • SQL 可在数据库中创建新表
  • SQL 可在数据库中创建存储过程
  • SQL 可在数据库中创建视图
  • SQL 可以设置表、存储过程和视图的权限

RDBMS

  RDBMS 指的是关系型数据库管理系统。

  RDBMS 是 SQL 的基础,同样也是所有现代数据库系统的基础,比如 MS SQL Server, IBM DB2, Oracle, MySQL 以及 Microsoft Access。

  RDBMS 中的数据存储在被称为表(tables)的数据库对象中。

  表是相关的数据项的集合,它由列和行组成。


2.DDL & DML

可以把 SQL 分为两个部分:数据操作语言 (DML) 和 数据定义语言 (DDL)。

SQL (结构化查询语言)是用于执行查询的语法。但是 SQL 语言也包含用于更新、插入和删除记录的语法。

查询和更新指令构成了 SQL 的 DML 部分:

  • SELECT - 从数据库表中获取数据
  • UPDATE - 更新数据库表中的数据
  • DELETE - 从数据库表中删除数据
  • INSERT INTO - 向数据库表中插入数据

SQL 的数据定义语言 (DDL) 部分使我们有能力创建或删除表格。我们也可以定义索引(键),规定表之间的链接,以及施加表间的约束。

SQL 中最重要的 DDL 语句:

  • CREATE DATABASE - 创建新数据库
  • ALTER DATABASE - 修改数据库
  • CREATE TABLE - 创建新表
  • ALTER TABLE - 变更(改变)数据库表
  • DROP TABLE - 删除表
  • CREATE INDEX - 创建索引(搜索键)
  • DROP INDEX - 删除索引

3.SELECT

语法: A ⇒ SELECT 列名称 FROM 表名称  

         B ⇒  SELECT * FROM 表名称

IdLastNameFirstNameAddressCity
1 Adams John Oxford Street London
2 Bush George Fifth Avenue New York
3 Carter Thomas Changan Street Beijing

 

A例:SELECT LastName,FirstName FROM Persons

↓

LastNameFirstName
Adams John
Bush George
Carter Thomas

 

B例:SELECT * FROM Persons

↓

IdLastNameFirstNameAddressCity
1 Adams John Oxford Street London
2 Bush George Fifth Avenue New York
3 Carter Thomas Changan Street Beijing

 

①DISTINCT

语法:  SELECT DISTINCT 列名称 FROM 表名称

例:

CompanyOrderNumber
IBM 3532
W3CSchool 2356
Apple 4698
W3CSchool 6953

↓

SELECT Company FROM Orders 

↓

Company
IBM
W3CSchool
Apple
W3CSchool

②WHERE

語法: SELECT 列名称 FROM 表名称 WHERE 列 运算符 值

操作符描述
= 等于
<> 不等于
> 大于
< 小于
>= 大于等于
<= 小于等于
BETWEEN 在某个范围内
LIKE 搜索某种模式

例:

LastNameFirstNameAddressCityYear
Adams John Oxford Street London 1970
Bush George Fifth Avenue New York 1975
Carter Thomas Changan Street Beijing 1980
Gates Bill Xuanwumen 10 Beijing 1985

↓

SELECT * FROM Persons WHERE City='Beijing'

↓

LastNameFirstNameAddressCityYear
Carter Thomas Changan Street Beijing 1980
Gates Bill Xuanwumen 10 Beijing 1985

③AND & OR

AND 和 OR 运算符用于基于一个以上的条件对记录进行过滤。

AND 和 OR 可在 WHERE 子语句中把两个或多个条件结合起来。

如果第一个条件和第二个条件都成立,则 AND 运算符显示一条记录。

如果第一个条件和第二个条件中只要有一个成立,则 OR 运算符显示一条记录。

 

LastNameFirstNameAddressCity
Adams John Oxford Street London
Bush George Fifth Avenue New York
Carter Thomas Changan Street Beijing
Carter William Xuanwumen 10 Beijing

↓

AND 运算符实例: SELECT * FROM Persons WHERE FirstName='Thomas' AND LastName='Carter'

↓

LastNameFirstNameAddressCity
Carter Thomas Changan Street Beijing

 

OR 运算符实例: SELECT * FROM Persons WHERE firstname='Thomas' OR lastname='Carter'

↓

LastNameFirstNameAddressCity
Carter Thomas Changan Street Beijing
Carter William Xuanwumen 10 Beijing

结合 AND 和 OR 运算符: SELECT * FROM Persons WHERE (FirstName='Thomas' OR FirstName='William') AND LastName='Carter'

↓

LastNameFirstNameAddressCity
Carter Thomas Changan Street Beijing
Carter William Xuanwumen 10 Beijing

 

④ORDER BY

ORDER BY 语句用于对结果集进行排序。

ORDER BY 语句用于根据指定的列对结果集进行排序。

ORDER BY 语句默认按照升序对记录进行排序。

如果您希望按照降序对记录进行排序,可以使用 DESC 关键字。

CompanyOrderNumber
IBM 3532
W3CSchool 2356
Apple 4698
W3CSchool 6953

↓

SELECT Company, OrderNumber FROM Orders ORDER BY Company

↓

CompanyOrderNumber
Apple 4698
IBM 3532
W3CSchool 6953
W3CSchool 2356

 

SELECT Company, OrderNumber FROM Orders ORDER BY Company DESC

↓

CompanyOrderNumber
W3CSchool 6953
W3CSchool 2356
IBM 3532
Apple 4698

 

SELECT Company, OrderNumber FROM Orders ORDER BY Company DESC, OrderNumber ASC

↓

CompanyOrderNumber
W3CSchool 2356
W3CSchool 6953
IBM 3532
Apple 4698

4.INSERT

语法: INSERT INTO 表名称 VALUES (值1, 值2,....)

     INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....)

LastNameFirstNameAddressCity
Carter Thomas Changan Street Beijing

↓

INSERT INTO Persons VALUES ('Gates', 'Bill', 'Xuanwumen 10', 'Beijing')

↓

LastNameFirstNameAddressCity
Carter Thomas Changan Street Beijing
Gates Bill Xuanwumen 10 Beijing

 

LastNameFirstNameAddressCity
Carter Thomas Changan Street Beijing
Gates Bill Xuanwumen 10 Beijing

 ↓

INSERT INTO Persons (LastName, Address) VALUES ('Wilson', 'Champs-Elysees')

↓

LastNameFirstNameAddressCity
Carter Thomas Changan Street Beijing
Gates Bill Xuanwumen 10 Beijing
Wilson   Champs-Elysees  

 


5.UPDATE

語法: UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值

LastNameFirstNameAddressCity
Gates Bill Xuanwumen 10 Beijing
Wilson   Champs-Elysees  

↓

UPDATE Person SET FirstName = 'Fred' WHERE LastName = 'Wilson'

↓

LastNameFirstNameAddressCity
Gates Bill Xuanwumen 10 Beijing
Wilson Fred Champs-Elysees  

 

UPDATE Person SET Address = 'Zhongshan 23', City = 'Nanjing' WHERE LastName = 'Wilson'

↓

LastNameFirstNameAddressCity
Gates Bill Xuanwumen 10 Beijing
Wilson Fred Zhongshan 23 Nanjing

 


6.DELETE

語法: DELETE FROM 表名称 WHERE 列名称 = 值

LastNameFirstNameAddressCity
Gates Bill Xuanwumen 10 Beijing
Wilson Fred Zhongshan 23 Nanjing

↓

DELETE FROM Person WHERE LastName = 'Wilson'

↓

LastNameFirstNameAddressCity
Gates Bill Xuanwumen 10 Beijing

 

删除所有行: DELETE FROM table_name

          DELETE * FROM table_name

posted @ 2013-09-04 15:54  NexArchi  阅读(1240)  评论(0)    收藏  举报