设为首页 加入收藏

TOP

SQL(一)
2015-11-21 01:42:38 来源: 作者: 【 】 浏览:0
Tags:SQL

终于有时间继续玩阿里的数据挖掘比赛,第二赛季限定工具,不得不先重拾一下数据库。以下笔记总结自网络教程。


SQL简介

SQL指结构化查询语言 SQL是一种ANSI的标准计算机语言,存在不同的版本,但不同版本都支持一些共同的关键词。

SQL 语法

一个数据库通常包含一个或多个表。 SQL 对大小写不敏感

某些数据库系统要求在每条 SQL 命令的末端使用分号

SQL DML 和 DDL

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

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

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

SQL 中最重要的 DDL 语句:

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

SELECT 语句

    SELECT column_name1,column_name2 FROM table_name
    SELECT * FROM table_name

SELECT DISTINCT 语句

关键词 DISTINCT 用于返回唯一不同的值。

SELECT DISTINCT column_name FROM table_name

WHERE 子句

如需有条件地从表中选取数据,可将 WHERE 子句添加到 SELECT 语句。

SELECT 列名称 FROM 表名称 WHERE 列 运算符 值

AND & OR 运算符

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

SELECT * FROM table_name WHERE column_name1='XXX' AND column_name2='XXX'

SELECT * FROM table_name WHERE (column_name1='XXX' OR column_name2='XXX') AND column_name3='XXX'

ORDER BY 子句

ORDER BY 语句用于根据指定的列对结果集进行排序,默认按照升序对记录进行排序,如果希望按照降序对记录进行排序,可以使用 DESC 关键字。

SELECT column_name1, column_name2 FROM table_name ORDER BY column_name1 [DESC]

INSERT INTO 语句

INSERT INTO 语句用于向表格中插入新的行

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

也可以只在指定列插入数据,没插入数据的列留空:

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

UPDATE 语句

Update 语句用于修改表中的数据。

UPDATE 表名称 SET 列名称1 = 新值1,列名称2 = 新值2 WHERE 列名称 = 某值

DELETE 语句

DELETE 语句用于删除表中的行

DELETE FROM 表名称 WHERE 列名称 = 值

TOP 子句

TOP 子句用于规定要返回的记录的数目。

SQL Server 的语法:

SELECT TOP number|percent column_name(s) FROM table_name

MySQL 语法

SELECT column_name(s) FROM table_name LIMIT number

LIKE 操作符

LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式。

SELECT column_name(s)
FROM table_name
WHERE column_name LIKE pattern

举例:

SELECT * FROM Persons
WHERE City LIKE 'N%' ―― "%" 可用于定义通配符(模式中缺少的字母)

通配符

% 替代一个或多个字符

_ 仅替代一个字符

IN 操作符

IN 操作符允许我们在 WHERE 子句中规定多个值。

SELECT column_name(s)
FROM table_name
WHERE column_name IN (value1,value2,...)

BETWEEN 操作符

在 WHERE 子句中使用,作用是选取介于两个值之间的数据范围。

SELECT column_name(s)
FROM table_name
WHERE column_name
BETWEEN value1 AND value2

JOIN

join 用于根据两个或多个表中的列之间的关系,从这些表中查询数据。

SELECT table1.column1, table1.column2, table2.column
FROM table1 INNER JOIN table2
ON table1.column = table2.column

除了 INNER JOIN(内连接),我们还可以使用其他几种连接。下面列出了可以使用的 JOIN 类型,以及它们之间的差异。

JOIN: 如果表中有至少一个匹配,则返回行(INNER JOIN 与 JOIN 是相同的。)
LEFT JOIN: 即使右表中没有匹配,也从左表返回所有的行
RIGHT JOIN: 即使左表中没有匹配,也从右表返回所有的行
FULL JOIN: 只要其中一个表中存在匹配,就返回行

UNION 和 UNION ALL 操作符

UNION 操作符用于合并两个或多个 SELECT 语句的结果集。
请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。

SELECT column_name(s) FROM table_name1
UNION
SELECT column_name(s) FROM table_name2

默认地,UNION 操作符选取不同的值。如果允许重复的值,请使用 UNION ALL:

SELECT column_name(s) FROM table_name1
UNION ALL
SELECT column_name(s) FROM table_name2

按列拼接两条select语句的结果

SELECT INTO 语句

SELECT INTO 语句从一个表中选取数据,然后把数据插入另一个表中。
SELECT INTO 语句常用于创建表的备份复件或者用于对记录进行存档。

SELECT *
INTO new_table_name [IN externaldatabase] 
FROM old_tablename

或者只把希望的列插入新表:

SELECT column_name(s)
INTO new_table_name [IN externaldatabase] 
FROM old_tablename

CREATE DATABASE 语句

CREATE DATABASE database_name

CREATE TABLE 语句

CREATE TABLE 语句用于创建数据库中的表。

CREATE TABLE 表名称
(
列名称1 数据类型,
列名称2 数据类型,
列名称3 数据类型,
....
)

数据类型(data_type)规定了列可容纳何种数据类型。下面的表格包含了SQL中最常用的数据类型:

integer(size)
int(
首页 上一页 1 2 3 下一页 尾页 1/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇为什么GI的Rebootless Fencing会.. 下一篇sqlserver中的CASE用法

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: