sql查询相同数据 序号递增_运用SQL对数据进行简单查询

a37a4d56c1e0d8ef376714a1cb39379e.png

一、基本的查询语句

1.1 从表中查询所有的行和列

SELECT * FROM [table name]

862eb1b2f9b9d1b7a418ad9f586a97a5.png

注意:一般而言,除非确实需要用到表中的每一列,否则最好别使用*通配符。虽然使用通配符可以让自己省事,不用明确列出所需列,但检索不需要的列通常会降低检索和应用程序的性能。

此外,使用*通配符无法设定列的显示顺序了。这时就会按照CREATE TABLE语句的定义对列进行排序。

1.2 从表中查询特定的列

SELECT [column name1], [column name2], .... [column name N] FROM [table name]

1d15883ffb214a16deedfa8e9313de47.png

注意:查询结果中列的顺序和 SELECT 子句中的顺序相同。

1.3 列重命名

SELECT [old column name] AS [new column name] FROM [table name]

85030b435990a777892e0c1771aacaf1.png

设定汉语别名时需要使用双引号(")括起来。

注意:在where子句中引用重命名的列名会报错

举例:

40ab817fc97b6c4f3153fc3a57f0dd8f.png

原因:where子句是在select之前处理的,也就是说在执行where语句时,student_id这一列并不存在,因此系统报错。

解决方案:将查询作为内联视图

868ccdabfdbf2b6e13693d5b9ba12026.png

之前提到了where子句在select子句之前执行,因此在where子句中引用重命名的列会报错,但是将查询作为内联视图可解决这个问题,因为from子句在where子句之前执行

1.4 查询常数

SELECT 'text' AS [column name],
       number AS [column name],
       'date' AS [column name]
FROM [table name]

e672a4dc259853ced25acc4d6fc5daf5.png

1.5 查询不重复的信息/删除重复行

SELECT DISTINCT [column name] FROM [table name]

7a9735cf18ea64ee6008a107e2eacb87.png

注意:

  1. 如果将 DISTINCT 放在多个列名前,则删除的的是所有列信息均相同的行。
  2. 在使用 DISTINCT 时,NULL 也被视为一类数据。NULL 存在于多 行中时,也会被合并为一条 NULL 数据。
  3. DISTINCT 关键字只能用在第一个列名之前。 因此 SELECT id, DISTINCT c_name FROM classes 会报错。

1.6 连接列值

SELECT CONCAT([column name 1], [column name2], .... [column name N]) AS [new column name] FROM [table name]

feddf975ef0d8fccf51853926af8a725.png

提示:在使用CONCAT连接列的同时,可以结合RTRIM, LTRIM和TRIM函数去掉空格。

1.6 限制返回行数

SELECT ... FROM ... LIMIT N

9b9a0eb062061513f0c2b42ff16a141f.png

1.7 跳过某些行

SELECT ... FROM ... LIMIT N1 OFFSET N2

LIMIT 指定返回的行数,LIMIT 带的 OFFSET 指定从哪儿开始。

MySQL支持简化版的 LIMIT 4 OFFSET 3 语句,即 LIMIT 3,4。 使用这个语法,逗号之前的值对应 OFFSET,逗号之后的值对应 LIMIT。

1.8 随机返回N条记录

SELECT ... FROM ... ORDER BY RAND() LIMIT N<
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值