还剩58页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
数据库操作基础语言教SQL程本教程旨在为初学者提供全面的SQL语言学习指南通过本教程,您将了解数据库的基本概念、SQL语言的语法和应用,以及如何使用SQL进行数据库的创建、查询、修改和删除等操作无论您是学生、数据库管理员还是软件开发人员,本教程都将帮助您掌握SQL技能,为您的职业发展打下坚实的基础课程目标与学习要点1掌握SQL基本语法2熟悉数据库操作3理解关系型数据库了解SQL语言的组成部分,包括能够使用SQL语句进行数据库和表了解关系型数据库的基本概念和特DDL、DML和DQL,掌握各种的创建、修改和删除,以及数据的点,掌握关系型数据库的设计原则语句的基本语法和使用方法插入、更新和查询等操作和规范什么是数据库数据库是一个有组织的、结构化的数据集合,用于存储和管理信息它可以是任何形式的数据,如文本、数字、图像、音频和视频等数据库的主要目的是提供一种高效、可靠和安全的方式来存储和检索数据数据库管理系统(DBMS)是用于创建、维护和管理数据库的软件系统,它提供了一组工具和接口,使用户能够方便地访问和操作数据库中的数据通过数据库,我们可以实现数据的共享、一致性和持久性数据库管理系统()的概念DBMS定义功能示例数据库管理系统(DBMS)是一种软件DBMS提供了一系列功能,包括数据定常见的DBMS包括MySQL、Oracle,用于创建、维护和管理数据库它充义、数据操作、数据控制和数据完整性、SQL Server、PostgreSQL和当用户和数据库之间的接口,允许用户它还提供了数据备份和恢复、并发控MongoDB它们各有特点,适用于不以结构化和安全的方式访问和操作数据制和安全管理等功能同的应用场景关系型数据库简介基于关系模型SQL作为标准语言ACID特性关系型数据库是基于关系模型的数据关系型数据库使用SQL(结构化查询关系型数据库具有ACID特性,即原库,它使用表格(关系)来组织和存语言)作为标准的数据操作语言子性(Atomicity)、一致性(储数据每个表格由行(记录)和列SQL用于查询、插入、更新和删除数Consistency)、隔离性((字段)组成据Isolation)和持久性(Durability),保证了数据的可靠性和一致性语言概述SQL结构化查询语言SQL(Structured Query Language)是一种用于管理关系型数据库的标准编程语言它允许用户执行各种操作,包括查询、插入、更新和删除数据易于学习和使用SQL具有简单易懂的语法,使得用户可以快速学习和使用它是一种声明性语言,用户只需描述需要做什么,而无需指定如何做广泛应用SQL广泛应用于各种关系型数据库管理系统,如MySQL、Oracle、SQL Server和PostgreSQL它是数据库开发和管理的重要工具语言的发展历史SQL1970s1SQL最初由IBM的研究人员在1970年代开发,最初被称为SEQUEL(Structured EnglishQueryLanguage)1980s2SQL在1980年代成为ANSI(美国国家标准协会)和ISO(国际标准化组织)的标准这促进了SQL在不同数据库系统中的广泛应用1990s-Present3SQL不断发展,增加了许多新的功能和扩展,如存储过程、触发器和用户定义函数它仍然是关系型数据库的标准语言语言的特点SQL标准化强大灵活SQL是一种标准化的语言,这意味着它在SQL提供了强大的数据操作和查询功能,SQL具有灵活的语法和功能,可以适应不不同的数据库系统中具有一致的语法和功可以满足各种复杂的数据库需求同的应用场景和需求能语言的分类SQLDML数据操作语言(DML)用于操作数据库DDL中的数据,包括插入、更新和删除数据DQL数据定义语言(DDL)用于定义数据库的结构,包括创建、修改和删除数据库对象数据查询语言(DQL)用于查询数据库中,如表、视图和索引的数据,通过SELECT语句实现213数据定义语言()介绍DDL定义主要语句12数据定义语言(DDL)用于常用的DDL语句包括定义数据库的结构和模式,包CREATE、ALTER和括创建、修改和删除数据库对DROP例如,CREATE象DATABASE用于创建数据库,CREATE TABLE用于创建表示例3DDL语句用于定义数据库的物理结构和逻辑结构,是数据库管理的基础创建数据库的基本语法CREATE DATABASEdatabase_name;创建数据库是使用SQL进行数据库操作的第一步CREATE DATABASE语句用于创建一个新的数据库database_name是您要创建的数据库的名称请确保数据库名称符合命名规范,并且在同一数据库服务器上是唯一的创建数据库后,您可以使用USE语句选择该数据库,然后在其内部创建表和其他数据库对象语句详解CREATE DATABASE基本语法可选参数CREATE DATABASEdatabase_name;CREATE DATABASEdatabase_nameCHARACTER SETcharacter_set_nameCOLLATE collation_name;database_name是您要创建的数据库的名称请确保数据库名称符合命名规范可以指定字符集和排序规则,以支持特定的语言和字符编码删除数据库的基本语法DROP DATABASEdatabase_name;删除数据库是一个危险的操作,因为它会永久删除数据库中的所有数据和对象DROP DATABASE语句用于删除一个已存在的数据库database_name是要删除的数据库的名称在执行此操作之前,请务必备份数据库,并确保您具有足够的权限删除数据库后,所有存储在该数据库中的数据都将无法恢复语句详解DROP DATABASE基本语法注意事项示例123在删除数据库之前,请务必备份数据DROP DATABASE库,并确保您具有足够的权限删除DROP DATABASEIF EXISTSdatabase_name;数据库后,所有数据都将无法恢复mydatabase;database_name是要删除的数据使用IF EXISTS选项可以避免在数据库的名称请谨慎使用此语句,因为库不存在时出错它会永久删除数据库创建表的基本语法CREATE TABLEtable_name column1datatype constraints,column2datatype constraints,...;创建表是数据库设计的重要组成部分CREATE TABLE语句用于创建一个新的表table_name是要创建的表的名称在括号内,您可以定义表的列及其数据类型和约束每个列都必须具有一个名称和一个数据类型约束用于定义列的规则,如主键、外键和唯一性约束创建表后,您可以向其插入数据语句详解CREATE TABLE基本语法列定义每个列都必须具有一个名称和一个数CREATE TABLEtable_name据类型可以使用各种数据类型,如column1datatype INT、VARCHAR、DATE等constraints,column2datatypeconstraints,...;约束约束用于定义列的规则,如主键(PRIMARY KEY)、外键(FOREIGN KEY)和唯一性约束(UNIQUE)数据类型介绍数值类型INT整数类型,用于存储整数值例如INT、BIGINT、SMALLINTDECIMAL精确数值类型,用于存储小数例如DECIMAL10,2FLOAT浮点数类型,用于存储近似数值例如FLOAT、DOUBLE数据类型介绍字符串类型VARCHAR1可变长度字符串类型,用于存储文本数据例如VARCHAR255CHAR2固定长度字符串类型,用于存储文本数据例如CHAR10TEXT3用于存储大量文本数据例如TEXT、MEDIUMTEXT、LONGTEXT数据类型介绍日期时间类型DATE TIMEDATETIME用于存储日期值例如YYYY-MM-用于存储时间值例如HH:MM:SS用于存储日期和时间值例如YYYY-DD MM-DD HH:MM:SS修改表结构ALTER TABLE修改列2使用MODIFY COLUMN语句修改现有列的数据类型或约束添加列1使用ADD COLUMN语句添加新的列到表中删除列使用DROP COLUMN语句从表中删3除列删除表DROP TABLE注意事项删除表是一个危险的操作,因为它会永久删除表中的所有数据在执行此操作之前,请务必备份表1基本语法2示例3高级用法4数据操作语言()介绍DML定义1数据操作语言(DML)用于操作数据库中的数据,包括插入、更新和删除数据主要语句2常用的DML语句包括INSERT、UPDATE和DELETE示例3DML语句用于对数据库中的数据进行操作,是数据库应用的核心语句插入数据INSERTINSERT语句用于向表中插入新的数据行您可以指定要插入的列和对应的值请确保插入的值与列的数据类型匹配插入数据后,您可以使用SELECT语句查询表中的数据,以验证插入操作是否成功语句的多种形式INSERT插入一行数据插入多行数据使用SELECT语句插入数据使用INSERT INTO语句插入一行数据,使用INSERT INTO语句一次插入多行数指定要插入的列和对应的值据,可以提高插入效率使用INSERT INTOSELECT语句从其他表中选择数据并插入到目标表中语句更新数据UPDATEUPDATE语句用于更新表中已存在的数据行您可以使用WHERE子句指定要更新的行,并使用SET子句指定要更新的列和新的值请谨慎使用UPDATE语句,特别是当没有WHERE子句时,因为它会更新表中的所有行更新数据后,您可以使用SELECT语句查询表中的数据,以验证更新操作是否成功语句的条件筛选UPDATEWHERE子句示例使用WHERE子句指定要更新的行,可以根据条件筛选数据更新表中满足特定条件的行,例如例如UPDATE employeesUPDATEtable_name SETsalary=salary*
1.1SET column1=value1WHERE department=IT;WHERE condition;语句删除数据DELETE基本语法注意事项12删除数据是一个危险的操作,因为DELETE FROM table_name它会永久删除表中的数据在执行WHERE condition;此操作之前,请务必备份表使用WHERE子句指定要删除的行,可以根据条件筛选数据示例3DELETE FROM employeesWHERE department=IT;与的区别DELETE TRUNCATEDELETETRUNCATE选择DELETE语句用于删除表中的数据行TRUNCATE语句用于删除表中的所如果需要根据条件删除数据或需要回,可以根据条件筛选要删除的行有数据行,不能根据条件筛选滚操作,请使用DELETE语句如果DELETE操作会记录日志,可以回滚TRUNCATE操作不会记录日志,不需要快速删除表中的所有数据,请使能回滚,效率更高用TRUNCATE语句数据查询语言()介绍DQL定义数据查询语言(DQL)用于查询数据库中的数据,通过SELECT语句实现主要语句常用的DQL语句是SELECT,可以根据条件筛选、排序和分组数据示例DQL语句用于从数据库中检索数据,是数据库应用的核心语句基础SELECT作用1SELECT语句用于从表中检索数据,可以指定要检索的列和条件基本语法2SELECT column1,column2,...FROM table_nameWHERE condition;示例3SELECT*FROM employees;语句的基本语法结SELECT构SELECT FROMWHERE指定要检索的列,可以指定要检索的表指定检索条件,可以使使用*表示所有列用比较运算符和逻辑运算符使用子句过滤数据WHERE基本语法SELECT column1,column2,...2FROM table_nameWHERE condition;作用1WHERE子句用于指定检索条件,可以根据条件筛选数据示例SELECT*FROM employees3WHERE department=IT;常用比较运算符=1等于2不等于3小于4大于逻辑运算符、、AND ORNOTAND1逻辑与,用于连接多个条件,所有条件都必须满足OR2逻辑或,用于连接多个条件,只要满足其中一个条件即可NOT3逻辑非,用于取反条件使用排序ORDER BYORDERBY子句用于对查询结果进行排序您可以指定要排序的列,并选择升序(ASC)或降序(DESC)排列如果不指定排序方式,默认按升序排列排序可以帮助您更好地组织和分析数据升序和降序排列升序排列(ASC)降序排列(DESC)按指定列的值从小到大排列按指定列的值从大到小排列使用分组GROUP BYGROUP BY子句用于将查询结果按指定列的值进行分组分组后,您可以对每个组进行聚合计算,如COUNT、SUM、AVG、MAX和MINGROUP BY通常与聚合函数一起使用,以统计每个组的数据聚合函数COUNT作用基本语法COUNT函数用于统计表中或指定列中的行数SELECT COUNTcolumn_nameFROM table_nameWHERE condition;聚合函数SUM作用基本语法示例123SUM函数用于计算指定列的总和SELECT SUMcolumn_name SELECTSUMsalary FROMFROM table_name employees;WHERE condition;聚合函数AVG作用基本语法AVG函数用于计算指定列的平SELECT均值AVGcolumn_nameFROM table_nameWHERE condition;示例SELECT AVGsalary FROM employees;聚合函数和MAX MINMAXMAX函数用于查找指定列的最大值MINMIN函数用于查找指定列的最小值子句的使用HAVING作用1HAVING子句用于对GROUPBY分组后的结果进行筛选,类似于WHERE子句基本语法2SELECT column1,column2,...FROM table_nameWHERE conditionGROUPBY column1,column2,...HAVING condition;示例3SELECT department,AVGsalaryFROM employeesGROUPBY departmentHAVINGAVGsalary50000;多表联结查询INNER JOINLEFT JOINRIGHT JOIN内联结,返回两个表中满足联结条件的行左联结,返回左表中的所有行,以及右表右联结,返回右表中的所有行,以及左表中满足联结条件的行中满足联结条件的行的使用INNER JOIN基本语法SELECT column1,column2,...FROM table1INNER JOINtable2ON table
1.column_name=2table
2.column_name;作用1INNER JOIN用于返回两个表中满足联结条件示例的行SELECT employees.name,departments.name3FROM employeesINNERJOIN departmentsONemployees.department_id=departments.id;的使用LEFT JOIN作用1LEFT JOIN用于返回左表中的所有行,以及右表中满足联结条件的行基本语法2示例3注意事项4的使用RIGHT JOIN作用1RIGHT JOIN用于返回右表中的所有行,以及左表中满足联结条件的行基本语法2SELECT column1,column2,...FROM table1RIGHT JOINtable2ONtable
1.column_name=table
2.column_name;示例SELECT employees.name,departments.name3FROM employeesRIGHT JOINdepartments ONemployees.department_id=departments.id;的使用FULL JOINFULL JOIN用于返回左表和右表中的所有行,如果两个表中存在满足联结条件的行,则合并它们;否则,返回NULL值FULL JOIN是LEFT JOIN和RIGHT JOIN的组合并非所有数据库系统都支持FULLJOIN,例如MySQL就不支持子查询的概念定义作用子查询是指嵌套在其他SQL查询中的查询它可以出现在子查询用于从一个或多个表中检索数据,并将结果作为输入传递SELECT、FROM或WHERE子句中给外部查询单行子查询单行子查询是指返回单行结果的子查询它可以用于比较运算符(如=、、)的右侧单行子查询通常用于检索与特定值相关的记录多行子查询定义运算符多行子查询是指返回多行结果的子查询它可以用于IN、ANY IN运算符用于检查一个值是否在子查询返回的结果集中ANY或ALL运算符的右侧运算符用于检查一个值是否大于或小于子查询返回的任何值ALL运算符用于检查一个值是否大于或小于子查询返回的所有值相关子查询定义特点12相关子查询是指依赖于外部查相关子查询可以访问外部查询询的子查询它在外部查询的中的列,但不能独立执行每一行上执行一次示例3SELECT*FROMemployeeseWHERE salarySELECT AVGsalaryFROM employeesWHERE department_id=e.department_id;视图的概念和作用概念作用视图是一个虚拟的表,它基于一视图可以简化复杂的查询、提高个或多个表的查询结果视图不数据安全性、隐藏底层表的结构存储实际的数据,而是存储查询和提供数据一致性的定义示例可以创建一个视图来显示特定部门的员工信息,而无需每次都编写复杂的查询创建视图CREATE VIEW基本语法CREATE VIEWview_name ASSELECTcolumn1,column2,...FROMtable_nameWHERE condition;示例CREATE VIEWIT_employees ASSELECT*FROM employeesWHEREdepartment=IT;修改视图ALTER VIEW作用1ALTER VIEW用于修改已存在的视图的定义基本语法2ALTER VIEWview_name ASSELECTcolumn1,column2,...FROMtable_nameWHERE condition;示例3ALTER VIEWIT_employees ASSELECTid,name,salaryFROMemployeesWHEREdepartment=IT;删除视图DROP VIEW作用基本语法示例DROP VIEW用于删DROP VIEWDROP VIEW除已存在的视图view_name;IT_employees;索引的概念和作用作用索引可以显著提高查询速度,特别是对2于大型表但索引也会增加插入、更新概念和删除操作的开销1索引是一种数据结构,用于加速数据库查询的速度它类似于书籍的目录,可选择以快速定位到特定的数据行应根据实际查询需求选择合适的列创建3索引频繁用于查询条件的列适合创建索引创建索引的基本语法基本语法1CREATE INDEXindex_name ONtable_name column1,column2,...;示例2注意事项3主键索引和唯一索引主键索引1主键索引是一种特殊的唯一索引,用于唯一标识表中的每一行每个表只能有一个主键索引唯一索引2唯一索引用于确保指定列的值在表中是唯一的一个表可以有多个唯一索引删除索引的方法DROP INDEX语句用于删除已存在的索引删除索引后,查询速度可能会降低,但插入、更新和删除操作的开销也会降低应根据实际需求选择是否删除索引约束条件SQL作用类型SQL约束条件用于定义表中数据的规则,以确保数据的完整性和常见的约束条件包括主键约束、唯一约束、非空约束、默认约束一致性和外键约束。
个人认证
优秀文档
获得点赞 0