马哥学习笔记十五——MySQL进阶之SQL语句
2014-05-15 11:02
871 查看
数据库:
create database|schema [if not exists] db_name [character set =] [collate =];
alter database
drop {database | schema} [if exists] db_name;
表:
1、直接定义一张空表;
2、从其它表中查询出数据,并以之创建新表;
3、以其它表为模板创建一个空表;
CREATE TABLE [IF NOT EXISTS] tb_name (col_name col_defination, constraint )
CREATE TABLE tb1 (id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, Name CHAR(20) NOT NULL, Age TINYINT NOT NULL) ENGINE [=] engine_name;
CREATE TABLE tb2 (id INT UNSIGNED NOT NULL AUTO_INCREMENT, Name CHAR(20) NOT NULL, Age TINYINT NOT NULL, PRIMARY KEY(id),UNIQUE KEY(name),INDEX(age));
单字段: PRIMARY KEY UNIQUE KEY
单或多字段: PRAMARY KEY (col,...) UNIQUE KEY (col,...) INDEX (col,...)
键也称作约束,可用作索引,属于特殊索引(有特殊限定):B+Tree
SHOW INDEXES FROM tb_name:显示指定表上的索引
索引创建:
CREATE INDEX index_name ON tb_name (col,...);
col_name [(length)] [ASC | DESC]
查询语句类型:
简单查询
多表查询
子查询
SELECT field1,field2 FROM tb_name; 投影
SELECT [DISTINCT] * FROM tb_name WHERE qualification; 选择
distinct:相同的值只显示一次
FROM子句: 要查询的关系 表、多个表、其它SELECT语句
WHERE子句:
布尔关系表达式 =、>、>=、<=、<
逻辑关系: AND OR NOT
BETWEEN ... AND ...
LIKE ‘’
%: 任意长度任意字符
_:任意单个字符
REGEXP, RLIKE:支持正则表达式
IN:离散取值
IS NULL
IS NOT NULL
ORDER BY field_name {ASC|DESC}:将查询后的数据进行排序
字段别名:AS
LIMIT子句:LIMIT [offset,]Count
聚合函数:SUM(), MIN(), MAX(), AVG(), COUNT()
GROUP BY: 分组
HAVING qualification:对分组过滤
多表查询:
连接:
交叉连接:笛卡尔乘积
自然连接:
外连接:
左外连接:... LEFT JOIN ... ON ...
右外连接: ... RIGHT JOIN ... ON ...
自连接:
子查询:
比较操作中使用子查询:
子查询只能返回单个值;
IN(): 使用子查询;
在FROM中使用子查询;
联合查询: UNION
视图: 存储下来的SELECT语句;
基于基表的查询结果;
VIEW
CREATE VIEW
物化视图:SELECT
SHOW CREATE:显示创建过程
mysql -e 'SQL语句':在shell命令函中执行SQL语句
广义查询:
DML:
DELETE
INSERT INTO
UPDATE
INSERT INTO tb_name (col1, col2, ...) VALUES (val1, val2, ...)[,(val1, val2, ...),...]
字符型:单引号
数值型:不需要引号
日期时间型:
空值:NULL, ''
REPLACE INTO
DELETE: DELETE FROM tb_name WHERE condition;
TRUNCATE tb_name: 清空表,并重置AUTOINCREMENT计数器;
UPDATE tb_name SET col1=..., col2=... WHERE
create database|schema [if not exists] db_name [character set =] [collate =];
alter database
drop {database | schema} [if exists] db_name;
表:
1、直接定义一张空表;
2、从其它表中查询出数据,并以之创建新表;
3、以其它表为模板创建一个空表;
CREATE TABLE [IF NOT EXISTS] tb_name (col_name col_defination, constraint )
CREATE TABLE tb1 (id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, Name CHAR(20) NOT NULL, Age TINYINT NOT NULL) ENGINE [=] engine_name;
CREATE TABLE tb2 (id INT UNSIGNED NOT NULL AUTO_INCREMENT, Name CHAR(20) NOT NULL, Age TINYINT NOT NULL, PRIMARY KEY(id),UNIQUE KEY(name),INDEX(age));
单字段: PRIMARY KEY UNIQUE KEY
单或多字段: PRAMARY KEY (col,...) UNIQUE KEY (col,...) INDEX (col,...)
键也称作约束,可用作索引,属于特殊索引(有特殊限定):B+Tree
SHOW INDEXES FROM tb_name:显示指定表上的索引
索引创建:
CREATE INDEX index_name ON tb_name (col,...);
col_name [(length)] [ASC | DESC]
查询语句类型:
简单查询
多表查询
子查询
SELECT field1,field2 FROM tb_name; 投影
SELECT [DISTINCT] * FROM tb_name WHERE qualification; 选择
distinct:相同的值只显示一次
FROM子句: 要查询的关系 表、多个表、其它SELECT语句
WHERE子句:
布尔关系表达式 =、>、>=、<=、<
逻辑关系: AND OR NOT
BETWEEN ... AND ...
LIKE ‘’
%: 任意长度任意字符
_:任意单个字符
REGEXP, RLIKE:支持正则表达式
IN:离散取值
IS NULL
IS NOT NULL
ORDER BY field_name {ASC|DESC}:将查询后的数据进行排序
字段别名:AS
LIMIT子句:LIMIT [offset,]Count
聚合函数:SUM(), MIN(), MAX(), AVG(), COUNT()
GROUP BY: 分组
HAVING qualification:对分组过滤
多表查询:
连接:
交叉连接:笛卡尔乘积
自然连接:
外连接:
左外连接:... LEFT JOIN ... ON ...
右外连接: ... RIGHT JOIN ... ON ...
自连接:
子查询:
比较操作中使用子查询:
子查询只能返回单个值;
IN(): 使用子查询;
在FROM中使用子查询;
联合查询: UNION
视图: 存储下来的SELECT语句;
基于基表的查询结果;
VIEW
CREATE VIEW
物化视图:SELECT
SHOW CREATE:显示创建过程
mysql -e 'SQL语句':在shell命令函中执行SQL语句
广义查询:
DML:
DELETE
INSERT INTO
UPDATE
INSERT INTO tb_name (col1, col2, ...) VALUES (val1, val2, ...)[,(val1, val2, ...),...]
字符型:单引号
数值型:不需要引号
日期时间型:
空值:NULL, ''
REPLACE INTO
DELETE: DELETE FROM tb_name WHERE condition;
TRUNCATE tb_name: 清空表,并重置AUTOINCREMENT计数器;
UPDATE tb_name SET col1=..., col2=... WHERE
相关文章推荐
- 马哥学习笔记十四——MySQL进阶之数据类型和sql模型
- MYSQL学习笔记——sql语句优化之索引
- MySql 学习笔记一:SQL语句优化
- MYSQL学习笔记——sql语句优化工具
- 关于mysql的sql语句的汇总(学习笔记)03(mysql高级应用)
- mysql性能优化学习笔记(3)常见sql语句优化
- MySQL学习笔记---基础概念和一些基础SQL语句(一)
- MySql学习笔记—数据库简介及SQL语句的分类
- MySQL学习笔记(一):基础常用SQL语句
- MySql学习笔记(4)--SQL(DML)语句语法
- 马哥学习笔记十三——MySQL进阶一
- MySQL学习笔记---基础概念和一些基础SQL语句(一)
- MySQL学习笔记---基础概念和一些基础SQL语句(二)
- 马哥学习笔记十九——MySQL进阶之备份和还原
- MySQL学习笔记(5)--基本的SQL语句
- mysql一些学习笔记(SQL语句优化)
- [学习笔记]MySql之SQL语句优化
- MySql学习笔记(三)SQL简单入门语句--Fenby摘抄笔记
- 3.笔记 MySQL学习——简单执行SQL语句
- 【MySQL学习笔记】2、SQL语句