




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第一章 MySQL数据库基础操作本章要点1了解数据库、MySQL数据库的基本概念2熟悉MySQL数据库的启动、连接等操作3掌握MySQL数据库的安装配置4掌握MySQL数据库客户端的基本使用 引言MySQL数据库由MySQL AB公司开发,目前归属于Oracle公司(甲骨文软件系统有限公司),是最流行的关系数据库管理系统。MySQL数据库几乎支持所有操作系统,由于具有免费使用、配置简单、稳定性好、性能优良等优点,使得MySQL数据库的发展非常迅猛,目前已经广泛应用在各个行业中。 任务一MySQL数据库安装与配置一、任务描述本任务安装MySQL数据库,并进行有关配置。二、任务分析MySQL数据库
2、的安装和配置比较容易,安装时需要注意MySQL的Workbench客户端依赖于Microsoft Visual C+ Runtime,必须先安装Microsoft Visual C+ Runtime,否则Workbench无法安装;MySQL的配置可以在安装完成后直接进行,也可以在安装完成后进行有关的配置。多数配置采用默认值,比如端口号、日志等。任务一MySQL数据库安装与配置(一)数据库基本概念1数据描述事物的符号记录称为数据。2数据库数据库是按照一定的数据模型组织的、长期储存在计算机内、可为多个用户共享的数据的聚集。数据库数据具有永久存储、有组织和可共享三个基本特点。任务一MySQL数据库
3、安装与配置3数据库管理系统数据库管理系统是位于用户与操作系统之间的一层数据管理软件,其主要功能包括几个方面:(1)数据定义功能。(2)数据组织、存储和管理。(3)数据操纵功能。(4)数据库的事务管理和运行管理。(5)数据库的建立和维护功能。(6)其他功能。与其他软件系统的通信功能、与另一个数据库管理系统或文件系统的数据转换功能等。任务一MySQL数据库安装与配置4数据库系统它包括和数据库有关的整个系统:数据库、数据库管理系统、应用程序以及数据库管理员和用户等等。(1)硬件平台及数据库由于数据库系统数据量都很大,加之DBMS丰富的功能使得自身的规模也很大,因此整个数据库系统对硬件资源提出了较高的
4、要求。任务一MySQL数据库安装与配置 要有足够大的内存 有足够大的磁盘或磁盘阵列等设备存放数据库; 要求系统有较高的通道能力,以提高数据传送率。(2)软件数据库系统的软件主要包括: 数据库的建立、使用和维护配置的系统软件。 支持运行的操作系统。 具有与数据库接口的高级语言及其编译系统,便于开发应用程序。任务一MySQL数据库安装与配置 以DBMS为核心的应用开发工具。 为特定应用环境开发的数据库应用系统。(3)人员开发、管理和使用数据库系统的人员主要是:数据库管理员、系统分析员和数据库设计人员、应用程序员和最终用户。 数据库管理员。负责全面管理和控制数据库系统。 系统分析员和数据库设计人员系
5、统分析员负责应用系统的需求分析和规范说明,要和用户及DBA相结合,确定系统的硬件软件配置,并参与数据库系统的概要设计。任务一MySQL数据库安装与配置 应用程序员应用程序员负责设计和编写应用系统的程序模块,并进行调试和安装。 用户这里用户是指最终用户,最终用户通过应用系统的用户接口使用数据库。任务一MySQL数据库安装与配置数据库发展过程1人工管理阶段20世纪50年代中期以前为人工管理阶段,其特点:(1)数据不保存。(2)应用程序管理数据。(3)数据不共享。(4)数据不具有独立性。任务一MySQL数据库安装与配置2文件系统阶段。上世纪50年代后期到60年代中期为文件管理阶段,其特点:(1)数据
6、可以长期保存。(2)由文件系统管理数据其缺点为:(1)数据共享性差,冗余度大。(2)数据独立性差。任务一MySQL数据库安装与配置3数据库系统阶段。20世纪60年代后期以来为数据库系统阶段,其特点:(1)数据结构化。(2)数据的共享性高、冗余度低、易扩充。(3)数据独立性高。(4)数据由DBMS统一管理和控制。任务一MySQL数据库安装与配置1关系所谓关系,就是一张表。表的各列以属性开始,属性是列的入口。例:表1-1是一个名为Course(课程)的关系,记录的是课程的相关信息,包括Course No(课程号)、Course Name(课程名)和Teacher(任课老师)。任务一MySQL数据库
7、安装与配置1关系所谓关系,就是一张表。表的各列以属性开始,属性是列的入口。例:表1-1是一个名为Course(课程)的关系,记录的是课程的相关信息,包括Course No(课程号)、Course Name(课程名)和Teacher(任课老师)。任务一MySQL数据库安装与配置2关系模型数据以“关系”的形式表示,也就是以二维表的形式表示,其数据模型就是所谓的关系模型。在关系模型中,无论是从客观事物中抽象出的实体,还是实体之间的联系,都用单一的结构类型关系来表示。在对关系进行各种处理之后,得到的还是关系一张新的二维表。由于关系模型中数据结构简单清晰,概念单一,易学易用,深受用户喜爱。任务一MySQ
8、L数据库安装与配置3列表中的一个字段,所有表都是有一个或多个列组合而成的。如Course(课程)表由Course No(课程号)、Course Name(课程名称)、Teacher(任课老师)三个列组成。4行表中的一条记录。表中行数为记录的总数。任务一MySQL数据库安装与配置(四)常用数据库目前,商品化的数据库管理系统以关系型数据库为主导产品,技术比较成熟。国际国内的主流关系型数据库管理系统有Oracle、SQL Server、MySQL、DB2等。任务一MySQL数据库安装与配置1Oracle Oracle在数据库领域一直处于领先地位,具有以下特性:兼容性:Oracle产品采用标准SQL,
9、并经过美国国家标准技术所测试可移植性:Oracle的产品可运行于很宽范围的硬件与操作系统平台上。可联结性:Oracle能与多种通讯网络相连,支持各种协议高生产率:Oracle产品提供了多种开发工具,能极大地方便用户进行进一步的开发。开放性:Oracle良好的兼容性、可移植性、可连接性和高生产率。任务一MySQL数据库安装与配置3DB2IBM DB2 是IBM公司开发的一套关系型数据库管理系统,主要应用于大型应用系统,具有较好的可伸缩性,可支持从大型机到单用户环境,应用于所有常见的服务器操作系统平台下。任务一MySQL数据库安装与配置(五)MySQL数据库MySQL是最受欢迎的开源SQL数据库管
10、理系统,是一个快速的、多线程、多用户和健壮的SQL数据库服务器。MySQL服务器支持关键任务、重负载生产系统的使用,也可以将它嵌入到一个大配置的软件中去。任务一MySQL数据库安装与配置1MySQL优势与其他数据库管理系统相比,MySQL具有以下优势:(1)MySQL是一个关系数据库管理系统。(2)MySQL是开源的。(3)MySQL服务器是一个快速的、可靠的和易于使用的数据库服务器。(4)MySQL服务器工作在客户/服务器或嵌入系统中。(5)内部构件和可移植性。(6)字段类型众多。任务一MySQL数据库安装与配置(7)丰富的语句和函数。(8)可靠的安全性。(9)良好的可伸缩性。(10)连接方
11、便。(11)支持本地化。(12)功能强大且使用方便的客户端和工具。(13)有大量的MySQL软件可以使用。任务二 MySQL客户端使用一、任务描述本任务学习使用MySQL的客户端。MySQL客户端主要有MySQL Workbench客户端和命令行客户端,其中Workbench客户端为学习的重点,在后续章节中常常使用。任务二 MySQL客户端使用二、任务分析MySQL Workbench客户端是MySQL数据库开发、管理和设计的集成工具,本任务主要介绍Workbench的登录、查看MySQL服务器状态、启动和关闭服务器以及在Workbench中使用SQL命令。在任务拓展中主要讲解命令行客户端的使
12、用,命令行客户端的使用也是MySQL数据库的基本内容。任务二 MySQL客户端使用二、任务分析MySQL Workbench客户端是MySQL数据库开发、管理和设计的集成工具,本任务主要介绍Workbench的登录、查看MySQL服务器状态、启动和关闭服务器以及在Workbench中使用SQL命令。在任务拓展中主要讲解命令行客户端的使用,命令行客户端的使用也是MySQL数据库的基本内容。任务二 MySQL客户端使用三、基础知识(一)MySQL客户端MySQL客户端主要有两个,一个是命令窗口客户端,一个是MySQL Workbench(本书简称为Workbench)。虽然Workbench客户端
13、在使用方便性上优于命令窗口客户端,但是命令窗口客户端仍是MySQL数据库的重要基础知识,需要掌握其使用。本书主要以Workbench客户端为主讲解。任务二 MySQL客户端使用MySQL Workbench为数据库管理员、程序开发者和系统规划师提供可视化的SQL开发、数据库建模、以及数据库管理功能。分为三个主要功能模块:SQL Development、Data Modeling、Management等。Management中的功能主要有:查看服务器状态,包括连接数量、CPU使用率等;开启关闭服务器实例;查看日志,包括存储日志,错误日志、通知日志等、数据库的导入导出和恢复功能。任务二 MySQL
14、客户端使用(二)命令行启动和关闭MySQL服务器1启动可以从命令行手动启动MySQL服务器,启动控制台窗口并输入命令:C: C:Program FilesMySQLMySQL Server 5.6binmysqld注意:根据系统中MySQL安装位置的不同,前面的例子中使用的路径也不同。任务二 MySQL客户端使用2关闭停止MySQL服务器的命令如下:C: C:Program FilesMySQLMySQL Server 5.6binmysqladmin -u root shutdown该命令调用MySQL管理工具mysqladmin连接服务器并告知它关闭服务。该命令使用MySQL数据库的roo
15、t用户连接数据库,root用户是MySQL权限系统中的默认管理账户。任务二 MySQL客户端使用2退出成功地连接后,可以在mysql提示下输入QUIT (或q)随时退出:mysql QUIT任务二 MySQL客户端使用(四)MySQL命令show databases:找出在服务器上当前存在什么数据库use *:更换数据库show tables:查看现在的数据库中存在什么表;clear:明确当前输入语句;exit:退出MySQL;help:显示帮助信息;quit:退出MySQL;source:执行一个SQL脚本文件;status:从服务器获取MySQL的状态信息;show variables:查
16、询MySQL数据库变量。任务二 MySQL客户端使用(五)修改MySQL字符集“show variables like character%”set character_set_client = utf8;set character_set_connection = utf8;set character_set_database = utf8;set character_set_results = utf8;set character_set_server = utf8;小 结本章讲解了MySQL数据库管理系统软件的安装以及配置,详细讲解了MySQL Workbench客户端的使用,包括:连接
17、数据库、启动关闭数据库、查看服务器状态、使用SQL语言查看数据库实例、更换当前数据库实例、查看数据库实例中的表等。Workbench客户端是使用MySQL数据库的常用工具,是后续章节学习的基础,因此必须很好地掌握。本章还讲解了命令行客户端的使用,因为其使用不方便,本书采用较少。实验一MySQL的安装和操作实验目的1了解MySQL数据库下载和安装2安装最新版本MySQL数据库软件3掌握数据库使用的简单常用命令4熟悉Workbench的使用实验一MySQL的安装和操作实验条件计算机(电脑)Windows 7操作系统MySQL5.6数据库实验一MySQL的安装和操作2操作如下SQL语句。(1)sho
18、w database;(2)use mysql;(3)show tables;(4)select * from user;3在客户端Workbench上,关闭和启动数据库。4使用客户端Workbench查看MySQL数据库服务器状态。(四). 使用命令行客户端,进行MySQL数据库的基本操作。谢谢第二章 数据定义本章要点本章要点 1了解数据库、数据表、索引和SQL语言的基本概念 2掌握数据库和表定义的SQL语言 3熟悉索引创建和删除的SQL语言 4掌握Workbench中数据库、数据表和索引的创建引言MySQL数据库中,数据库对象的操作有两种方式:交互式和命令式。其中交互式方式是使用Workb
19、ench进行操作,比如数据库操作、表的操作、数据的操作和用户管理等等都是如此,因为交互式操作一般不要基础知识,只需要学习Workbench工具的使用即可,因此在任务实施过程中进行讲解。命令式方式需要学生掌握SQL语法知识,虽然使用Workbench可以简化知识,但是有些时候SQL语法是不可替代的,比如信息系统开发编写程序时,必须编写SQL语句,而不能使用Workbench,因此SQL语言以及Workbench工具都是学习过程中必须掌握的内容。任务一 数据库的操作基础知识 (一)SQL语言1简介 SQL,即StructuredQueryLanguage(即结构化查询语言),是关系数据库的标准语言
20、,SQL是一个通用的、功能极强的关系数据库语言。大多数数据库均用SQL作为共同的数据存取语言和标准接口,使不同数据库系统之间的互操作有了共同的基础。SQL可以对数据库进行任何的操作,比如:创建数据库、数据表和用户,添加和删除数据,编写数据库程序等。当前,几乎所有的关系数据库管理系统软件都支持SQL,许多软件厂商对SQL基本命令集还进行了不同程度的扩充和修改。2特点MySQL数据库 SQL之所以能够为用户和业界接受,并成为国际标准,是因为它是一个综合的、功能极强又简洁易学的语言。SQL集数据查询、数据操纵、数据定义和数据控制功能于一体,主要特点包括:(1)综合统一SQL集数据定义语言DDL、数据
21、操纵语言DML、数据控制语言DCL的功能于一体,语言风格统一,可以独立完成数据库生命周期中的全部活动。(2)高度非过程化非关系数据模型的数据操纵语言是“面向过程”的语言,只要提出“做什么”,而无须指明“怎么做”。SQL的操作过程由系统自动完成。这不但大大减轻了用户负担,而且有利于提高数据独立性。(3)面向集合的操作方式MySQL数据库 非关系数据模型采用的是面向记录的操作方式,操作对象是一条记录。SQL采用集合操作方式,不仅操作对象、查找结果可以是元组的集合,而且一次插入、删除、更新操作的对象也可以是元组的集合。(4)以同一种语法结构提供多种使用方式 SQL既是独立的语言,又是嵌入式语言。作为
22、独立的语言,可以独立地用于联机交互的使用方式;作为嵌入式语言,SQL语句能够嵌入到高级语言,供程序员设计程序时使用。两种不同方式下的SQL语法结构一致,提供了极大的灵活性与方便性。(5)语言简洁,易学易用 SQL功能极强,但由于设计巧妙,语言十分简洁,完成核心功能只用了9个动词。(二)SQL语法概述MySQL数据库 SQL输入由一系列命令组成,用一个分号;结尾。注意:SQL语句结尾的分号为英文分号,中文分号则出错。在SQL输入里可以有注释。1标识符和关键字 标识符和关键字是指SQL语言里有固定含义的单词,根据使用它们的命令的不同,它们标识表、字段或者其它数据库对象的名字。 SQL标识符和关键字
23、必须是以一个字母或下划线开头,并且只能包含字母、数字或者下划线的字符串。 注意:标识符和关键字都是与大小写无关的,但是关键字用大写,而标识符名字等用小写是一种好习惯。 数据库、表、索引、列和别名是标识符,每类标识符的最大长度和允许的字符如表2-1所示。MySQL数据库2注释 注释有两种方式:双划线开头的单行注释;C风格的多行注释。 -单行注释 /*多行注释 */ 注释在进一步的语法分析之前被从输入流删除并有效地用空白代替。(三)数据定义语言MySQL数据库 数据库系统的基本对象有数据库、表、视图和索引等。SQL的数据定义功能包括定义数据库、定义表、定义视图和定义索引,如图表2-2所示。 数据库
24、对象数据库、视图、索引在标准SQL中,一般不提供修改操作,而是采用先将它们删除,然后再创建的方式实现修改的方法。MySQL数据库提供了数据库、视图和索引的直接修改。四 数据库操作1创建数据库 创建数据库语法如下:MySQL数据库 mysqlCREATE DATABASE chap02; 注意:在Unix下,数据库名称是区分大小写的,这点不像SQL关键字,因此你必须总是以chap02访问数据库,而不能用Chap02、CHAP02或其它一些名称。对表名也是这样的。在Windows下,则不存在该限制,查询中,可以使用不同的大小写来引用数据库和表,但是,作为好的习惯,推荐使用与数据库和数据表创建时相同
25、的大小写引用相关对象。 创建数据库并不表示选定并使用它,你必须明确地操作。为了使chap02成为当前的数据库,使用这个命令: mysqlUSE chap02; Database changed 数据库只需要创建一次,但是必须在每次启动MySQL会话时在使用前先选择它。你可以根据上面的例子执行一个USE语句来实现。MySQL数据库2修改数据库(1)修改表名 ALTER DATABASE数据库名 DEFAULT CHARACTERSET编码方式 DEFAULT COLLATE编码方式_bin; ALTER DATABASE用于更改数据库的全局特性。CHARACTERSET子句用于更改默认的数据库字
26、符集。COLLATE子句用于更改默认的数据库排序。3删除数据库 DROP DATABASE IF EXISTS 数据库名 DROP DATABASE用于取消数据库中的所用表格和取消数据库。 注意:MySQL数据库 (1)使用此语句时要非常小心 (2)IF EXISTS用于防止当数据库不存在时发生错误。 (3)也可以使用DROP SCHEMA。MySQL数据库基础知识 (一)字段(列)类型 MySQL支持多种列类型:数值类型、日期/时间类型和字符串(字符)类型。1数值类型 MySQL支持所有标准SQL数值数据类型。这些类型包括严格数值数 据类型、近似数值数据类型。 MySQL整数类型包括:tin
27、yint、mediumint、int和bigint,每个整数类型的存储大小和范围如表2-3所示。MySQL数据库任务二 表的操作 MySQL还支持选择在该类型关键字后面的括号内指定整数值的显示宽度,例如 int(4)。 对于浮点列类型,在MySQL中单精度值使用4个字节,双精度值使用8个字节。 MySQL允许使用非标准语法: float(M,D)或 real(M,D)或 dobule(M,D)。这里,“(M,D)”表示该值一共显示M位整数,D表示小数位数。 decimal和numeric类型在MySQL中视为相同的类型。MySQL数据库2日期和时间类型 表示日期和时间的类型主要有:dateti
28、me、date、timestamp、time和year。 MySQL解释两位年值使用以下规则: 70-99范围的年值转换为1970-1999。 00-69范围的年值转换为2000-2069。 datetime、date和timestamp类型是相关的。 datetime类型同时包含日期和时间信息,以YYYY-MM-DDHH:MM:SS格式检索和显示值,支持的范围为1000-01-0100:00:00到9999-12-3123:59:59。 date类型只需要日期值而不需要时间部分,以YYYY-MM-DD格式检索和显示值,支持的范围是1000-01-01到9999-12-31。MySQL数据库
29、timestamp列类型的属性不固定,取决于MySQL版本和服务器运行的SQL模式。 time类型以HH:MM:SS格式检索和显示值,值范围可以从-838:59:59到838:59:59。 year类型是一个单字节类型用于表示年,以YYYY格式检索和显示year值,范围是1901到2155。 注意: (1)如果试图插入一个不合法的日期,MySQL将给出警告或错误。 (2)当MySQL遇到一个日期或时间类型的超出范围或对于该类型不合法的值时,将该值转换为该类的“零”值。3String类型 字符串类型指char、varchar、binary、varbinary、blob、text等。MySQL数据
30、库(1)char和varchar类型 char和varchar类型类似。 char和varchar类型声明的长度表示你想要保存的最大字符数。例如,char(30)可以占用30个字符。 char为定长字符串,长度可以为从0到255的任何值。当保存char值时,在它们的右边填充空格以达到指定的长度。 varchar为变长字符串,长度可以指定为0到65,535之间的值,varchar的最大有效长度由保存的字符串的值和使用的字符集确定,整体最大长度是65,532字节,varchar值保存时尾部不进行填充。(2)binary和varbinary类型 binary和varbinary类似于char和var
31、char,不同的是它们包含二进制字符串而不要非二进制字符串。MySQL数据库 binary和varbinary允许的最大长度一样,如同char和varchar,不同的是binary和varbinary的长度是字节长度而不是字符长度。 (3)blob和text类型 blob是一个二进制大对象,可以容纳可变数量的数据。有4种blob类型:tinyblob、blob、mediumblob和longblob。它们只是可容纳值的最大长度不同。 有4种text类型:tinytext、text、mediumtext和longtext。这些对应4种blob类型,有相同的最大长度和存储需求。MySQL数据库(4
32、选择正确的列类型 为了优化存储,在任何情况下均应使用最精确的类型。例如,如果列的值的范围为从1到99999,若使用整数,则mediumint unsigned是最好的类型。在所有可以表示该列值的类型中,该类型使用的存储最少。 使用双精度操作对decimal值进行计算。如果准确度不是太重要或速度为最高优先级,double类型即足够了。为了达到高精度,可以转换到保存在bigint中的定点类型。这样可以用64位整数进行所有计算,根据需要将结果转换回浮点值。(二)创建表 创建数据表语法基本格式如下: create table if not exists 表名 (列名 数据类型 列级完整性约束,MySQ
33、L数据库 (列名 数据类型 列级完整性约束, 表级完整性约束); 注意: (1)必须拥有表create权限,才能执行create语句。 (2)默认情况下,表被创建到当前的数据库中。如果表已存在,或者如果没有当前数据库,或者如果数据库不存在,则会出现错误。表名称被指定为“数据库名.表名”,以便在特定的数据库中创建表。不论是否有当前数据库,都可以通过这种方式创建表。 (3)如果表已存在,则使用关键词if not exists可以防止发生错误。(三)修改表 alter table用于更改原有表的结构。例如,您可以增加或删减列,创建或取消索引,更改原有列的类型,或重新命名列或表。您还可以更改表的评注和
34、表的类型。MySQL数据库 alter tableb表名 add 新列名数据类型完整性约束 drop 完整性约束 alter column 列名数据类型 允许进行的变更中,许多子句的语法与create table中的子句的语法相近。 可以在一个alter table语句里写入多个add、alter、drop和change子句,中间用逗号分开。 示例2-1:添加一个新的timestamp列,名称为d: alter table t2 add d timestamp; 示例2-2:在列d和列a中添加索引: alter table t2 addindex(d),addindex(a);MySQL数据库
35、 (示例2-3:删除列c: alter table t2 drop column c; 示例2-4:添加一个新的auto_increment整数列,名称为c: alter table t2 add c intunsigned not null auto_increment, add primary key(c); rename table tbl_name to new_tbl_name ,tbl_name2 to new_tbl_name2.(四)删除表 drop table if exists表名,表名; drop table用于删除一个或多个表。您必须有每个表的drop权限。所有的表数据
36、和表定义会被删除。 对于不存在的表,使用if exists用于防止错误发生。MySQL数据库任务三 索引操作基础知识 索引是数据库中用来提高查询性能的最常用工具。在MySQL数据库中,所有字段类型都可以建立索引,对相关字段使用索引是提高select操作性能的常用方法。(一)索引类型 MySQL索引类型包括: 1普通索引 这是最基本的索引,它没有任何限制,由key或index定义。 2唯一索引 唯一索引的索引列的值必须唯一,但允许有空值,由unique定义。 3主键索引 它是一种特殊的唯一索引,不允许有空值。一般是在建表的时候同时创建主键索引,在第五章完整性中讲解。 MySQL数据库4组合索引
37、组合索引也称作符合索引,是指在多列上创建的索引,不同于独立的多个单列索引。MySQL数据库从左到右使用组合索引中的字段列,一个查询可以只使用组合索引的一部分,但是只能是左侧部分,比如组合索引index(a,b,c),可以支持(a)、(a,b)和(a,b,c)进行查询,但是不支持(a,c)或(b,c)进行查询。(二)索引语法 索引可以在创建表时创建索引,也可以在创建表后通过修改表的方式创建索引,还可以直接创建索引。1创建表时创建索引 语法如下: create table 表名 (MySQL数据库 字段名 数据类型, 字段名 数据类型, 字段名 数据类型, index | key | unique
38、 (列名) asc | desc );2修改表时创建索引 语法如下: alter table 表名 add index | key | unique 索引名(列名)asc | desc;3直接创建索引 create unique index 索引名MySQL数据库 on 表名(字段名) asc | desc;4删除索引 (1)直接删除索引 删除索引语法: drop index 索引名 on 表名(2)修改表时删除索引 alter table 表名 drop index 索引名;(三)建立索引的时机 到这里我们已经学会了建立索引,那么我们需要在什么情况下建立索引呢?一般来说,在where和joi
39、n中出现的列需要建立索引,但也MySQL数据库不完全如此,因为MySQL只对,=,between,in,以及某些时候的like才会使用索引。(四)索引的不足之处 索引在提高查询效率上作用很大,但过多使用索引也会带来问题。 1虽然索引大大提高了查询速度,同时却会降低更新表的速度,因为更新表时,MySQL不仅要保存数据,还要保存索引文件。 2建立索引会占用磁盘空间的索引文件。如果你在一个大表上创建了多种组合索引,索引文件会膨胀的很快。 索引只是提高效率的一个因素,如果你的MySQL有大数据量的表,就需要花时间研究建立最优秀的索引,或优化查询语句。MySQL数据库实验二 数据定义实验实验目的 熟悉M
40、ySQL的SQL命令窗口和Workbench的使用。 掌握SQL的数据定义语言的使用;理解数据库对象的概念。实验条件 计算机(电脑) Windows 7操作系统 MySQL5.6数据库实验内容 1在MySQL命令窗口中创建chap2数据库。 2在MySQL命令窗口中创建student表,该表的结构描述如下。MySQL数据库3在Workbench环境下,使用SQL语言定义course表,该表的结构描述如下:MySQL数据库 4在Workbench环境下,使用交互式方式定义sc表,该表的结构描述如下: 5使用alter table语句修改student表为其增加一个birthday列,类型为dat
41、e。 6使用create index语句在student表的sage列上建立一个名为age_index的索引,要求索引为升序。MySQL数据库 谢谢追求第三章 数据更新本章要点本章要点1了解数据操作的概念2掌握数据插入、修改和删除操作的SQL语句3. 掌握SQL语句在Workbench中的操作 引言数据更新操作是维护数据库中数据的操作,其包含三种具体操作:插入数据、修改数据和删除数据,对应的SQL语句为insert、update、delete语句。本章内容比较简单,主要掌握insert、update、delete三条SQL语句。任务一 数据插入MySQL数据库三、基础知识 (一)数据插入SQL
42、语法 1一条记录 insert into 表名(属性列1, 属性列2, ) values(值1, 值2, ); 注意: (1)定义了not null的属性列必须赋值或有默认值,否则会报错; (2)当into子句中属性列包含了表的所有列,则可以省略不写,此时值1,值2的顺序应该与表中属性列的原始顺序一致。 (3)值1,值2需要和属性列1,属性列2的类型兼容,比如如果属性列1是整数类型,则值1应该是整数或兼容类型。2、多条记录insert into 表名(属性列1, 属性列2, )values(值1, 值2, ),(值1, 值2, ),(值1, 值2, );新记录的属性列1的值为值1,属性列2的值
43、为值2,以此类推。into子句中没有出现的属性列,新记录中在这些列上将取默认值,如果该列没有默认值则取null值。MySQL数据库3、插入查询结果insert into 表名(属性列1,属性列2,)子查询把子查询结果插入到表中,关于查询在第四章中讲解。MySQL数据库任务二 数据修改基础知识一)数据修改语法 update 表名 set 列名1= 值1,列名2=值2, where 条件 update语法可以用新值更新原有表行中的各列。set子句指示修改哪些列和给予哪些值。where子句指定应更新哪些行。 注意: (1)如果没有where子句,则更新所有的行。 (2)如果列设置为其当前值,则不会更
44、新。(二)示例1修改学号为150312106的学生性别为女。MySQL数据库 update student set gender=女 where sno=150312106;2修改机械学院的学生年龄为18。 update student set age=18 where depart=机械;3修改王美霞同学的年龄为22,院系为生物。 update student set age=22, depart=生物 where name= 王美霞;MySQL数据库任务三 数据删除基础知识(一)数据插入SQL语法 删除语句格式为: delete from 表名 where 条件 delete用于删除数据表
45、中满足由where给定的条件的行,,并返回被删除的记录的数目。如果delete语句包括一个order by子句,则各行按照子句中指定的顺序进行删除。 注意:如果没有where子句,则所有的行都被删除。 删除所有行有一个更快的方法,即使用truncate table。 truncate table 表名MySQL数据库(二)truncate和delete的区别 truncate table用于完全清空一个表。从逻辑上说,该语句与用于删除所有行的delete语句等同,但是在有些情况下,两者在使用上有所不同。 1使用truncate table重新设置auto increment计数器,设置时不考虑
46、是否有外键限制。2删减操作会取消并重新创建表,这比一行一行的删除行要快很多。3删减操作不能保证对事务是安全的;在进行事务处理和表锁定的过程中尝试进行删减,会发生错误。4被删除的行的数目没有被返回。 truncate table把表重新创建为一个空表,即使数据或索引文件已经被破坏。MySQL数据库(三)示例1按照主键删除 删除学号为150312101的学生记录 delete from student where sno=150312101;2按照外键删除 删除计算机学院所有学生的信息 delete from student where depart=计算机;3其他条件的删除MySQL数据库 删除
47、性别为女的学生 delete from student where gender=女;MySQL数据库实验三 数据更新实验实验目的 掌握数据更新的insert、update好delete三个SQL语句。 掌握在Workbench进行数据维护。 实验条件 计算机(电脑) Windows 7操作系统 MySQL5.6数据库实验内容 1创建chap3数据库。 2创建数据表student、course和sc,表的结构描述如下。MySQL数据库MySQL数据库MySQL数据库3插入数据 使用insert语句将下面三个表中的数据插入到相应的表中。 其中student插入如下数据。 Course插入如下数据
48、。Sc表插入如下数据。MySQL数据库3修改数据 (1)修改魏云鹏的年龄为19。 (2)所有年龄加上1岁。 (3)计算机的性别修改为女。4. 删除数据 删除学号为150312101的学生。 删除计算机的学生。MySQL数据库 谢谢追求第四章 数据查询本章要点本章要点1. 了解数据查询的相关概念:单表查询、多表查询、子查询、集合查询、系统函数和视图。2. 掌握单表查询、多表查询的SQL语法,并会使用相关SQL在Workbench或命令客户端中进行查询。3. 了解子查询和集合查询语句。4. 了解系统函数的功能,熟悉常用的系统函数,应用函数进行有关信息查询。5. 了解视图的优点,掌握视图的创建和应用
49、。6. 应用SQL语句解决实际问题。引言数据库查询是数据库的核心知识和技能,数据查询可以简单分为单表查询、多表查询和子查询。单表查询相对比较简单,但是知识点较多,需要理解记忆;多表查询和子查询知识较难,需要加深理解;另外MySQL数据库提供了丰富的系统函数,而函数通常在查询中使用;视图是数据库的重要内容,使用广泛,而视图的核心就是一个查询,因此把系统函数和视图内容合并到了本章。本章讲解采用“简易成绩管理系统”数据库,本数据库只有三个表,分别为学生表、课程表和选课表,表的创建在任务一的任务实施里有详细代码。 任务一 单表查询基础知识 (一)单表查询SQL一般格式 select all | dis
50、tinct 列表达式 , 列表达式 from 表名 where 条件表达式 group by 列名 having 条件表达式 order by 列名 asc | desc 含义:从from表名中找出满足where条件表达式的记录,按照group列分组,按照order列排序,显示查询结果数据。MySQL数据库(二)列的选择 1未引用表查询 select可以用于未引用表的查询。示例如下: 示例4-1: 输入:select 1 + 1; 输出:2 2. 选择表中的若干列 (1)查询指定列 查询指定列在select后面指定想要检索列并指定输出顺序,语法格式如下:MySQL数据库 select 列名1,
51、 列名2, 列名3, from 表名 示例4-2:查询全体学生的学号、姓名和性别 select sno,name,gender from student 示例4-3:查询全体学生的姓名、学号 select name,sno from student(2)查询全部列 将表中所有属性列都选出来,方法有二:一是在select后面罗列所有列名,二是在select后面使用*代替所有列。 select * from 表名MySQL数据库 或 select 列名, 列名, 列名 from 表名 示例4-4:查询全体学生的详细信息 select * from student(3)查询经过计算的列 select
52、 子句的列名可以是表中的属性列,也可以是列的表达式 示例4-5:查看学生的出生年份。 假如当前年份为2015年,则学生的出生年份应为2015-age。 select sno, name, 2015-age from student;MySQL数据库(4)列别名 可以给列和列的表达式定义别名,别名可以是英文也可以是中文。 示例4-6:出生年份使用别名。 select sno, name, 2015-age 出生年份 from student。 (5)消除取值重复的行 要从查询结果表中移除重复值,需要在Select后面插入关键字distinc。 示例4-7:查询student表中学生属于哪些班级。
53、 select distinct depart from student;MySQL数据库(三)行的选择 查询当中可以指定想要查看的任意行,使用where子句指定选择行的条件。where子句包含逻辑表达式,表达式为真的行将成为查询结果表中的一行,反之则被忽略。1比较大小示例4-8:查询计算机学院所有学生的姓名MySQL数据库 select name from student where depart=计算机; 示例4-9:查询年龄小于21的学生信息 select * from student where age2;MySQL数据库 注意: (1)在select后边除了聚集函数外,一般只能出现分
54、组列。 (2)对行进行选择时,大多使用where子句,但是在对聚集函数选择(限制)时,则使用having子句。(七)返回部分查询结果 当查询结果过多时,需要返回部分查询结果,使用Limit实现,语法如下: limit offset, rows 其中offset表示其实行号,从0开始,offset可以省略,默认为0;rows表示返回的行数。 示例4-20:查询第1-3行学生的信息 Select * From studentMySQL数据库 Limit 1,3;(八)复合条件查询 当查询限定多个查询条件时,需要分析多个条件之间的逻辑关系。主要的关系有:and、or、not。And连接的两个表达式同
55、时为真时,复合表达式为真,其余为假。Or连接的两个表达式只要有一个为真,则复合表达式为真。Not将逻辑表达式的值进行翻转。 示例4-21:查询年龄大于20,性别为男的学生信息 Select * from student Where age20 and gender=男; 示例4-22:查询计算机、生物学院的学生信息 Seledct * from student Where depart=计算机 or depart=生物;MySQL数据库任务二 连接查询基础知识(一)连接查询 连接查询就是将多个表中的数据结合在一起进行查询,而连接通常是 有条件的,连接条件格式: 表名1.列名1 表名2.列名2。
56、 其中比较运算符有:=、=、 (select age from student where name=王美霞)MySQL数据库任务四 集合查询基础知识 多个查询的结果可以进行集合操作,集合操作包括三种操作:并操作、交操作和差操作。这些操作都是两个或多于两个查询结果的结合操作,概念和集合理论中的概念相同,只是把查询结果看成集合,而查询结果中的行看成元素即可。 union: 将多个查询结果的行合并,作为单个结果集返回,并移除重的行。 union all: 将多个查询结果的行合并,不论是否有重复的行。 except: 返回只在except左侧存在但右侧不存在的行的集合。 intersect: 返回两
57、个查询结果都存在的行。(一)并操作 并操作关键字为union,union用于把来自许多select语句的结果组合到一个结果集合中,语法如下:MySQL数据库 select union all | distinct select union all | distinct select 列于每个select语句的对应位置的被选择的列应该类型相同。 如果您对union不使用关键词all,则所有返回的行都是唯一的,如同您已经对整个结果集合使用了distinct。如果您指定了all,您会从所有用过的select语句中得到所有匹配的行。 示例4-32:查询年龄大于20或性别为男的学生信息。 select
58、* from studentMySQL数据库 where age20 union select * from student where gender=男;(二)交操作 交操作关键字为intersect,语法如下: select intersect all | distinct select . intersect all | distinct select MySQL数据库 示例4-33:查询年龄大于20并且性别为男的学生。 select * from student where age20 intersect select * from student where gender=男;(三)
59、差操作 差操作关键字为except,语法如下: select except all | distinctMySQL数据库 select except all | distinct select 示例4-34:查询大于20岁的不是男生的学生信息。 select * from student where age20 EXCEPT select * from student where gender=男;MySQL数据库任务五 函数查询基础知识 当前主流数据库都提供了丰富的系统函数,MySQL数据库也不例外,主要包括字符串函数、数学函数、日期函数等。限于篇幅,本书简单介绍比较常用的函数。(一)字符串
60、函数 字符串函数如表4-3所示。MySQL数据库MySQL数据库 MySQL数据库(二)数值函数 数字函数如表4-4所示。MySQL数据库MySQL数据库(三)日期和时间函数 日期和时间函数如表4-5所示。MySQL数据库MySQL数据库MySQL数据库MySQL数据库 (四)其他函数 其他数字函数如表4-6所示。MySQL数据库任务六 视图基础知识(一)视图概念 视图是从一个或几个基本表(或视图)导出的表。它与基本表不同,是一个虚表。数据库中只存放视图的定义,而不存放视图对应的数据,这些数据仍存放在原来的基本表中。所以基本表中的数据发生变化,从视图中查询出的数据也就随之改变了。 视图一经定义
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025双方协商离婚合同范本
- 肥料知识普及与教育考核试卷
- 道路货物运输保险与理赔考核试卷
- 运动防护用具的虚拟现实技术应用考核试卷
- 2024年碳纤维针刺预制件项目投资申请报告代可行性研究报告
- 消费者权益保护仲裁调解服务协议
- 新能源汽车充电桩安全认证与施工建设协议
- 民办高等教育机构师资派遣及教学辅助服务协议
- 美国职业篮球联赛合作伙伴合同
- 质押财产补充协议范本
- 渔业船员安全培训课件
- 2024-2025学年高中英语人教版选择性必修第四册词性转换练习
- 机器智能如何促进科学研究
- 金属非金属地下矿山紧急避险系统建设规范培训
- 北京海淀2025届高考语文三模试卷含解析
- 地域文化(专)-终结性考试-国开(SC)-参考资料
- 《卵巢无性细胞瘤》课件
- 燃气锅炉房工程施工方案
- PRP注射治疗膝关节炎
- 第一次电力工程例会发言稿
- 上海市安装工程预算定额(2000)工程量计算规则
评论
0/150
提交评论