SQL 基础教程
之前一直在看「漫画数据库」,看到后几个章节时发现了几个低级的错误,加上整本书故事情节很重(废话太多),而且知识点不够体系化,于是毫不犹豫地把书扔掉了。
以下的整理是基于 W3school 的 SQL 基础教程。
RDBMS 是什么?
1.关系型数据库管理系统
2.数据存储在表(Table)里,一个 RDBMS 可以有一个或多个表
3.表由行(Row)和列(Column)组成,行是记录(Record),列是字段(Field)
4.常见的 RDBMS:MySQL,SQL Server,Oracle,IBM DB2,Access
SQL 是什么?
1.结构化查询语言
2.SQL 使我们可以和数据库进行交互
SQL 语言
SQL 按照功能可分为 4 种:DDL,DCL,DQL,DML
1.DDL 常用指令
- CREATE
2.DQL 常用指令
- SELECT
3.DML 常用指令
- UPDATE
- DELETE
- INSERT
SQL SELECT 语句
1.用于从数据表中取出数据,取出的结果存储在结果集(Result Set)中
2.语法:
SELECT column_name FROM table_name
SELECT * FROM table_name
3.实例:
SELECT FirstName FROM Person // 从 Person 表中取出 FirstName 列的数据
SELECT * FROM Person // 从 Person 表中取出所有列的数据
SELECT FirstName, LastName FROM Persons // 从 Persons 表中取出 FirstName 和 LastName 列的数据
SQL SELECT DISTINCT 语句
1.关键词 DISTINCT 用于从表中取出不同的唯一值(去重)
2.语法:
SELECT DISTINCT column_name FROM table_name
3.实例:
SELECT DISTINCT Company FROM Orders // 从 Orders 表中取出 Company 列中不同的数据
SQL WHERE 子句
1.WHERE 子句用于限定选择的标准
2.语法:
SELECT column_name FROM table_name WHERE Column Operator Value // 运算符:>,<,=,>=,<=,!=
3.实例:
SELECT * FROM Persons WHERE city = 'Beijing' // 从 Persons 表中取出居住在城市 "Beijing" 中的人(SQL 使用引号来环绕文本值,而数值则不需要)
SQL AND & OR 运算符
1.用在 WHERE 子句中,对基于一个以上的条件对记录进行过滤。AND:所有的条件都满足才显示;OR:满足一个条件就显示
2.实例:
SELECT * FROM Persons WHERE FirstName='Thomas' AND LastName='Carter' // 从 Persons 表中取出所有姓为 "Carter" 「并且」名为 "Thomas" 的人
SELECT * FROM Persons WHERE firstname='Thomas' OR lastname='Carter' // 从 Persons 表中取出所有姓为 "Carter" 「或者」名为 "Thomas" 的人
SQL ORDER BY 子句
1.ORDER BY 用于对查询结果进行排序,默认为升序(ASC),降序需要结合关键词 DESC 使用
2.实例:
SELECT Company, OrderNumber FROM Orders ORDER BY Company // 以字母顺序显示公司名称
SELECT Company, OrderNumber FROM Orders ORDER BY Company, OrderNumber // 以字母顺序显示公司名称(Company),并以数字顺序显示顺序号(OrderNumber)
SELECT Company, OrderNumber FROM Orders ORDER BY Company DESC // 以逆字母顺序显示公司名称
SELECT Company, OrderNumber FROM Orders ORDER BY Company DESC, OrderNumber ASC // 以逆字母顺序显示公司名称,并以数字顺序显示顺序号
SQL INSERT INTO 语句
1.INSERT INTO 语句用于向表中插入数据
2.语法:
INSERT INTO table_name VALUES (value1, value2, ....)
INSERT INTO table_name (column1, column2,...) VALUES (value1, value2,....) // 向指定的列插入数据
3.实例:
INSERT INTO Persons VALUES ('Gates', 'Bill', 'Xuanwumen 10', 'Beijing')
INSERT INTO Persons (LastName, Address) VALUES ('Wilson', 'Champs-Elysees')
SQL UPDATE 语句
1.Update 语句用于修改表中的数据
2.语法:
UPDATE table_name SET column_name = 新值 WHERE Column = 某值
3.实例:
UPDATE Person SET FirstName = 'Fred' WHERE LastName = 'Wilson' // 为 lastname 是 "Wilson" 的人更新 firstname
UPDATE Person SET Address = 'Zhongshan 23', City = 'Nanjing' WHERE LastName = 'Wilson' // 为 lastname 是 "Wilson" 的人更新 Address 和 City
DELETE 语句
1.DELETE 语句用于删除表中的行
2.语法:
DELETE FROM table_name WHERE column_name = value
3.实例:
DELETE FROM Person WHERE LastName = 'Wilson' // 删除 Person 表中 lastname 是 "Wilson" 的这一行
DELETE FROM table_name // 在不删除表的情况下删除所有的行(表的结构、属性和索引依然是完整的)
DELETE * FROM table_name // 在不删除表的情况下删除所有的行(表的结构、属性和索引依然是完整的)