还剩28页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
数据查询SQLSQL结构化查询语言是一种强大的工具,用于访问和操作关系数据库中的数据它提供了广泛的语法和功能,允许用户查询、检索、更新、删除和管理数据简介SQL结构化查询语言广泛应用SQL是一种标准化的查询语言,用于访问SQL在数据管理和分析方面扮演着重要角和操作关系型数据库中的数据色,广泛应用于各种领域,例如企业资源规划、电子商务、金融等SQL语法结构简洁易懂,便于学习和使用,适合各种数据库系统SQL可以执行各种数据操作,包括数据查询、数据插入、数据更新和数据删除等的基本结构SQL语句1SQL语句由一个或多个子句组成,以分号结尾,用于执行特定操作子句2每个子句负责执行特定操作,例如SELECT、FROM、WHERE、ORDER BY等关键字3SQL语句中的关键字用于标识语句的类型和功能,例如SELECT、FROM、WHERE等数据类型SQL数值类型字符类型日期和时间类型布尔类型INTEGER、SMALLINT、CHAR、VARCHAR、TEXT DATE、TIME、TIMESTAMP BOOLEANBIGINT、DECIMAL、FLOAT、REAL语句SELECT语法1从数据库中检索数据的核心语句结构2SELECT列名FROM表名示例3SELECT name,age FROMstudentsSELECT语句是最常用的SQL语句之一它的主要功能是从数据库中检索数据,并根据指定的条件和排序规则返回结果集使用SELECT语句,您可以查询单个表或多个表,以及获取特定列或所有列条件子句WHERE条件WHERE1过滤满足条件的行比较运算符2用于比较值逻辑运算符3组合多个条件WHERE子句用于筛选符合特定条件的行使用比较运算符(例如=、、、=、=、!=)比较列值和常量或其他列值逻辑运算符(AND、OR、NOT)可以组合多个条件,以创建更复杂的筛选逻辑排序ORDER BY排序语法使用ORDER BY子句对查询结果进行排序,默认按升序排列,可以使用DESC指定降序排列排序字段指定要排序的字段,多个字段之间用逗号隔开,例如ORDER BY字段1ASC,字段2DESC排序示例例如,将产品表中的价格字段按降序排序,可以这样写SELECT*FROM产品表ORDER BY价格DESC;限制结果集LIMITLIMIT限制结果集的输出行数,用于控制查询返回的数据量LIMIT语法格式LIMIT offset,countoffset指定起始行,从0开始,count指定返回的行数结果offset count05返回前5行数据53从第6行开始返回3行数据聚合函数COUNTCOUNT函数用于统计满足条件的行数它可以用于计算表中的总行数、满足特定条件的行数等COUNT*统计所有行的数量,而COUNT列名则仅统计该列非空的值例如,COUNTid统计表中所有非空的id列的值COUNT函数常用于分析数据量、统计特定条件下的数据个数等、聚合函数SUM AVGSUM函数用于计算列中所有值的总和,AVG函数用于计算列中所有值的平均值分组GROUP BY分组依据1将数据根据一个或多个列进行分组,例如按城市分组或按时间分组统计分析2对分组后的每组数据进行统计分析,例如计算每组数据的总和、平均值、最大值等分组操作3使用GROUP BY子句实现分组操作,并将需要分组的列放在GROUP BY子句中分组条件HAVING筛选分组1HAVING子句用于筛选满足条件的分组过滤行2类似于WHERE子句,但作用于分组结果条件表达式3使用聚合函数和运算符创建条件例如,查询平均价格高于100元的商品类别,可以使用HAVING子句筛选满足条件的分组HAVING子句可与GROUP BY子句结合使用,对分组后的结果进行进一步过滤多表连接JOIN连接多个表JOIN允许将两个或多个表中的数据组合到一起它通过匹配公共列中的值来建立表之间的联系,从而创建更全面的数据集关系数据库关系数据库模型中,数据通常存储在不同的表中,通过外键关联彼此之间关联数据JOIN操作将来自不同表的相关数据整合到一起,以便进行更复杂的数据分析和查询创建新表JOIN操作会生成一个新的虚拟表,它包含来自所有参与连接的表的相关列内连接INNER JOIN合并结果匹配条件INNER JOIN将两个表中匹配的行JOIN ON子句指定连接条件,用组合起来,形成新的结果集于确定哪些行应该被合并常用场景例如,将客户表和订单表连接起来,以获取每个客户的所有订单信息左连接LEFT JOIN保留左表所有记录匹配右表记录12即使右表中没有匹配的记录,当左表和右表中存在匹配的记左表的所有记录都会出现在结录时,将右表的对应记录添加果集中到结果集中空值填充3如果右表中没有匹配的记录,左表中对应字段的值将以空值填充右连接RIGHT JOIN结果集RIGHT JOIN返回所有右侧表中的行,以及匹配左侧表中的所有行如果左侧表RIGHT JOIN的结果集包含所有右侧表中的行,以及左侧表中匹配中没有匹配的行,则结果集中将显示NULL的那些行如果左侧表中没有匹配的行,则结果集中将显示NULL全连接FULL JOIN返回所有记录FULL JOIN连接所有表中的所有记录,包括匹配记录和非匹配记录左侧表中的记录与右侧表中的记录匹配,则将匹配记录返回到结果集中合并查询UNION合并结果集1多个查询结果合并成一个结果集相同列2参与UNION操作的查询语句必须具有相同的列数和数据类型去重3默认情况下,UNION会自动去除重复行UNION操作符用于将两个或多个SELECT语句的结果组合成一个结果集参与UNION操作的SELECT语句必须具有相同的列数和数据类型,并且它们的列顺序也必须相同默认情况下,UNION会自动去除重复行,如果需要保留重复行,可以使用UNION ALL条件表达式CASE条件表达式语法应用CASE根据不同条件执行不同的语句用于根据不同的条件返回不同的值,简化逻CASE WHEN condition THEN result辑[WHENconditionTHENresult]...[ELSEresult]END子查询SUBQUERY子查询,也称为嵌套查询,是指在一个查询语句中包含另一个查询语句嵌套1子查询作为另一个查询语句的一部分结果集2子查询的结果作为外层查询的条件筛选3用于过滤数据,提高查询效率复杂逻辑4实现更复杂的查询逻辑子查询可以用于多种场景,例如获取特定条件下的数据、比较数据、计算聚合值等关键字EXISTS判断子查询是否存在提高查询效率
1.
2.12记录EXISTS关键字仅检查子查询是EXISTS关键字用于检查子查询否返回结果,而不会检索实际是否返回任何行数据常用于判断关联关系
3.3EXISTS关键字常与JOIN连接语句一起使用,判断表之间是否存在关联关系集合运算IN/NOT IN运算符运算符IN NOTIN用于判断某个值是否在指定的集合中用于判断某个值是否不在指定的集合中集合比较运算可以是子查询的结果或一系列值返回布尔值,表示值是否在集合中模糊匹配LIKE通配符匹配模式使用百分号%代表任意长度的LIKE运算符支持多种匹配模式,字符,下划线_代表单个字符例如,%a%匹配包含a的字例如,a%匹配所有以a开头符串,_a_匹配以a为中间字的字符串,b_匹配所有以b开符且长度为3的字符串头且长度为2的字符串大小写敏感大多数数据库默认情况下对大小写敏感,可使用UPPER或LOWER函数进行转换正则表达式REGEXP模式匹配文本处理灵活性和效率正则表达式用于定义搜索模式,匹配文本中它在文本处理、数据验证、查找和替换文本正则表达式提供强大的功能,允许您以简洁的特定字符串或字符序列等方面发挥重要作用的方式表达复杂模式事务处理原子性事务是一个不可分割的工作单元要么全部执行,要么全部不执行一致性事务必须使数据库从一种一致状态转换到另一种一致状态隔离性多个事务并发执行时,不能互相干扰持久性事务一旦提交,其结果就是永久性的视图虚拟表基于基本表或其他视图的虚表,不存储实际数据数据访问简化数据访问,提供对数据的逻辑视图,屏蔽底层复杂结构安全控制限制用户对数据的访问权限,保护敏感信息索引提高查询效率加速数据检索索引类似于书籍的目录,通过创索引建立在数据库表的特定列上建索引,SQL可以快速定位到数,类似于一个指针,指向数据的据所在的位置,从而提高查询效存储位置,加快数据检索速度率类型索引类型包括主键索引、唯一索引、普通索引和全文索引,不同的索引类型适用于不同的场景优化技巧SQL索引优化查询优化12索引可以加速数据检索,但创避免使用通配符(%)开头进建索引会占用额外空间行模糊匹配数据类型数据库配置34选择合适的数据类型可以提高调整数据库配置参数,例如缓存储效率和查询性能存大小和连接池大小错误处理错误类型错误处理机制SQL语句执行过程中可能出现语法错误、数据类型错误、权限错误SQL数据库系统提供错误处理机制,例如异常处理、错误日志记录等等错误信息通常包含错误代码、错误描述和错误位置开发者可以通过异常处理机制捕获并处理错误,确保程序的正常运行总结和课后练习知识回顾1回顾本课所学内容,包含SQL的基本语法、数据类型、查询语句、聚合函数、多表连接、子查询等实践练习2完成课后习题,巩固所学知识,并尝试运用SQL解决实际问题深入学习3建议阅读相关书籍和文档,探索更高级的SQL技巧,如窗口函数、递归查询等。
个人认证
优秀文档
获得点赞 0