首页 > 数据库技术 > 详细

SQL Server 之浅谈

时间:2019-04-14 00:22:07      阅读:123      评论:0      收藏:0      [点我收藏+]
关系数据库 --> 关系模型 --> 若干存储数据的二维表

行: 记录(recode ,逻辑数据)
列: 字段(column,同一行拥有相同若干字段,定义数据类型,是否为NULL等)\

关系数据库的关系(一对一,一对多,多对一)
主键
通过某个字段唯一区分出不同记录
不使用任何业务相关的字段作为主键
BIGINT 自增或GUID类型
联合主键,允许通过多个字段唯一标识记录
外键
通过一个表的外键关联到另一个表 ==> 一对多,多对一,多对多
索引
是关系数据库中对某一列或多个列的值进行预排序的数据结构
不必扫描整个表,而是直接定位到符合条件的记录
索引的效率取决于索引列的值是否散列
可对一张表创建多个索引,优点:提高查询效率 缺点:在插入,更新和删除记录时,需同时修改索引
唯一索引:可以保证某一列的值具有唯一性

查询数据
基本查询
select from <tables>;
select 1 # 测试数据库的连接是否有效
条件查询
select
frm <tables> where <条件表达式>
NOT,AND,OR 的优先级
NOT class_it = 2 <==> class_id <> 2
投影查询
select col1,col2... from <tables> where <条件表达式>
可设备别名
SELECT id,score points,name FROM students
排序(默认是根据主键排序)
ORDER BY ==> 按照从高到低排序
SELECT id,name,gender score FROM students ORDER BY score;
DESC ==> 倒序
SELECT id,name,gender,score FROM students ORDER BY score DESC;
ORDER BY score DESC,gender
表示先按照score列倒序,再按照gender列顺序
如果由WHERE 子句,那么ORDER BY 子句要放到WHERE子句的后面
分页查询
LIMIT <M> OFFSET <N>
LIMIT总是设定为pageSize
OFFSET计算公式为pageSize (pageIndex - 1)
聚合查询
在使用聚合查询时,我们应该给列名设置一个别名,便于处理结果
在聚合查询中,只能放入分组的列
count(
)
SELECT COUNT() num FROM students;
SUM 计算某一列的合计值,该列必须为数值类型
AVG 计算某一列的平均值,该列必须为数值类型
MAX 计算某一列的最大值
MIN 计算某一列的最小值
分组聚合 ==> GROUP BY
SELECT COUNT(
) num FROM students GROUP BY class_id
SELECT class_id,gender,COUNT() num FROM student GROUP BY class_id,gender
多表查询
可以从多表查询数据
SELECT
FROM <tables1> <tables2> ==> 两张表的乘积,笛卡尔查询
SELECT * FROM students,classes;
为了便于字段区分,设置别名
SELECT
students.id sid,
students.name,
students.gender,
students.score,
classes.id cid,
classed.name cname
FROM students,classes
可添加WHERE条件
连接查询
JOIN 查询是先确定一个主表为结果集,然后,把其他表的行有选择性的"连接"在主表结果集上
内连接 INNER JOIN
SELECT s.id,s.name,s.class_id,c.name class_name,s.gender,s.score # 确定主表
FROM students s # 确定主表
INNER JOIN classes c # 再确定需要连接的表
ON s.class_id = c.id #确定连接条件,可选,加上WHERE子句,ORDER BY等子句
外连接 OUTER
RIGHT OUTER JOIN (返回右表都存在的行,如果该行仅在右表存在,结果集会以NULL填充剩余字段)

        LEFT OUTER JOIN (返回左表都存在的行,如果该行仅在左表存在,结果集会以NULL填充剩余字段)

        FULL OUTER JOIN(是选出左右表都存在的记录)

SQL Server 之浅谈

原文:https://blog.51cto.com/sream/2377881

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!