基本语法

// 查询语句,select * from 表名称,表示选取所有列
SELECT 列名称 FROM 表名称

SELECT * from websites

// 关键词 DISTINCT 用于返回唯一不同的值。
SELECT DISTINCT 列名称 FROM 表名称

// 有条件的选取数据
SELECT 列名称 FROM 表名称 WHERE 列 运算符 值

// AND 和 OR 运算符,可以在where子语句中把多个条件连接起来
SELECT * FROM Test WHERE cond1='A' AND cond2='B'
SELECT * FROM Test WHERE cond1='A' OR cond2='B'

// 根据指定的列对结果集进行排序,ORDER BY
SELECT Company, OrderNumber FROM Orders ORDER BY Company
SELECT Company, OrderNumber FROM Orders ORDER BY Company DESC // 降序
SELECT Company, OrderNumber FROM Orders ORDER BY Company ASC // 升序

// INSERT INTO,向表格中插入新的行
INSERT INTO 表名称 VALUES (值1, 值2,....)
INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....) // 指定插入数据的列

// UPDATE,修改表中的数据,更新
UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值

// DELETE,删除表中的行
DELETE FROM 表名称 WHERE 列名称 = 值
DELETE * FROM table_name // 删除所有行

重要指令
SELECT - 从数据库中提取数据
UPDATE - 更新数据库中的数据
DELETE - 从数据库中删除数据
INSERT INTO - 向数据库中插入新数据
CREATE DATABASE - 创建新数据库
ALTER DATABASE - 修改数据库
CREATE TABLE - 创建新表
ALTER TABLE - 变更(改变)数据库表
DROP TABLE - 删除表
CREATE INDEX - 创建索引(搜索键)
DROP INDEX - 删除索引
WHERE 子句用于提取那些满足指定条件的记录。

高级语法

// TOP子句,规定要返回的记录的数目,在mysql中使用limit子句
SELECT column_name(s) FROM table_name LIMIT number

// LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式。
SELECT column_name(s) FROM table_name WHERE column_name LIKE pattern
SELECT * FROM Persons WHERE City LIKE 'N%' // "%" 可用于定义通配符(模式中缺少的字母)。

// SQL通配符
% ----- 替代一个或多个字符
_ ----- 仅替代一个字符
[charlist] ----- 字符列中的任何单一字符
[^charlist] ----- 不在字符列中的任何单一字符

// IN,IN 操作符允许我们在 WHERE 子句中规定多个值。
SELECT column_name(s) FROM table_name WHERE column_name IN (value1,value2,...)

// BETWEEN,操作符 BETWEEN ... AND 会选取介于两个值之间的数据范围。这些值可以是数值、文本或者日期。
SELECT column_name(s) FROM table_name WHERE column_name BETWEEN value1 AND value2

// Alias,可以为列名称和表名称指定别名
SELECT column_name(s) FROM table_name AS alias_name // 表的alias用法
SELECT column_name AS alias_name FROM table_name // 给列定别名

// join,从多个表中获取数据
写法1:SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo FROM Persons, Orders WHERE Persons.Id_P = Orders.Id_P
写法2:SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo FROM Persons INNER JOIN Orders ON Persons.Id_P = Orders.Id_P ORDER BY Persons.LastName

函数

// AVG, AVG 函数返回数值列的平均值(null不计入)。
SELECT AVG(column_name) FROM table_name

// count,COUNT() 函数返回匹配指定条件的行数(null不计入)。
SELECT COUNT(column_name) FROM table_name

// FIRST()函数,FIRST() 函数返回指定的字段中第一个记录的值。
SELECT FIRST(column_name) FROM table_name

// LAST() 函数,LAST() 函数返回指定的字段中最后一个记录的值。
SELECT LAST(column_name) FROM table_name

// MAX() 函数,MAX 函数返回一列中的最大值。NULL 值不包括在计算中。
SELECT MAX(column_name) FROM table_name

// MIN() 函数,MIN 函数返回一列中的最小值。NULL 值不包括在计算中。
SELECT MIN(column_name) FROM table_name

// SUM() 函数,SUM 函数返回数值列的总数(总额)。
SELECT SUM(column_name) FROM table_name

// GROUP BY,合计函数 (比如 SUM) 常常需要添加 GROUP BY 语句。GROUP BY 语句用于结合合计函数,根据一个或多个列对结果集进行分组。
SELECT column_name, aggregate_function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name

// HAVING 子句,在 SQL 中增加 HAVING 子句原因是,WHERE 关键字无法与合计函数一起使用。
SELECT column_name, aggregate_function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name
HAVING aggregate_function(column_name) operator value

// LEN函数,LEN 函数返回文本字段中值的长度。
SELECT LEN(column_name) FROM table_name

SQL简介

what

结构化查询语言
让您可以访问和处理数据库,包括数据插入、查询、更新和删除

服务器RDBMS
RDBMS 指关系型数据库管理系统,全称 Relational Database Management System。
RDBMS 是 SQL 的基础,同样也是所有现代数据库系统的基础,比如 MS SQL Server、IBM DB2、Oracle、MySQL 以及 Microsoft Access。
RDBMS 中的数据存储在被称为表的数据库对象中。
表是相关的数据项的集合,它由列和行组成。

03-05 15:01