当前位置: 首页 > news >正文

网站建设详细报价单山东网站优化推广

网站建设详细报价单,山东网站优化推广,网上投诉平台,烟台做网站那家好文章目录 一、多数据表之间的数据查询1.1内连接查询#xff08;Inner join#xff09;1.2 左外连接 (LEFT JOIN):1.3右外连接 (RIGHT JOIN):1.4. 全外连接 (FULL OUTER JOIN):1.5 交叉连接 (CROSS JOIN):1.6 自连接 (SELF JOIN):1.7 子查询: 二、分组查询2.1 分组查询2.2 查询… 文章目录 一、多数据表之间的数据查询1.1内连接查询Inner join1.2 左外连接 (LEFT JOIN):1.3右外连接 (RIGHT JOIN):1.4. 全外连接 (FULL OUTER JOIN):1.5 交叉连接 (CROSS JOIN):1.6 自连接 (SELF JOIN):1.7 子查询: 二、分组查询2.1 分组查询2.2 查询重复数据 一、多数据表之间的数据查询 在SQL中多数据表之间的查询主要用于以下方面 在SQL Server中多数据表之间的数据查询主要用于以下几个方面 关联数据提取现代数据库通常将数据分散在多个相关的表中以便于管理。例如订单信息可能存储在一个表中而客户信息可能存储在另一个表中。为了获取完整的订单详情你可能需要从两个表中提取并合并信息。 数据整合多表查询可用于整合来自不同数据源的信息这对于报告和分析非常重要。比如销售报告可能需要结合产品、销售和客户表中的数据。 性能优化合理设计的数据库模型会将数据分散在多个表中以减少冗余和提高性能。通过多表查询可以有效地检索分散的数据而无需过多冗余。 数据完整性数据库设计时通常会使用外键来维护不同数据表之间的关系确保数据的一致性和完整性。多表查询可以利用这些关系来确保查询结果的准确性。 复杂的数据操作多表查询允许执行复杂的数据操作如连接JOIN、子查询subquery、并集UNION等以执行复杂的业务逻辑和数据分析。 条件筛选在多表查询中可以通过在 WHERE 子句中设定条件来筛选跨多个表的数据以满足特定的查询需求。 多表之间的数据查询主要有下面三种方式 1.内连接查询 2.左外连接查询 3.右外连接查询 还有一些延伸的的方式作简单介绍 1.1内连接查询Inner join 内连接用来查询两个或多个表中存在匹配关系的记录。仅返回在连接的表之间具有匹配值的行。既然是匹配关系那也就是说内连接用于查找两个表中都有的记录比如第一个表中有十行那么响应的第二个表中也应该有十行与之对应。 语法格式 select columns from table1 inner join table2 on table1.column_name table2.column_name;最后一句解释 ON table1.column_name table2.column_name 是 SQL 查询中的一个语句片段通常用在 JOIN 操作中用来指定两个数据表之间的连接条件。这个语句的意思是系统在连接 table1 和 table2 这两张表时会按照两张表中的指定列 column_name 的值是否相等来确定哪些行之间应该被连接。 我们看一个具体的例子 我们有两张表表一Students 表二ScoreList 用下列程序: select ScoreList.StudentId,StudentName,Gender ,Csharp from ScoreList inner join Students on Students.StudentIdScoreList.StudentId where CSharp80得到结果 就是说我们可以以两个表上相同的列为桥梁将两个表中我们想要的数据合到一张表上而且两张表无先后位置。 1.2 左外连接 (LEFT JOIN): 左外连接返回左表FROM 子句中指定的表的所有记录以及右表中匹配的记录。外连接左、右、全用于包含没有匹配的行的情景如果左表的行在右表中没有匹配则结果集中这些行的右表部分为 NULL。语法 select columns from table1 left join table2 on table1.column_name table2.column_name;比如table1左表是 table2右表是 我们看到右表比左表少了一行所以自动补上了NULL 1.3右外连接 (RIGHT JOIN): 右外连接与左外连接对应返回右表的所有记录以及左表中匹配的记录。如果右表的行在左表中没有匹配则结果集中这些行的左表部分为 NULL。 select columns from table1 right join table2 on table1.column_name table2.column_name;1.4. 全外连接 (FULL OUTER JOIN): 全外连接返回左表和右表中的所有记录。当左表中的行在右表中没有匹配时或者右表中的行在左表中没有匹配时结果集会用 NULL 补充。 select columns from table1 full outer join table2 on table1.column_name table2.column_name;1.5 交叉连接 (CROSS JOIN): 交叉连接返回两个表中所有可能的行组合。如果第一个表有10行第二个表有5行交叉连接的结果将有50行。不常用 select columns from table1 cross join table2;1.6 自连接 (SELF JOIN): 自连接是一种特殊形式的内连接或外连接表与自身连接。不常用 SQL Server 中的自连接SELF JOIN是一种特殊类型的连接其中一个表会根据与自身的某些条件关联来进行连接。自连接通常用于处理那些在同一表内部就需要关联查询的情况比如层级数据、树状结构或是任何需要比较同一个表内两个不同记录的场景。 在自连接中实际上是把同一个表当作是两个独立的表进行连接操作。虽然物理上只有一个表但是通过给表使用不同的别名可以在查询中将其视为两个不同的表。 举个自连接的例子假设我们有一个员工表 Employees其中包含以下列 EmployeeID (员工ID) - EmployeeName (员工姓名) - ManagerID (上级经理的员工ID) 在这种情况下ManagerID 是这个员工的上级经理的 EmployeeID。我们想要列出所有员工及其对应的上级经理姓名。在这里我们可以使用自连接来实现这个目标。 示例 SQL 查询如下 selecte1.EmployeeName as EmployeeName,e2.EmployeeName as ManagerName fromEmployees e1 left join Employees e2on e1.ManagerID e2.EmployeeID;在这个查询中Employees 表以 e1 和 e2 两个不同的别名存在。我们在查询中使用 left join 自连接这个表通过 e1.ManagerID e2.EmployeeID 条件来找到员工的上级经理。e1 代表的是员工而 e2 代表的是经理。left join 确保了即使某些员工没有上级经理ManagerID 为 NULL他们的信息也会被列出。 结果将是一个两列的列表第一列是员工的姓名第二列是他们经理的姓名。如果某个员工没有经理对应的 ManagerName 列会显示为 NULL。 1.7 子查询: 子查询可以在另一个查询中使用它可以从一个表中筛选数据然后用来与另一个表比较或操作。 select columns from table1 where column_name IN (SELECT column_name FROM table2 where condition);二、分组查询 2.1 分组查询 在SQL Server Management StudioSSMS中分组查询主要通过group by 子句实现。group by子句通常与聚合函数如COUNT()、SUM()、AVG()、MAX()、MIN()等一起使用可以对一组行中的某些列进行分组并对每个组进行聚合计算。 以下是一个简单的分组查询示例假设有一个名为Sales的表包含了Item、Quantity和SaleDate三个字段 Sales Table ------------------------------------- | Item | Quantity | SaleDate | ------------------------------------- | Pen | 10 | 2023-01-01 | | Notebook | 20 | 2023-01-01 | | Pen | 5 | 2023-01-02 | | Eraser | 15 | 2023-01-02 | | Notebook | 30 | 2023-01-03 | | Pen | 10 | 2023-01-03 | | Eraser | 20 | 2023-01-03 | -------------------------------------我们运行以下SQL查询 select Item, SUM(Quantity) as TotalQuantity from Sales group by Item;这个呢将返回每个不同物品Item的总销售数量TotalQuantity。结果如下所示 Result ------------------------ | Item | TotalQuantity | ------------------------ | Pen | 25 | | Notebook | 50 | | Eraser | 35 | ------------------------在这个结果中Pen 的TotalQuantity是2510510Notebook的TotalQuantity是502030而Eraser的TotalQuantity是351520。 如果我们还想过滤出总销售数量大于30的物品那就可以使用having子句如下所示 select Item, SUM(Quantity) as TotalQuantity from Sales group by Item having SUM(Quantity) 30;此查询将返回总销售数量超过30的物品的列表。结果集将会是 Result ------------------------ | Item | TotalQuantity | ------------------------ | Notebook | 50 | | Eraser | 35 | ------------------------在这个结果中只有Notebook和Eraser显示在列表中因为它们的TotalQuantity值分别是50和35都大于30。 2.2 查询重复数据 在SQL Server中要筛选出重复的数据可以使用group by和having子句结合聚合函数。例如我么想要找出Sales表中Item字段重复的记录可以使用以下查询 select Item, COUNT(*) FROM Sales GROUP BY Item HAVING COUNT(*) 1;这个查询是按Item分组的然后数每个分组的行数。having count(*) 1这个条件将筛选出那些行数大于1的分组也就是那些有重复Item值的记录。 在SQL中COUNT(*)是一个聚合函数用来计算某个结果集中的行数。它会包含所有的行包括NULL值在内。这里使用COUNT(*) 来找出Sales表中Item字段重复的记录。这里COUNT(*) 计算的是每个Item分组内的记录数然后使用having COUNT(*) 1 来过滤只显示那些出现了不止一次的Item这样就能找出重复的记录。 现在假设Sales表的内容如下所示 Sales Table ------------------------------------- | ID | Item | Quantity | SaleDate | ------------------------------------- | 1 | Pen | 10 | 2023-01-01 | | 2 | Notebook | 20 | 2023-01-01 | | 3 | Pen | 5 | 2023-01-02 | | 4 | Eraser | 15 | 2023-01-02 | | 5 | Notebook | 30 | 2023-01-03 | | 6 | Pen | 10 | 2023-01-03 | -------------------------------------运行上述查询后会得到如下结果 Result ------------------------ | Item | (No column name) | ------------------------ | Pen | 3 | | Notebook | 2 | ------------------------这个结果中显示了Pen和Notebook是重复的因为它们各自出现了3次和2次。 (不常用)如果我们还想要获取到具体的重复记录可以使用子查询或者with关键字CTE也就是公用表达式来获取这些数据。以下是使用子查询的例子 select * from Sales where Item in (select Itemfrom Salesgroup by Itemhaving COUNT(*) 1 );这个查询返回了Item字段重复的所有记录。 而下面是使用CTE的例子 with DuplicateItems as (select Item, COUNT(*) AS Countfrom Salesgroup by Itemhaving COUNT(*) 1 ) select s.* from Sales s Inner join DuplicateItems d on s.Item d.Item;这个查询使用CTE先找出重复的Item然后通过内连接返回Sales表中相关的所有记录。 运行上述任一查询后你将会得到包含重复Item所有数据的结果集它们都包含Item为Pen和Notebook的记录。
http://www.zqtcl.cn/news/753514/

相关文章:

  • html网站怎么进入后台网站主题怎么写
  • wordpress怎么ftp建站高端网站建设域名注册
  • 我用织梦5.7做个网站应该把淘宝客店铺链接放到哪聊天软件开发需要多少钱
  • 站长工具爱站竞价单页网站制作
  • 网站分类目录大全购物网站大全棉鞋
  • 网站镜像做排名建立外贸英文网站应该怎么做
  • 上海做网站就用乐云seo手机网站cms 下载
  • 做网站需要固定ip么灵犀科技网站建设
  • 深圳高端做网站建设网站备案与不备案区别
  • 家居企业网站建设公司苏州高新区建设局网站管网
  • 体育门户网站模板seo网络推广有哪些
  • 石家庄网站建设教程百度云下载
  • 怎样查看网站建设时间公司网站关键词优化
  • 网站淘宝推广怎么做网站seo基本流程
  • miit网站备案济南哪里做网站
  • 做网站软件的公司前端优化
  • 哪个网站有做形象墙汉沽网站建设制作
  • 网站alexa排名查询免费发帖的平台有哪些
  • 德国网站后缀濮阳房产网站建设
  • 漕泾网站建设做网站php语言用什么工具
  • 专业营销的网站建设公司哪家好专门做二手书的网站
  • 建新网站开发流程图电子商务网站开发综合实训报告
  • 临汾网站建设销售长沙网站建设1681989
  • 最近国内外重大新闻事件贺贵江seo教程
  • 网站开发源码网站运营建设方案
  • 网站建设公司 跨界鱼科技专业简述网站的制作步骤
  • 手机网站cms网站优化推广哪家好
  • 网站被k换域名qq空间 wordpress
  • 网站模板种类昆明cms建站模板
  • wordpress em企业网站做seo的优势