欢迎加入QQ讨论群258996829
麦子学院 头像
苹果6袋
6
麦子学院

PHP之MySQL语法

发布时间:2016-07-16 21:19  回复:0  查看:2391   最后回复:2016-07-16 21:19  

为了方便对自己知识的一个梳理,也方便一些入门MySQL 的同学学习,写了这篇博文。

Select语句的一般语法

1.SELECT [ALL|DISTINCT] <目标列表达式> [,<目标列表达式> ]...

2.FROM <表名或视图名> [,<表名或视图名> ]...

3.[ WHERE <行条件表达式> ]

4.[ GROUP BY <列名1> ,[列名2][,...][HAVING组条件表达式] ]

5.[ ORDER BY <列名1> ,[ASC|DESC][,...] ];

上面5个句子书写时按顺序,尽量一个句子一行,但在机器内部执行时的顺序是2-3-4-1-5
即先确定从哪个数据源查找,
然后确定过滤条件,
若有分组则对过滤后的记录进行分组,若分组有限制条件则对分组进一布限制,
然后将符合条件的列查询出来,
最后对结果进行排序。

select name as '名字',password as '密码' form user;select * from message where id between 2 and 6;select * from message where title like '%留言_';  //%匹配任意个字符,_匹配一个字符select * from message where uid in (2,3,4); //删除2343条数据

连接查询

[<表名1>.][<列名1>] <比较运算符> [<表名2>.][<列名2>]
[<表名1>.][<列名1>] BETWEEN [<表名2>.][<列名2>] AND [<表名2>.][<列名3>]

select * from user,msg where user.id=msg.uid;select m.id,m.title '标题',m.ip,u.username '名字' from message as m,user as u where m.uid=u.id;

子查询

一个SELECT-FROM-WHERE语句成为一个查询块。
将一个查询块嵌套到另外一个查询块的WHERE子句或HAVING短句条件中的查询成为子查询或嵌套查询,它允许我们根据另一个查询的结果检索数据。
子查询的方法是由里向外处理,即每个子查询在其上一级查询之前查询,子查询的结果用于建立其副查询的查询条件。

select *from messagewhere id in (

    select id

        from users

        where username='admin'

    );

集合查询

集合的并操作:使用UNION运算符经多个SELECT查询结果合并起来,形成一个完整的查询结果,系统合并时会自动去掉重复的元组。
注意:前后SELECT语句查询的列数要相同。

数据更新

1. 插入数据

1. 插入单个元组:
INSERT INTO <表名> [(<属性列1>[,<属性列2>...])]
VALUES (<常量1>[,<常量2>]...);

2. 通过子查询向表中插入多条数据
INSERT INTO <表名> [(<属性列1>[,<属性列2>...])]
SELECT [(<属性列1>[,<属性列2>...])]
FROM <表名>
[WHERE 子句]
[GROUP BY 子句]
[ORDER BY 子句];

3. 通过SELECT INTO语句创建新表并插入多条数据
SELECT <列名1>,<列名2>,...<表达式1> as <别名1>,...INTO <表名>
FROM <表名1><表名2>,...
[WHERE 条件表达式]
[GROUP BY 子句]
[ORDER BY 子句];

2. 修改数据
UPDATE <表名>
SET <列名1> = <表达式1> [,<列名2> = <表达式2>]...
[WHERE <条件>];

3. 删除数据
DELETE
FROM <表名>
[WHERE <条件>]

SQL的数据控制功能

授权语句

GRENT <权限1>,[,<权限2>]...  

[ON <对象名>]  

TO <用户1>[,<用户2>],  

[WITH GRANT OPTION];

创建用户blog,设密码为666666,并将数据库db_blog的所有权限赋给他
grant all privileges on db_blog.* to blog@localhost identified by '666666';

order by和limit

select * from message order by uid desc;select * from message order by uid desc limit 5; //默认从0开始,查询5条数据

select * from message order by uid desc limit 2,4;  //从第2条开始查询4条数据

统计函数

count()
sum()
avg()
max()
min()

 

 

原文来自:简书/reber

 

您还未登录,请先登录

热门帖子

最新帖子