您的位置:首页 > 数据库 > MySQL

MySQL 进阶

2016-01-06 21:11 621 查看
  摘要:继上一篇MySQL入门之后对MySQL的总结。包括了:一些高阶命令、子查询、连接、存储引擎介绍。

一 . 高阶命令

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