hjr-SQL-SQL 常用查询语句

来源:互联网 发布:python pack_into 编辑:程序博客网 时间:2024/06/06 03:10

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……)

  1. 一对多:比如一个用户id对应多个发表的文章
  2. 多对多 : 比如一个用户可以发多个文章,一个文章又可以有多个用户发表,可以在文章表里作者字段用,分割不同用户,或者建立一个中间表,存储用户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写多个查询之间的关联。

1 0
原创粉丝点击