SQL速查

/*2014.11.02

*根据几份手上文档整理而来,只作为初稿,难以详尽,会尽快扩充。

*任何建议请在评论区尽情提出,或者如发现有误请及时指出,感激万分。

*/

SQL简介

SQL全称Structured Query Language(结构化查询语言)。

SQL是一门ANSI的标准计算机语言。

SQL可用来访问和操作Oracle,Sybase,Microsoft SQL Server,DB2,Access,MySQL,PostgreSQL以及其他数据库系统中的数据。

SQL可以对数据库进行添加、删除、更新、查询操作。

SQL简单易学。

SQL基本语法表

语法结构 说明
  数据库操作
CREATE DATABASE database_name 创建一个数据库
DROP DATABASE database_name 删除某个数据库
   数据表操作

CREATE TABLE "table_name"

("column_1" "data_type_for_column_1",

"column_2" "data_type_for_column_2",

…)

在数据库中创建一个表
ALTER TABLE table_name ADD column_name datatype 在已存在的表中新加一列
ALTER TABLE table_name DROP column_name datatype 在已存在的表中删除某一列
DROP TABLE table_name 删除某个表
  索引操作

CREATE INDEX index_name ON table_name

(column_name_1,column_name_2,…)

在表上创建一个简单索引

CREATE UNIQUE INDEX index_name ON table_name

(column_name_1,column_name_2,…)

在表上创建一个唯一索引
DROP INDEX table_name.index_name 删除索引
  数据操作

INSERT INTO table_name

VALUES(value_1,value_2,…)


在表中新增一行数据


INSERT INTO table_name(column_1,column_2,…)

VALUES(value_1,value_2,…)

在表中新增一行数据

UPDATE table_name

SET column_name_1=new_value_1,

   column_name_2=new_value_2

WHERE column_name=some_value

更新一列或者多列的数据

DELETE FROM table_name

WEHRE column_name=some_value


在表中删除某一行或某些行

(DML语言,可以有选择删除)

TRUNCATE TABLE table_name
删除该表中所有数据

(DDL语言,默认表中所有数据都删除)

  SELECT
SELECT column_name(s) FROM table_name 查询表中(一列或多列的)数据
SELECT * FROM table_name 查询表中的所有数据

SELECT DISTINCT column_name(s)

FROM table_name

查询表中不重复的数据

SELECT column_name(s) FROM table_name

WEHRE column operator value

     AND column operator value

     OR column operator value

     AND(…OR…)

     …


根据条件查询表中的数据

(operator表示等于=,不等于<>,

大于>,小于<,不小于>=,不大于<=,

范围BETWEEN,近似LIKE等操作符)

(操作符及用法会单独用表列出)


SELECT column_name(s) FROM table_name

WHERE column_name IN (value1,value2,…)


查询某个字段值为IN后括号内任何一个值的数据

(column_name IN (value1,value2,…)

等价于column_name=value1

 OR  column_name=value2

…)


SELECT column_name(s) FROM table_name

ORDER BY row_1,row_2 DESC,row_2 ASC,…


将对某个表的查询结果排序

(ASC,Ascend,按照字母和数字正序排列(默认,可不写),

DESC,Descend,按照字母和数字倒序排列)


SELECT column_1,…,SUM(group_column_name)

FROM table_name

GROUP BY group_column_name


GROUP BY可根据一个或多个列对结果集进行分组


SELECT column_1,…,SUM(group_column_name)

FROM table_name

GROUP BY group_column_name

HAVING SUM(group_column_name) condition value


与WHERE语句的用法相同。

因为WHERE 关键字无法与合计函数一起使用,因此在SQL中

添加了HAVING子句

condition表示等于=,不等于<>,大于>,小于<等操作符

Alias别名

SELECT column_name AS column_alias

FROM table_name

列名别名

SELECT table_alias.column_name

FROM table_name

AS table_alias

表名别名
  Join

SELECT column_1_name,column_2_name,…

FROM first_table_name

INNER JOIN second_table_name

ON first_table_name.keyfield

    =second_table_name.foreign_keyfield


在第一个表和第二个表中

存在至少一个匹配时,INNER JOIN 关键字返回匹配的行


SELECT column_1_name,column_2_name,…

FROM first_table_name

LEFT JOIN second_table_name

ON first_table_name.keyfield

    =second.table_name.foreign_keyfield


LEFT JOIN 关键字会从第一个表 (first_table_name)

那里返回所有的行

即使在第二个表 (second_table_name) 中没有匹配的行


SELECT column_1_name,column_2_name,…

FROM first_table_name

RIGHT JOIN second_table_name

ON first_table_name.keyfield

    =second.table_name.foreign_keyfield

RIGHT JOIN 关键字会从第二个表 (second_table_name))

那里返回所有的行

即使在第一个表 (first_table_name) 中没有匹配的行

(与LEFT JOIN相反)

  UNION

SELECT column_name(s) FROM table_name_1

UNION

SELECT column_name(s) FROM table_name_2


UNION用于合并两个或多个 SELECT 语句的结果集

这些SELECT语句列数必须相同,每列的数据类型也必须相同

默认选取不重复的值


SELECT column_name(s) FROM table_name_1

UNION ALL

SELECT column_name(s) FROM table_name_2

同上,选取不重复的值
  SELECT INTO/IN

SELECT column_name(s)

INTO new_table_name

FROM source_table_name

WHERE query


从一个表中选取数据,然后把数据插入另一个表中

(常用于创建表的备份复件或者用于对记录进行存档)


SELECT column_name(s)

IN external_database_name

FROM source_table_name

WHERE query

 从一个表中选取数据,然后把数据插入另一个数据库的表中
  CREATE VIEW(创建视图)

CREATE VIEW view_name AS

SELECT column_name(s)

FROM table_name

WHERE condition

根据查询的结果来创建一个数据视图

数据类型

数据类型 数据类型描述

INTEGER(SIZE)

INT(SIZE)

SMALLINT(SIZE)

TINYINT(SIZE)

存放整型数据,其最大值在括号内标出

DECIMAL(SIZE,D)

NUMERIC(SIZE,D)

存放带有小数的数据,SIZE表示其最大值,D表示小数位数
CHAR(SIZE) 存放固定长度为SIZE的字符串,可包括字母,数字和特殊字符等
VARCHAR(SIZE) 存放最大长度为SIZE的可变长度的字符串,可包括字母、数字和特殊字符等
DATE(yyyymmdd) 存放日期类型的数据

操作符

操作符 操作符描述
= 相等
<> 不相等
> 大于
< 小于
>= 大于或等于
<= 小于或等于
BETWEEN 在一个范围之间
LIKE
用于在 WHERE 子句中搜索列中的指定模式

通配符:

“%”可用来替代一个或多个字符

“_”仅替代一个字符

“[…]”替代字符列中的单一字符

“[^…]”或“[!…]”替代不在字符列中的任何单一字符

一些合计函数

函数 函数描述
AVG(column) 返回该字段的平均值
COUNT(column) 返回某列不为NULL值的总数量
MAX(column) 返回某列的最大值
MIN(column) 返回某列的最小值
SUM(column) 返回某列的所有值的和
时间: 2024-09-30 07:44:00

SQL速查的相关文章

几个较好的SQL速查手册网址

微软 SQL server 数据库开发手册 数据库设计 Transact-SQL 速查手册 数据库设计 MySQL 中文参考手册速查 结构化查询语言 SQL 学习手册速查 转自:http://www.cnblogs.com/yencain/articles/1313465.html

SQL 速查表

非原创,转自Github:enochtangg/quick-SQL-cheatsheet SQL 语句用法的速查表. 内容 查找数据的查询 修改数据的查询 聚合查询 连接查询 视图查询 修改表的查询 1. 查找数据的查询 SELECT: 用于从数据库中选择数据 SELECT * FROM table_name; DISTINCT: 用于过滤掉重复的值并返回指定列的行 SELECT DISTINCT column_name; WHERE: 用于过滤记录/行 SELECT column1, colu

50个数据科学和机器学习速查表【转】

在数据科学领域有成千上万的包和数以百计的函数公式,你虽然不需要掌握所有的这些知识,但是有一个速查表在你的学习中是非常重要的.学习大数据包括对统计学.数学.编程知识(尤其是R.python.SQL)等知识的理解,还需要理解业务来驱动决策.这些表单也许能给你一些帮助. Python的速查表 Python在初学者中非常受欢迎,同样足以支持那些最受欢迎的产品和应用程序,它的设计让你在编程的时候感觉同用英语写作一样自然,Python basics 或者Python Debugger的速查表覆盖了重要的语法

java-Mysql-SQLServer数据类型匹配速查表

java-Mysql-SQLServer数据类型匹配速查表 Mysql ************************************ 当前列 ClassName ColumnType DisplaySize TypeName 0: java.lang.Integer ColumnType:4 11 INTEGER 1: java.lang.Integer ColumnType:-6 4 TINYINT 2: java.lang.String ColumnType:12 0 UNKNO

程序员/设计师能用上的 75 份速查表

75 份速查表,由 vikas 收集整理,包括:jQuery.HTML.HTML5.CSS.CSS3.JavaScript.Photoshop .Git.Linux.Java.Perl.PHP.Python.Ruby.Ruby on Rails.Scala.C#.SQLite.C++.C语言.Ubuntu.WordPress.Node.JS.Oracle.NMAP.Mac OS X.Haskell.Unicode.PostgreSQL.Lisp.Matlab 等. 速查表可能是图片,也可能是 P

程序员/设计师能用上的 75 份速查表(转)

75 份速查表,由 vikas 收集整理,包括:jQuery.HTML.HTML5.CSS.CSS3.JavaScript.Photoshop .git.Linux.Java.Perl.PHP.Python.Ruby.Ruby on Rails.Scala.C#.SQLite.C++.C语言.Ubuntu.WordPress.Node.js.Oracle.NMAP.Mac OS X.Haskell.Unicode.PostgreSQL.Lisp.Matlab 等. 速查表可能是图片,也可能是 P

sqlmap 命令详解(自备速查)

sqlmap速查 /pentest/database/sqlmap/txt/ common-columns.txt 字段字典 common-outputs.txt common-tables.txt 表字典 keywords.txt oracle-default-passwords.txt user-agents.txt wordlist.txt 常用语句: 1.使用POST方法提交 sqlmap.py -u "http://192.168.1.1/sqlmap/oracle/post_int.

测试启发法速查表

本文是测试大师Elisabeth Hendrickson的测试启发法速查表. 一.通用启发法 这些启发法绝对适用于任何种类的接口和任何种类的系统. 抽象 剔除模型中的细节.忽略低层级的细枝末节,以此进行简化,让模型可以更少地关注具体细节,而更多地聚焦与概念层面. 例如,对于交互图来说,无需详尽地描述一组通信,你也可以只画一条线,再取个名字来描述这些通信的核心交互即可.如果是在测试邮件客户端,那么在发送邮件时客户端可能要经历如下步骤:连接到服务器.鉴权.传输数据.与其在模型中记录所有步骤,你可以直

R之data.table速查手册

R语言data.table速查手册 介绍 R中的data.table包提供了一个data.frame的高级版本,让你的程序做数据整型的运算速度大大的增加.data.table已经在金融,基因工程学等领域大放光彩.他尤其适合那些需要处理大型数据集(比如 1GB 到100GB)需要在内存中处理数据的人.不过这个包的一些符号并不是很容易掌握,因为这些操作方式在R中比较少见.这也是这篇文章的目的,为了给大家提供一个速查的手册. data.table的通用格式: DT[i, j, by],对于数据集DT,