




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 MySQL数据库技术大全目 录 TOC o 1-3 h z u HYPERLINK l _Toc16059532 一、数据库概要 PAGEREF _Toc16059532 h 5 HYPERLINK l _Toc16059533 1.1、发展历史 PAGEREF _Toc16059533 h 5 HYPERLINK l _Toc16059534 1.1.1、人工处理阶段 PAGEREF _Toc16059534 h 5 HYPERLINK l _Toc16059535 1.1.2、文件系统 PAGEREF _Toc16059535 h 6 HYPERLINK l _Toc16059536 1
2、.1.3、数据库管理系统 PAGEREF _Toc16059536 h 6 HYPERLINK l _Toc16059537 1.2、常见数据库技术品牌、服务与架构 PAGEREF _Toc16059537 h 9 HYPERLINK l _Toc16059538 1.3、数据库分类 PAGEREF _Toc16059538 h 11 HYPERLINK l _Toc16059539 1.3.1、关系型数据库 PAGEREF _Toc16059539 h 11 HYPERLINK l _Toc16059540 1.3.2、非关系型数据库 PAGEREF _Toc16059540 h 11 HY
3、PERLINK l _Toc16059541 1.4、数据库规范化 PAGEREF _Toc16059541 h 12 HYPERLINK l _Toc16059542 1.4.1. 什么是范式 PAGEREF _Toc16059542 h 12 HYPERLINK l _Toc16059543 1.4.2. 三大范式 PAGEREF _Toc16059543 h 13 HYPERLINK l _Toc16059544 1.4.3. 范式与效率 PAGEREF _Toc16059544 h 17 HYPERLINK l _Toc16059545 二、MySQL介绍 PAGEREF _Toc16
4、059545 h 18 HYPERLINK l _Toc16059546 2.1、MySQL概要 PAGEREF _Toc16059546 h 18 HYPERLINK l _Toc16059547 2.2、系统特性 PAGEREF _Toc16059547 h 19 HYPERLINK l _Toc16059548 2.3、存储引擎 PAGEREF _Toc16059548 h 20 HYPERLINK l _Toc16059549 三、快速安装运行MySQL数据库 PAGEREF _Toc16059549 h 22 HYPERLINK l _Toc16059550 3.1、使用绿色版 PA
5、GEREF _Toc16059550 h 22 HYPERLINK l _Toc16059551 3.1.1、设置mysql远程访问 PAGEREF _Toc16059551 h 26 HYPERLINK l _Toc16059552 3.1.2、修改mysql用户密码 PAGEREF _Toc16059552 h 27 HYPERLINK l _Toc16059553 3.1.2、安装服务 PAGEREF _Toc16059553 h 28 HYPERLINK l _Toc16059554 3.2、使用安装版 PAGEREF _Toc16059554 h 30 HYPERLINK l _To
6、c16059555 四、使用GUI操作MySQL PAGEREF _Toc16059555 h 45 HYPERLINK l _Toc16059556 4.1、关系型数据库的典型概念 PAGEREF _Toc16059556 h 45 HYPERLINK l _Toc16059557 4.2、登录数据库 PAGEREF _Toc16059557 h 47 HYPERLINK l _Toc16059558 4.3、创建数据库 PAGEREF _Toc16059558 h 49 HYPERLINK l _Toc16059559 4.4、创建表 PAGEREF _Toc16059559 h 50 H
7、YPERLINK l _Toc16059560 4.5、管理数据 PAGEREF _Toc16059560 h 53 HYPERLINK l _Toc16059561 4.5.1、添加数据 PAGEREF _Toc16059561 h 53 HYPERLINK l _Toc16059562 4.5.2、删除数据 PAGEREF _Toc16059562 h 54 HYPERLINK l _Toc16059563 4.5.3、修改表结构 PAGEREF _Toc16059563 h 55 HYPERLINK l _Toc16059564 4.5.4、外键 PAGEREF _Toc16059564
8、 h 56 HYPERLINK l _Toc16059565 4.5.5、唯一键 PAGEREF _Toc16059565 h 60 HYPERLINK l _Toc16059566 4.6、上机练习 PAGEREF _Toc16059566 h 61 HYPERLINK l _Toc16059567 五、使用SQL访问MySQL数据库 PAGEREF _Toc16059567 h 63 HYPERLINK l _Toc16059568 5.1、增加数据 PAGEREF _Toc16059568 h 63 HYPERLINK l _Toc16059569 5.2、查询数据 PAGEREF _T
9、oc16059569 h 63 HYPERLINK l _Toc16059570 5.2.1、表达式与条件查询 PAGEREF _Toc16059570 h 64 HYPERLINK l _Toc16059571 5.2.2、聚合函数 PAGEREF _Toc16059571 h 65 HYPERLINK l _Toc16059572 5.3、删除数据 PAGEREF _Toc16059572 h 66 HYPERLINK l _Toc16059573 5.4、更新数据 PAGEREF _Toc16059573 h 66 HYPERLINK l _Toc16059574 5.5、修改表 PAG
10、EREF _Toc16059574 h 66 HYPERLINK l _Toc16059575 5.5.1、添加列 PAGEREF _Toc16059575 h 67 HYPERLINK l _Toc16059576 5.5.2、修改列 PAGEREF _Toc16059576 h 67 HYPERLINK l _Toc16059577 5.5.3、删除列 PAGEREF _Toc16059577 h 67 HYPERLINK l _Toc16059578 5.5.4、重命名表 PAGEREF _Toc16059578 h 68 HYPERLINK l _Toc16059579 5.5.5、删
11、除表 PAGEREF _Toc16059579 h 68 HYPERLINK l _Toc16059580 5.5.6、删除数据库 PAGEREF _Toc16059580 h 68 HYPERLINK l _Toc16059581 5.5.7、一千行MySQL笔记 PAGEREF _Toc16059581 h 68 HYPERLINK l _Toc16059582 5.5.8、常用的SQL PAGEREF _Toc16059582 h 104随着移动互联网的结束与人工智能的到来大数据变成越来越重要,下一个成功者应该是拥有海量数据的,数据与数据库你应该知道。一、数据库概要数据库(Databas
12、e)是存储与管理数据的软件系统,就像一个存入数据的物流仓库。在商业领域,信息就意味着商机,取得信息的一个非常重要的途径就是对数据进行分析处理,这就催生了各种专业的数据管理软件,数据库就是其中的一种。当然,数据库管理系统也不是一下子就建立起来,它也是经过了不断的丰富和发展,才有了今天的模样。1.1、发展历史1.1.1、人工处理阶段在20世纪50年代中期以前的计算机诞生初期,其处理能力很有限,只能够完成一些简单的运算,数据处理能力也很有限,这使得当时的计算机只能够用于科学和工程计算。计算机上没有专用的管理数据的软件,数据由计算机或处理它的程序自行携带。当数据的存储格式、读写路径或方法发生变化的时候
13、,其处理程序也必须要做出相应的改变以保持程序的正确性。1.1.2、文件系统20世纪50年代后期到60年代中期,随着硬件和软件技术的发展,计算机不仅用于科学计算,还大量用于商业管理中。在这一时期,数据和程序在存储位置上已经完全分开,数据被单独组织成文件保存到外部存储设备上,这样数据文件就可以为多个不同的程序在不同的时间所使用。虽然程序和数据在存储位置上分开了,而且操作系统也可以帮助我们对完成了数据的存储位置和存取路径的管理,但是程序设计仍然受到数据存储格式和方法的影响,不能够完全独立于数据,而且数据的冗余较大。1.1.3、数据库管理系统从20世纪70年代以来,计算机软硬件技术取得了飞跃式的发展,
14、这一时期最主要的发展就是产生了真正意义上的数据库管理系统,它使得应用程序和数据之间真正的实现的接口统一、数据共享等,这样应用程序都可以按照统一的方式直接操作数据,也就是应用程序和数据都具有了高度的独立性。1.2、常见数据库技术品牌、服务与架构发展了这么多年市场上出现了许多的数据库系统,最强的个人认为是Oracle,当然还有许多如:DB2、Microsoft SQL Server、MySQL、SyBase等,下图列出常见数据库技术品牌、服务与架构。1.3、数据库分类数据库通常分为层次式数据库、网络式数据库和关系式数据库三种。而不同的数据库是按不同的数据结构来联系和组织的。而在当今的互联网中,最常
15、见的数据库模型主要是两种,即关系型数据库和非关系型数据库。1.3.1、关系型数据库当前在成熟应用且服务与各种系统的主力数据库还是关系型数据库。代表:Oracle、SQL Server、MySQL1.3.2、非关系型数据库随着时代的进步与发展的需要,非关系型数据库应运而生。代表:Redis、MongodbNoSQL数据库在存储速度与灵活性方面有优势,也常用于缓存。1.4、数据库规范化经过一系列的步骤,我们现在终于将客户的需求转换为数据表并确立这些表之间的关系,那么是否我们现在就可以在开发中使用呢?答案否定的,为什么呢!同一个项目,很多人参与了需求的分析,数据库的设计,不同的人具有不同的想法,不同
16、的部门具有不同的业务需求,我们以此设计的数据库将不可避免的包含大量相同的数据,在结构上也有可能产生冲突,在开发中造成不便。1.4.1. 什么是范式要设计规范化的数据库,就要求我们根据数据库设计范式也就是数据库设计的规范原则来做。范式可以指导我们更好地设计数据库的表结构,减少冗余的数据,借此可以提高数据库的存储效率,数据完整性和可扩展性。设计关系数据库时,遵从不同的规范要求,设计出合理的关系型数据库,这些不同的规范要求被称为不同的范式,各种范式呈递次规范,越高的范式数据库冗余越小。目前关系数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴德斯科范式(BCNF)、第四
17、范式(4NF)和第五范式(5NF,又称完美范式)。满足最低要求的范式是第一范式(1NF)。在第一范式的基础上进一步满足更多规范要求的称为第二范式(2NF),其余范式以次类推。一般说来,数据库只需满足第三范式(3NF)就行了。1.4.2. 三大范式第一范式(1NF)所谓第一范式(1NF)是指在关系模型中,对列添加的一个规范要求,所有的列都应该是原子性的,即数据库表的每一列都是不可分割的原子数据项,而不能是集合,数组,记录等非原子数据项。即实体中的某个属性有多个值时,必须拆分为不同的属性。在符合第一范式(1NF)表中的每个域值只能是实体的一个属性或一个属性的一部分。简而言之,第一范式就是无重复的域
18、。例如:表1-1中,其中”工程地址”列还可以细分为省份,城市等。在国外,更多的程序把”姓名”列也分成2列,即”姓”和“名”。虽然第一范式要求各列要保存原子性,不能再分,但是这种要求和我们的需求是相关联的,如上表中我们对”工程地址”没有省份,城市这样方面的查询和应用需求,则不需拆分,”姓名”列也是同样如此。表1-1 原始表工程号工程名称工程地址员工编号员工名称薪资待遇职务P001港珠澳大桥广东珠海E0001Jack6000/月工人P001港珠澳大桥广东珠海E0002Join7800/月工人P001港珠澳大桥广东珠海E0003Apple8000/月高级技工P002南海航天海南三亚E0001Jack
19、5000/月工人第二范式(2NF)在1NF的基础上,非Key属性必须完全依赖于主键。第二范式(2NF)是在第一范式(1NF)的基础上建立起来的,即满足第二范式(2NF)必须先满足第一范式(1NF)。第二范式(2NF)要求数据库表中的每个实例或记录必须可以被唯一地区分。选取一个能区分每个实体的属性或属性组,作为实体的唯一标识。第二范式(2NF)要求实体的属性完全依赖于主关键字。所谓完全依赖是指不能存在仅依赖主关键字一部分的属性,如果存在,那么这个属性和主关键字的这一部分应该分离出来形成一个新的实体,新实体与原实体之间是一对多的关系。为实现区分通常需要为表加上一个列,以存储各个实例的唯一标识。简而
20、言之,第二范式就是在第一范式的基础上属性完全依赖于主键。例如:表1-1中,一个表描述了工程信息,员工信息等。这样就造成了大量数据的重复。按照第二范式,我们可以将表1-1拆分成表1-2和表1-3:l 工程信息表:(工程编号,工程名称,工程地址):表1-2 工程信息表工程编号工程名称工程地址P001港珠澳大桥广东珠海P002南海航天海南三亚l 员工信息表(员工编号,员工名称,职务,薪资水平):表1-3 员工信息表员工编号员工姓名职务薪资水平E0001Jack工人3000/月E0002Join工人3000/月E0003Apple高级技工6000/月这样,表1-1就变成了两张表,每个表只描述一件事,清
21、晰明了。第三范式(3NF)第三范式是在第二范式基础上,更进一层,第三范式的目标就是确保表中各列与主键列直接相关,而不是间接相关。即各列与主键列都是一种直接依赖关系,则满足第三范式。第三范式要求各列与主键列直接相关,我们可以这样理解,假设张三是李四的兵,王五则是张三的兵,这时王五是不是李四的兵呢?从这个关系中我们可以看出,王五也是李四的兵,因为王五依赖于张三,而张三是李四的兵,所以王五也是。这中间就存在一种间接依赖的关系而非我们第三范式中强调的直接依赖。现在我们来看看在第二范式的讲解中,我们将表1-1拆分成了两张表。这两个表是否符合第三范式呢。在员工信息表中包含:”员工编号”、”员工名称”、”职
22、务”、”薪资水平”,而我们知道,薪资水平是有职务决定,这里”薪资水平”通过”职务”与员工相关,则不符合第三范式。我们需要将员工信息表进一步拆分,如下:l 员工信息表:员工编号,员工名称,职务l 职务表:职务编号,职务名称,薪资水平现在我们已经了解了数据库规范化设计的三大范式,下面我们再来看看对表1-1优化后的数据表:员工信息表(Employee)员工编号员工姓名职务编号E0001Jack1E0002Join1E0003Apple2工程信息表(ProjectInfo)工程编号工程名称工程地址P001港珠澳大桥广东珠海P002南海航天海南三亚职务表(Duty)职务编号职务名称工资待遇1工人3000
23、/月2高级技工6000/月工程参与人员记录表(Project_ Employee_info)编号工程编号人员编号1P001E00012P001E00023P002E0003通过对比我们发现,表多了,关系复杂了,查询数据变的麻烦了,编程中的难度也提高了,但是各个表中内容更清晰了,重复的数据少了,更新和维护变的更容易了,哪么如何平衡这种矛盾呢?1.4.3. 范式与效率在我们设计数据库时,设计人员、客户、开发人员通常对数据库的设计有一定的矛盾,客户更喜欢方便,清晰的结果,开发人员也希望数据库关系比较简单,降低开发难度,而设计人员则需要应用三大范式对数据库进行严格规范化,减少数据冗余,提高数据库可维护
24、性和扩展性。由此可以看出,为了满足三大范式,我们数据库设计将会与客户、开发人员产生分歧,所以在实际的数据库设计中,我们不能一味的追求规范化,既要考虑三大范式,减少数据冗余和各种数据库操作异常,又要充分考虑到数据库的性能问题,允许适当的数据库冗余。二、MySQL介绍2.1、MySQL概要MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软
25、件之一。MySQL是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。MySQL官网:/MySQL下载:/downloads/2.2、系统特性1、使用 C和 C+编写,并使用了多种编译器进行测试,保证了源代码的可移植性。2、支持 AIX、FreeBSD、HP-UX、Linux、Mac
26、OS、NovellNetware、OpenBSD、OS/2 Wrap、Solaris、Windows等多种操作系统。3、为多种编程语言提供了 API。这些编程语言包括 C、C+、Python、Java、Perl、PHP、Eiffel、Ruby,.NET和 Tcl 等。4、支持多线程,充分利用 CPU 资源。5、优化的 SQL查询算法,有效地提高查询速度。6、既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中。7、提供多语言支持,常见的编码如中文的 GB 2312、BIG5,日文的 Shift_JIS等都可以用作数据表名和数据列名。8、提供 TCP/I
27、P、ODBC 和 JDBC等多种数据库连接途径。9、提供用于管理、检查、优化数据库操作的管理工具。10、支持大型的数据库。可以处理拥有上千万条记录的大型数据库。11、支持多种存储引擎。12、MySQL 是开源的,所以你不需要支付额外的费用。13、MySQL 使用标准的 SQL数据语言形式。14、MySQL 对 PHP 有很好的支持,PHP是目前最流行的 Web 开发语言。15、MySQL是可以定制的,采用了 GPL协议,你可以修改源码来开发自己的 MySQL 系统。16、在线 DDL/更改功能,数据架构支持动态应用程序和开发人员灵活性(5.6新增)17、复制全局事务标识,可支持自我修复式集群(
28、5.6新增)18、复制无崩溃从机,可提高可用性(5.6新增)19、复制多线程从机,可提高性能(5.6新增)20、3倍更快的性能(5.7新增)21、新的优化器(5.7新增)22、原生JSON支持(5.7新增)23、多源复制(5.7新增)24、GIS的空间扩展(5.7新增)2.3、存储引擎MySQL数据库根据应用的需要准备了不同的引擎,不同的引擎侧重点不一样,区别如下:MyISAM MySQL 5.0 之前的默认数据库引擎,最为常用。拥有较高的插入,查询速度,但不支持事务InnoDB 事务型数据库的首选引擎,支持ACID事务,支持行级锁定, MySQL 5.5 起成为默认数据库引擎BDB源 自 B
29、erkeley DB,事务型数据库的另一种选择,支持Commit 和Rollback 等其他事务特性Memory 所有数据置于内存的存储引擎,拥有极高的插入,更新和查询效率。但是会占用和数据量成正比的内存空间。并且其内容会在 MySQL 重新启动时丢失Merge 将一定数量的 MyISAM 表联合而成一个整体,在超大规模数据存储时很有用Archive 非常适合存储大量的独立的,作为历史记录的数据。因为它们不经常被读取。Archive 拥有高效的插入速度,但其对查询的支持相对较差Federated 将不同的 MySQL 服务器联合起来,逻辑上组成一个完整的数据库。非常适合分布式应用Cluster
30、/NDB 高冗余的存储引擎,用多台数据机器联合提供服务以提高整体性能和安全性。适合数据量大,安全和性能要求高的应用CSV 逻辑上由逗号分割数据的存储引擎。它会在数据库子目录里为每个数据表创建一个 .csv 文件。这是一种普通文本文件,每个数据行占用一个文本行。CSV 存储引擎不支持索引。BlackHole 黑洞引擎,写入的任何数据都会消失,一般用于记录 binlog 做复制的中继EXAMPLE 存储引擎是一个不做任何事情的存根引擎。它的目的是作为 MySQL 源代码中的一个例子,用来演示如何开始编写一个新存储引擎。同样,它的主要兴趣是对开发者。EXAMPLE 存储引擎不支持编索引。另外,MyS
31、QL 的存储引擎接口定义良好。有兴趣的开发者可以通过阅读文档编写自己的存储引擎。三、快速安装运行MySQL数据库MySQL以前一直是开源免费的,被Oracle收购后有些变化:以前的版本都是免费的,社区版按GPL协议开源免费,商业版提供更加丰富的功能,但收费。社区版的下载地址:/downloads/(免费)企业版的下载地址:/downloads/(收费)3.1、使用绿色版为了方便快捷的使用MySQL我已经准备好了一个绿化了的MySQL,解压后就可以直接使用,不需要任何配置。下载地址1:/s/1hrS5KUw密码: sug9下载地址2:/detail/zhangguo5/9773842下载后直接解
32、压:点击启动PStart.exe这是一个自定义菜单的小工具,为了整理资源用的。里面有两个MySQL的绿色版软件5.0,5.5Navicat for MySQL是一个数据库客户端管理工具点击启动PStart.exe后的结果如下:点击启动MySQL服务,运行Navicat for MySQL即可。*注意:上面的PStart只是一个整理文档资料的工具,并非必要,如果启动时有错误或为空时,可以直接关闭,直接启动MySQL服务,如:mysql_start.bat用于启动MySql数据库,mysql_stop.bat用于关闭MySql数据库。开发工具的启动方式也一样,如下所示:navicat.exe用于启
33、动Navicat数据库客户端,最好发送快捷方式到桌面,省去每次打开文件夹的麻烦。3.1.1、设置mysql远程访问执行mysql 命令进入mysql 命令模式,执行如下SQL代码mysql use mysql; mysql GRANT ALL ON *.* TO admin% IDENTIFIED BY admin WITH GRANT OPTION;#这句话的意思 ,允许任何IP地址(上面的 % 就是这个意思)的电脑 用admin帐户 和密码(admin)来访问这个MySQL Server#必须加类似这样的帐户,才可以远程登陆。root帐户是无法远程登陆的,只可以本地登陆3.1.2、修改my
34、sql用户密码1、mysqladmin命令格式如下(其中,USER为用户名,PASSWORD为新密码):mysqladmin -u USER -p password PASSWORD该命令之后会提示输入原密码,输入正确后即可修改。例如,设置root用户的密码为123456,则mysqladmin -u root -p password 1234562、UPDATE user 语句这种方式必须是先用root帐户登入mysql,然后执行:UPDATE user SET password=PASSWORD(123456) WHERE user=root;FLUSH PRIVILEGES;3、SET
35、PASSWORD 语句这种方式也需要先用root命令登入mysql,然后执行:SET PASSWORD FOR root=PASSWORD(123456);4.root密码丢失的情况使用 MySQL 自带的一个工具MySQL GUI Tools,我一直用的是5.0版本的。在安装目录中运行一个程序 MySQLSystemTrayMonitor.exe,运行完后在系统托盘会出现图标。如果MySQL服务尚未安装,则不会出现,可先通过ActionManage MySQL Instances 先配置和安装服务。如果已经安装服务,鼠标右键点击后,会出现Configure Instance的菜单。点击后出现
36、如下MySQL Administrator窗口:假如原来的服务配置都正常的情况下,选中左侧列表中的“启动变量”,并在相应的右侧标签中选择“安全”,勾选“禁用grant表”,然后“应用更改”。并回到左侧的“服务器控制”,和右侧相应的“开始/停止服务”标签,点击启动服务。此时,连接mysql已经不需要用户名和密码了,你可以修改root密码。3.1.2、安装服务首先我们先进入mysql的安装目录下的bin目录、之后打开DOS命令窗口,进入该目录下(一定要进入该目录,否则操作错误)执行DOS命令:输入命令:mysqld -install,之后出现如下界面。提示安装服务成功。注意是mysqld -ins
37、tall不是mysql -install如果要卸载服务,可以输入如下命令:mysqld -remove。出现如下界面。提示移除服务成功。3.2、使用安装版MySQL5.5.27_64位安装包下载地址1:/s/1minwz1m密码: ispnMySQL5.5.27_64位安装包下载地址2:/detail/zhangguo5/9775460MySQL5.7.17安装包官网下载地址:/downloads/windows/installer/选择自定义:安装的组件信息:服务器软件目录:数据目录:点击install安装即可:配置:机器类型是否支持事务功能:innodb表空间:连接数量:字符集设定:配置w
38、indows管理相关:配置安全选项,设置管理员的用户名与密码:最后执行配置即可:配置后,会启动服务。新版的MySQL安装包大了很多,安装过程也有些不一样。四、使用GUI操作MySQL4.1、关系型数据库的典型概念数据库 databse:数据的仓库表 table:数据是保存在表内,保存在一个表内的数据,应该具有相同的数据格式行:行用于记录数据记录:行内的数据列:列用于规定数据格式字段:数据的某个列SQL:用来管理数据的语言。结构化查询语言(SQL,Structured Query Language)主键:唯一地标识表中的某一条记录,不能空,不能重复4.2、登录数据库*连接本地数据库时需要启动服务
39、4.3、创建数据库4.4、创建表列的类型:数字类型整数: tinyint、smallint、mediumint、int、bigint浮点数: float、double、real、decimal日期和时间: date、time、datetime、timestamp、year字符串类型字符串: char、varchar文本: tinytext、text、mediumtext、longtext二进制(可用来存储图片、音乐等): tinyblob、blob、mediumblob、longblob列的约束:4.5、管理数据4.5.1、添加数据双击新建好的表名,打开表,就可以添加数据了。4.5.2、删除数
40、据4.5.3、修改表结构如果想向现有的表中添加一列,则可以修改表结构:4.5.4、外键上面这个学生表是有些问题的:a)、不便于修改,比如教室换成了305教室,则每个学员都要修改b)、数据冗余,大量的重复数据将表拆分成两个,分解后问题解决,如下图所示:这里的班级编号就是外键,可以空,但不为空时他的值一定在要引用表中存在。如果学生表中的编号是主键这里就不应该重复,外键则可以重复也允许为空。添加外键:班级表:学生表:添加外键:删除与更新时可以实现级联更新与删除,当更新设置为CASCADE时主键变化引用主键的表也会一起变化,当删除设置为CASCADE时删除主键表,引用的记录都将被删除。4.5.5、唯一
41、键唯一键,也称(唯一约束),和主键的区别是可以为有多个唯一键并且值可以为NULL,但NULL也不能重复,也就是说只能有一行的值为NULL。它会隐式的创建唯一索引。设置方法:索引 - 添加索引 - 栏位名 添加你想设置唯一约束的列 - 索引类型选择 Unique4.6、上机练习1、请创建一个新的数据库叫HR,在HR数据库中添加EMP表,EMP表的表结构如下所示EMP表,员工信息名称类型描述1EMPNOint雇员的编号,主键,自动增长2ENAMEVARCHAR(10)雇员的姓名,由10位字符所组成,不为空,唯一键3JOBVARCHAR(9)雇员的职位4MGRint雇员对应的领导编号,领导也是雇员,
42、可空(可删除这一列)5HIREDATETimeStamp雇员的雇佣日期,默认为当前日期6SALNumeric(7,2)基本工资,其中有两位小数,五位整数,一共是七位7COMMNumeric(7,2)奖金,佣金8DEPTNOint雇员所在的部门编号,可空,外键fk_deptno9DETAILText备注,可空Dept,部门表名称类型描述1DeptNOint部门的编号,主键,自动增长2DNAMEVARCHAR(10)部门名,由50位字符所组成,不为空,唯一键3DTelVARCHAR(10)电话,可空2、根据上面的表结构完成表的创建,表名为emp3、在表中添加5条以上的数据4、完成下列查询要求4.1
43、查询所有员工信息4.2查询所有工资介于2000-5000间的员工姓名、职位与工资4.3查询所有姓“张”的员工4.4 按工资降序查询出2014年到2015年间入职的员工4.5、将工资普遍上调20%4.6、将工资低于3000元的员工奖金修改为工资的2.8倍4.7、删除编号为5或者姓“王”的员工五、使用SQL访问MySQL数据库5.1、增加数据insert 语句可以用来将一行或多行数据插到数据库表中, 使用的一般形式如下:Insert into 表名(字段列表) values (值列表);insert into 表名 (列名1, 列名2, 列名3, .) values (值1, 值2, 值3, .)
44、;insert into students values(NULL, 张三, 男, 20,;有时我们只需要插入部分数据, 或者不按照列的顺序进行插入, 可以使用这样的形式进行插入:insert into students (name, sex, age) values(李四, 女, 21);5.2、查询数据select 语句常用来根据一定的查询规则到数据库中获取数据, 其基本的用法为:select 字段名 from 表名称 查询条件;查询学生表中的所有信息:select * from students;查询学生表中所有的name与age信息:select name,
45、age from students;也可以使用通配符 * 查询表中所有的内容, 语句: select * from students;5.2.1、表达式与条件查询where 关键词用于指定查询条件, 用法形式为: select 列名称 from 表名称 where 条件;以查询所有性别为女的信息为例, 输入查询语句: select * from students where sex=女;where 子句不仅仅支持 where 列名 = 值 这种名等于值的查询形式, 对一般的比较运算的运算符都是支持的, 例如 =、=、 21;查询名字中带有 王 字的所有人信息: select * from students where na
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年出差员工派遣协议书
- 2025年家教签合同协议书
- 2025年花艺布展协议书
- 2025年临时员工契约协议书
- (2025年标准)私下配送免责协议书
- 2025年代运营维护协议书
- 2025年新欠钱不还开车协议书
- (2025年标准)外聘老师协议书
- 2025年新特殊墙体安装协议书
- 购置车位合同(标准版)
- 红楼梦之林黛玉
- 化学(基础模块)中职PPT完整全套教学课件
- 京东集团员工手册-京东
- 成人癌性疼痛护理-中华护理学会团体标准2019
- 初中语文学习方法指导
- 2023年苏州市星海实验中学小升初分班考试数学模拟试卷及答案解析
- GB/T 23483-2009建筑物围护结构传热系数及采暖供热量检测方法
- GB/T 22237-2008表面活性剂表面张力的测定
- 股指期权风险管理
- 《电业安全工作规程》
- 发证机关所在地区代码表
评论
0/150
提交评论