再跟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  阅读(1196)  评论(0编辑  收藏  举报