您的位置:首页 > 数据库

hjr-SQL-SQL 常用查询语句

2017-04-11 19:50 218 查看

Mysql

语句

注:以下所有表名都使用tableName,所有主键都使用id,变量使用a,b,c,d,e……

1. 从第a条记录开始查询,查询出共b条记录

SELECT * FROM tableName LIMIT a,b


2. 随机查询a条记录

SELECT * FROM tableName ORDER BY RAND() LIMIT a


3. 如果表不存在则创建表

CREATE TABLE IF NOT EXISTS tableName(id INT PRIMARY KEY AUTO_INCREMENT,name VARCHAR(20) )


心得



Sqlserver

语句



心得

(分组)查询

当想要统计数据时需要使用分组查询
group by``order by desc/asc
相当于分组查询后再排序。

限制:group by 的字段需要先select ,并且所有查询的字段都需要加到group by后否则会报错

如果既想查询该字段(仅仅起一个一起显示信息的作用)又不想放到group by 后面可以这么做

把之前分组查询结果作为子查询,
select xxx from xxx  in (子查询)
使用
in
进行查询不要用
=
会报查询条件不能为多个的错误。

分组常用到下面:

统计

关联表,联合查询(inner join,left join……)

一对多:比如一个用户id对应多个发表的文章

多对多 : 比如一个用户可以发多个文章,一个文章又可以有多个用户发表,可以在文章表里作者字段用
,
分割不同用户,或者建立一个中间表,存储用户id,文章id和主键,描述多对多的关系。

表和字段可以用
as
起别名,想当于缩写

SQL常用的有分组和统计,统计主要是COUNT和SUM,前者一般根据主键统计记录数目,后者对字段数值进行求和。count,sum之类的统计语句都可以使用 case then else在统计时进行判断,字段也可以,比如把查到的为空的字段改为0。

当同时统计多张表时需要用到,前提是这几张表有关联的字段,比如用户表的id,和文章表的user_id与发帖表的user_id,就是关联字段,可以用
用户表 left join 文章表 left join 帖子表


关系(表和表之间的关系,不是不同表字段之间的关系)

关联表是为了 group by 的字段能够统一使用 用户表的 id。这样就会根据文章与帖子都有的user_id分组查询。不过结果要加distanse,否则查询结果为两个表记录数目想乘

多个查询结果组合成一个结果,先把每个查询分别用()包上,然后分别as一个别名比,在最开始
select 要查的字段 from () as a left join () as b on a.id = b.id
最后用on写多个查询之间的关联。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: