我们开始学SQL之前,要先了解SQL到底是什么
SQL 是什么?
SQL 就是用于管理关系数据库管理系统(RDBMS)。 SQL 的范围包括数据插入、查询、更新和删除(增删查改),数据库模式创建和修改,以及数据访问控制。
这一篇先从SQL简单的开始
首先SQL除了特定对象(比如你要引用哪一张表)外都不区分大小写
1.查询数据
Select * from table_name t1 从table_name中返回所有数据
*代表所有,也可以返回其它数据,当有俩个以上中间用逗号隔开
table_name是在FROM子句中指定源表及其模式名称,当没有模式名称时默认为dbo模式,t1为列表的别名,你可以用table_name或t1
执行上面这段语句时,先执行from子句,再执行select子句
2.排序数据(Order by)
默认为升序(asc),从低到高。如果要降序就写(desc),从高到低
也可以按多列对结果集进行排序,但要在列之间用逗号隔开,也可以用升降序来排,例:order by name,id desc 根据名字的升序来排序,如果有相同的名字就再根据id的降序来排序
Len()函数返回字符串的字符数(长度)来排序
如果你想要排序的列没在选择列表中,也是没有问题的,但一定要在from子句中有的
按列的序数位置排序,就是用数字根据select子句的列来排序
例:select name,id from table order by 1,2先排name再排id
由于存储在表中的行的顺序是不可预测的,因此 SELECT TOP 语句始终与 ORDER BY 子句一起使用。
返回固定行数 top 1,返回1行数据。Select top 1 * from table
返回百分比行数top 10 PERCENT,返回百分之10,假设有101行数据,因为返回的有小数,所以实际返回有11行数据,SQL将其进到下一个整数
TOP 5 WITH TIES 返回5行数据,如果有和第5行数据相同的就一起返回,所以可能返回的有5行也可能超过5行
Offset Fetch子句
OFFSET 和 FETCH 子句是 ORDER BY 子句的选项。它们用于限制查询返回的行数。必须将 OFFSET 和 FETCH 子句与 ORDER BY 子句一起使用 ,OFFSET 和 FETCH 子句比实现 TOP 子句更适合实现查询分页解决方案,OFFSET 子句是必需的,而 FETCH 子句是可选的。 此外, FIRST 和 NEXT 是同义词,因此可以互换使用它们
Select name from table
ORDER BY name
OFFSET 10 ROWS (跳过前 10 行)
FETCH NEXT 20 ROWS ONLY (返回接下来的20行)