几个常见的MySQL语法

为了方便对自己知识的一个梳理,也方便一些入门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); //删除2、3、4共3条数据

连接查询

[<表名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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值