MySQL 进阶
2016-01-06 21:11
621 查看
摘要:继上一篇MySQL入门之后对MySQL的总结。包括了:一些高阶命令、子查询、连接、存储引擎介绍。
说明:GROUP BY 语句用于结合合计函数,根据一个或多个列对结果集进行分组。
参考:group by having
ORDER BY
举例:ORDER BY id ASC|DESC;
LIKE
语法:SELECT col_name FROM tab_name WHERE col_name LIKE pattern;
说明:’%zhang%’,通配符%代替一个或多个字符,-仅替代一个字符;
FOREIGN KEY
说明:一个表中的FOREIGN KEY指向另一表中的PRIMARY KEY,实际开发中使用连接代替;
举例:在创建表时添加约束
CREATE TABLE orders(id int,orderno NOT NULL,id_p int,FOREIGN KEY (id_p) REFERENCES persons(id));
CREATE INDEX
说明:用于在表中创建索引
在不读取整个表的前提下,索引使数据库应用程序可以更快速的查询数据
注意:更新一个包含索引的表比没有索引需要更多的时间,因为索引也需要更新。因此,理想的做法是仅仅在常被搜索的列(表)上面创建索引。
语法:
CREATE [UNIQUE] INDEX index_name ON table_name(column_name);
DROP INDEX table_name.index_name;
子查询说是查询,实际是指所有SQL命令的总称,因有SQL叫做结构化查询语言;
子查询指出现在其他SQL语句内的SELECT语句;
外层查询可以是SELECT/INSERT/UPDATE/DELETE;
子查询可包含多个关键字或条件(LIMIT ORDER BY等等,但要注意子查询中出现LIMIT会出现问题);
由比较运算符引发的子查询:
子查询可以返回一个数字,一行数据,多行数据;
多条数据时候可以使用ANY SOME ALL 关键字
也可以由[NOT] IN|EXISTS引发子查询
用于根据两个或多个表中的列之间的关系,从这些表中一块查询数据;
分为内连接、左外连接、右外连接
使用ON关键字设定连接条件
两个表连接的例子:
多个表连接的例子:
MyISAM
InnoDB
Memory
CSV
Archive
一 . 高阶命令
GROUP BY & HAVING说明:GROUP BY 语句用于结合合计函数,根据一个或多个列对结果集进行分组。
参考:group by having
ORDER BY
举例:ORDER BY id ASC|DESC;
LIKE
语法:SELECT col_name FROM tab_name WHERE col_name LIKE pattern;
说明:’%zhang%’,通配符%代替一个或多个字符,-仅替代一个字符;
FOREIGN KEY
说明:一个表中的FOREIGN KEY指向另一表中的PRIMARY KEY,实际开发中使用连接代替;
举例:在创建表时添加约束
CREATE TABLE orders(id int,orderno NOT NULL,id_p int,FOREIGN KEY (id_p) REFERENCES persons(id));
CREATE INDEX
说明:用于在表中创建索引
在不读取整个表的前提下,索引使数据库应用程序可以更快速的查询数据
注意:更新一个包含索引的表比没有索引需要更多的时间,因为索引也需要更新。因此,理想的做法是仅仅在常被搜索的列(表)上面创建索引。
语法:
CREATE [UNIQUE] INDEX index_name ON table_name(column_name);
DROP INDEX table_name.index_name;
二 . 子查询
说明:子查询说是查询,实际是指所有SQL命令的总称,因有SQL叫做结构化查询语言;
子查询指出现在其他SQL语句内的SELECT语句;
外层查询可以是SELECT/INSERT/UPDATE/DELETE;
子查询可包含多个关键字或条件(LIMIT ORDER BY等等,但要注意子查询中出现LIMIT会出现问题);
由比较运算符引发的子查询:
子查询可以返回一个数字,一行数据,多行数据;
多条数据时候可以使用ANY SOME ALL 关键字
也可以由[NOT] IN|EXISTS引发子查询
三 . 连接
说明:用于根据两个或多个表中的列之间的关系,从这些表中一块查询数据;
分为内连接、左外连接、右外连接
使用ON关键字设定连接条件
3.1 内连接
仅显示两表都符合连接条件的记录。两个表连接的例子:
SELECT persons.lastname,orders.orderno FROM >persons INNER JOIN orders ON >persons.id = orders.id;
多个表连接的例子:
SELECT goodsID,cateName,brandName FROM tdb_goods AS g >INNOR JOIN tdb_goods_cates AS c ON g.id = c.id >INNOR JOIN tdb_goods_brand AS b ON g.id = b.id;
3.2 左外连接
显示左表中的全部和右表中符合连接条件的记录3.3 右外连接
显示右表中的全部和左表中符合连接条件的记录四 . MySQL存储引擎
MySQL支持的存储引擎:MyISAM
InnoDB
Memory
CSV
Archive
相关文章推荐
- MySQL中的integer 数据类型
- MySQL存储过程
- mysql中int、bigint、smallint 和 tinyint的区别与长度
- mysql load data 导出、导入 csv
- source命令执行SQL脚本文件
- MySQL创建用户及权限控制
- MySQL管理数据表
- linux下mysql添加用户
- mysql procedure
- mysql触发器
- MySQL 备份和恢复策略
- mac下安装mysql(转载)
- mysql 修改编码 Linux/Mac/Unix/通用(杜绝修改后无法启动的情况!)
- MySQL数据的导出、导入(mysql内部命令:mysqldump、mysql)
- mysql数据行转列
- Linux下修改MySQL编码的方法
- MySQL Server 日志
- MySQL 安全事宜
- MySQL 备份与恢复