推荐http://www.w3school.com.cn/sql/index.asp,适合快速查找sql基础语法,当然还有其他的html/css这些知识,很方便
学习SQL语法,日常工作使用不是很频繁的话,不一定要求遇到问题立马写出相应的语句。记住简单的增删改查+知道高级SQL可以做什么,需要用到的时候能够去查找就可以,当然,能记住最好,技多不压身。
遇到一个同事对SQL很熟,随手就能写出多表查询语句,羡慕啊,所以决定重温SQL,好歹知道个大概。
简单列举下SQL的日常语句和功能(部分转自w3school)
一.可以把 SQL 分为两个部分:数据操作语言 (DML) 和 数据定义语言 (DDL)。
简单来说,DDL是对数据库表结构的操作,DML是对其中数据的操作,在项目中执行SQL脚本时,通常需要先执行DDL再执行DML,因为一般数据的操作是基于表的操作的。
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 - 删除索引
二.SQL高级语法
1.TOP子句,用于规定要返回的记录的数目
*语法
SELECT column_name(s)
FROM table_name
LIMIT number
*例子
SELECT *
FROM Persons
LIMIT 5
2.SQL LIKE 操作符,用于在 WHERE 子句中搜索列中的指定模式
*语法
SELECT column_name(s)
FROM table_name
WHERE column_name LIKE pattern
*例子
SELECT * FROM Persons
WHERE City LIKE 'N%' *以N开头的城市
3.SQL 通配符,
在搜索数据库中的数据时,SQL 通配符可以替代一个或多个字符。
SQL 通配符必须与 LIKE 运算符一起使用。
4.SQL IN 操作符,允许我们在 WHERE 子句中规定多个值
*语法
SELECT column_name(s)
FROM table_name
WHERE column_name IN (value1,value2,...)
*例子
SELECT * FROM Persons
WHERE LastName IN ('Adams','Carter')
5.SQL BETWEEN 操作符,操作符 BETWEEN ... AND 会选取介于两个值之间的数据范围。这些值可以是数值、文本或者日期
*语法
SELECT column_name(s)
FROM table_name
WHERE column_name
BETWEEN value1 AND value2
*例子
SELECT * FROM Persons
WHERE LastName
BETWEEN 'Adams' AND 'Carter'
注意:如果value1和value2是数值,则不需要单引号
6.SQL Alias(别名),通过使用 SQL,可以为列名称和表名称指定别名(Alias)
*表的SQL Alias语法
SELECT column_name(s)
FROM table_name
AS alias_name
*列的SQL Alias语法
SELECT column_name AS alias_name
FROM table_name
*使用表名称别名
SELECT po.OrderID, p.LastName, p.FirstName
FROM Persons AS p, Product_Orders AS po
WHERE p.LastName='Adams' AND p.FirstName='John'
*使用一个列名别名
SELECT LastName AS Family, FirstName AS Name
FROM Persons
7.SQL join 用于根据两个或多个表中的列之间的关系,从这些表中查询数据
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
INNER JOIN Orders
ON Persons.Id_P = Orders.Id_P
ORDER BY Persons.LastName
除了我们在上面的例子中使用的 INNER JOIN(内连接),我们还可以使用其他几种连接。
下面列出了您可以使用的 JOIN 类型,以及它们之间的差异。
- JOIN: 如果表中有至少一个匹配,则返回行
- LEFT JOIN: 即使右表中没有匹配,也从左表返回所有的行
- RIGHT JOIN: 即使左表中没有匹配,也从右表返回所有的行
- FULL JOIN: 只要其中一个表中存在匹配,就返回行
还有一些其他的一些语法,SQL函数,后面补充