ImageVerifierCode 换一换
格式:PPT , 页数:152 ,大小:1.76MB ,
文档编号:4066478      下载积分:29 文币
快捷下载
登录下载
邮箱/手机:
温馨提示:
系统将以此处填写的邮箱或者手机号生成账号和密码,方便再次下载。 如填写123,账号和密码都是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

优惠套餐
 

温馨提示:若手机下载失败,请复制以下地址【https://www.163wenku.com/d-4066478.html】到电脑浏览器->登陆(账号密码均为手机号或邮箱;不要扫码登陆)->重新下载(不再收费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  
下载须知

1: 试题类文档的标题没说有答案,则无答案;主观题也可能无答案。PPT的音视频可能无法播放。 请谨慎下单,一旦售出,概不退换。
2: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
3: 本文为用户(晟晟文业)主动上传,所有收益归该用户。163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

1,本文(MySQL入门到精通选读课件.ppt)为本站会员(晟晟文业)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!

MySQL入门到精通选读课件.ppt

1、网博课程研发部网博课程研发部MySQL入门入门网博课程研发部版权所有网博课程研发部版权所有ITANY课程总目标课程总目标 MYSQLMYSQL安装及配置安装及配置 有关数据库的有关数据库的DDLDDL操作操作 有关数据表的有关数据表的DDLDDL操作操作 数据库的数据库的CRUDCRUD操作操作 索引、视图索引、视图 事务控制事务控制 存储过程、触发器存储过程、触发器 权限管理权限管理 数据的导入、导出数据的导入、导出网博课程研发部版权所有网博课程研发部版权所有ITANY目标 数据库介绍 数据库相关的基本概念数据库相关的基本概念 MYSQLMYSQL简介简介 MYSQLMYSQL下载、安装及配

2、置下载、安装及配置 启动和停止启动和停止MYSQLMYSQL服务服务网博课程研发部版权所有网博课程研发部版权所有ITANY为何使用数据库 存储数据的方法 第一种方法:用大脑记住 数据 第二种方法:写在纸上 第三种方法:写在计算机的内存中 第三种方法:写成磁盘文件 网博课程研发部版权所有网博课程研发部版权所有ITANY数据库能做什么 存储大量数据,方便检索和访问 保持数据的一致、完整 共享和安全 通过组合分析,产生新的有用信息网博课程研发部版权所有网博课程研发部版权所有ITANY数据库的发展 萌芽阶段-文件系统 使用磁盘文件来存储 数据 初级阶段-第一代数据库 出现了网状模型、层次模型的数据库

3、中级阶段-第二代数据库 关系型数据库和结构化查询语言 高级阶段-新一代数据库“关系-对象”型数据库网博课程研发部版权所有网博课程研发部版权所有ITANY当前数据库产品 Oracle -甲骨文 DB2 -IBM SQL Server-微软 Sybase -赛贝斯 My SQL -甲骨文 网博课程研发部版权所有网博课程研发部版权所有ITANY数据库和应用程序网博课程研发部版权所有网博课程研发部版权所有ITANY数据库的基本概念 概念模型:基于客户的想法和观点所形成的认识和抽象 实体(Entity):客观存在的、可以被描述的事物。如:员工、部门 属性(Attribute):用于描述实体所具有的特性或

4、特征。如:使用编号、姓名、部门、工资等属性来描述员工的特征 关系(Relationship):实体之间的关系。如:部门和员工之间有一对多的关系网博课程研发部版权所有网博课程研发部版权所有ITANY数据库的基本概念 数据模型:也叫关系模型,是实体、属性、关系在数据库中的具体体现 关系数据库:用于存储各种类型数据的“仓库”,是二维表的集合。表:实体的映射 行和列:行代表一个具体的实体的数据。也叫一条记录。列是属性的映射,用于描述实体的。主键和外键:主键:是指定该列的值可以唯一的标识该条记录 外键:是指定该行记录从属于主表中的一条记录,主要用于保证参照完整性。网博课程研发部版权所有网博课程研发部版权

5、所有ITANY数据库的基本概念 数据库管理系统(DBMS)网博课程研发部版权所有网博课程研发部版权所有ITANYMy SQL是什么 My SQL是最流行的开放源码SQL数据库管理系统 My SQL是一种关系数据库管理系统 My SQL软件是一种开放源码软件 My SQL数据库服务器具有快速、可靠和易于使用的特点 My SQL服务器工作在客户端/服务器模式下,或嵌入式系统中 My SQL数据库软件是一种客户端/服务器系统,由支持网博课程研发部版权所有网博课程研发部版权所有ITANYMy SQL是什么 不同后端的1个多线程SQL服务器,数种不同的客户端程序和库,众多管理工具和广泛的应用编程接口AP

6、I组成。有大量可用的共享My SQL软件网博课程研发部版权所有网博课程研发部版权所有ITANYMy SQL体系结构网博课程研发部版权所有网博课程研发部版权所有ITANYMy SQL的发展 My SQL最早起始于1979,开始是Michael.Monty.Widenius为瑞典的TcX公司创建的UNIREG数据库工具 1996年5月My SQL 1.0 1996年10月My SQL 3.11.1以用于Linux和Solaris系统的二进制分发形式发布 2003年3月My SQL 4.0 2004年6月My SQL 4.1 2005年10月My SQL 5.0网博课程研发部版权所有网博课程研发部版

7、权所有ITANYMy SQL的发展 2008年1月16日Sun出价10亿美元收购 了My SQL 2011年My SQL 5.5.21网博课程研发部版权所有网博课程研发部版权所有ITANYMy SQL的特性 内部构件和可移植性 使用C和C+编写,能够工作在众多不同的平台上 列类型 众多列类型,定长和可变长度记录 语句和函数 安全 允许基于主机的验证 可伸缩性和限制网博课程研发部版权所有网博课程研发部版权所有ITANYMy SQL 的特性 连接性 在任何平台上,客户端可使用TCP/IP协议连接到My SQL服务器 本地化 客户端和工具网博课程研发部版权所有网博课程研发部版权所有ITANY著名的M

8、y SQL用户 Google Google和My SQL建立了协议,它所有的数据库都建立在My SQL之上 其收购的世界最大的视频网站YouTube也采用了My SQL数据库 雅虎财经网站的数据库 维基百科 腾讯 大家所熟知的腾讯QQ就是采用Linux操作系统+My SQL数据库平台网博课程研发部版权所有网博课程研发部版权所有ITANYMy SQL数据库下载 http:/ http:/ SQL安装 见操作演示。网博课程研发部版权所有网博课程研发部版权所有ITANY启动和停止My SQL服务 以Windows服务方式启动 从命令行启动服务器 在命令行窗口下切换到My SQL安装目录bin目录下

9、启动:Mysqld-nt -console -服务器在前台运行,需另开一个控制台窗口来运行客户端程序 Net start mysql 停止:Mysqladmin -u root p shutdown网博课程研发部版权所有网博课程研发部版权所有ITANY总结 数据库介绍 数据库相关概念 My SQL简介 My SQL下载、安装和配置 启动和停止My SQL服务网博课程研发部版权所有网博课程研发部版权所有ITANYMYSQL数据库表管理数据库表管理网博课程研发部版权所有网博课程研发部版权所有ITANY目标 数据库管理 SQL简介 有关数据库的DDL操作 数据表的列类型 有关数据表的DDL操作 帮助

10、的使用网博课程研发部版权所有网博课程研发部版权所有ITANY客户端程序连接与断开服务器 连接:My sql h My SQL服务器地址 -u 用户名 -p-h(hostname)My SQL数据库主机地址-u(username)登录My SQL数据库服务器主机的用户-p(password)用户登陆My SQL服务器的密码 本地登陆用:my sql u 用户名 p 断开:在my sql提示符下输入quit(或q)随时退出 网博课程研发部版权所有网博课程研发部版权所有ITANYSQL语句概述 SQL:结构化查询语言(Structured Query Language)一般读作si:kju:或”es

11、s-que-el”(字母”S”、”Q”、”L”的发音)在关系型数据库上执行数据操作、数据检索以及数据维护的标准语言。网博课程研发部版权所有网博课程研发部版权所有ITANYSQL分类 在My SQL数据库中,SQL语句主要可以划分为以下几类:DDL(Data Definition Language):数据定义语言,定义对数据库对象(库、表、列、索引)的操作 Create、Drop、Alter、Rename等 DML(Data Manipulation Language):数据操作语言,定义对数据库记录的操作 Insert、Delete、Update、Select、Truncate等网博课程研发部

12、版权所有网博课程研发部版权所有ITANYSQL分类 DCL(Data Control Language):数据控制语言,定义对数据库、表、字段、用户的访问权限和安全级别 Grant、Revoke等 Transaction Control:事务控制 Start Transaction、Commit、RollBack、Savepoint等网博课程研发部版权所有网博课程研发部版权所有ITANYSHOW DATABASES 语法:SHOW DATABASESLike wild;如果使用like wild部分,wild字符串可以是一个使用SQL的%”和”_”通配符的字符串。功能:列出在My SQL服务器

13、主机上的数据库 My SQL自带的数据库 Information_schema:主要存储了系统中的一些数据库对象信息:如用户表信息、列信息、权限信息、字符集信息、分区信息等网博课程研发部版权所有网博课程研发部版权所有ITANYSHOW DATABASES My SQL自带的数据库:my sql:存储了系统的用户权限信息及帮助信息 test:系统自动创建的测试数据库,任何用户都可以使用。网博课程研发部版权所有网博课程研发部版权所有ITANYSQL语句语法 SQL语句可单行或多行书写,以”;”结尾 用空格和缩进来提高语句的可读性。关键词不能跨多行或简写,大小写不敏感 子句通常位于独立行,便于编辑,

14、提高可读性 例如:select *from emp;网博课程研发部版权所有网博课程研发部版权所有ITANYSQL语句语法 注释:SQL标准 从/*多行注释*/从-到行尾。注意:第2个破折号后面至少跟一个空格符(例如空格、tab、换行符等等)。该语法与标准SQL注释语法稍有不同。My SQL 从”#”字符到行尾网博课程研发部版权所有网博课程研发部版权所有ITANYCreate Data Base 语法:Create DataBase if not exists 数据库名;功能:用给定的名字创建一个数据库 前提:需要获得数据库Create权限 如果数据库已经存在,发生一个错误网博课程研发部版权所有

15、网博课程研发部版权所有ITANYDrop Data Base 语法:Drop DataBase if exists 数据库名;功能:删除数据库中的所有表和数据库 前提:需要获得数据库Drop权限 要小心使用这个命令网博课程研发部版权所有网博课程研发部版权所有ITANY用USE选用数据库 语法:Use 数据库名;功能:把指定数据库作为默认(当前)数据库使用,用于后续语句。网博课程研发部版权所有网博课程研发部版权所有ITANY列类型 My SQL支持多种列类型 数值类型 日期/时间类型 字符串(字符)类型网博课程研发部版权所有网博课程研发部版权所有ITANY数值数据类型整数网博课程研发部版权所有网

16、博课程研发部版权所有ITANY数值数据类型浮点数 注:M表示最大显示宽度;D表示小数点后面的位数。定点数DECIMAL在内部以字符串形式存放,适合于表示货币等精度高的数据。一定要指定M和D。网博课程研发部版权所有网博课程研发部版权所有ITANY日期/时间类型 注:TIMESTAMP跟时区相关,插入日期时,会先转换为本地时区后存放,而取出时,也会将日期转换为本地时区后显示。网博课程研发部版权所有网博课程研发部版权所有ITANY字符串类型网博课程研发部版权所有网博课程研发部版权所有ITANYSHOW 语法:Show tables from 数据库名 like wild 功能:显示当前数据库中已有的

17、数据表的信息网博课程研发部版权所有网博课程研发部版权所有ITANYDESCRIBE 语法:DESCRIBE|DESC 表名列名 功能:查看数据表中各列的信息 用”show create table 表名 ;”可以查看更全面的表定义信息网博课程研发部版权所有网博课程研发部版权所有ITANY用Create table创建数据表 简单语法:Create table 表名(列名 列类型,列名 列类型,.);功能:在当前数据库中创建一张表 前提:必须拥有表Create权限网博课程研发部版权所有网博课程研发部版权所有ITANY关于识别符 数据库名、表名、索引名、列名和别名是识别符:操作系统的大小写敏感性决

18、定了数据库名和表名的大小写敏感性 Windows系统大小写不敏感,Linux、Unix系统大小写敏感网博课程研发部版权所有网博课程研发部版权所有ITANY建表示例 Create table dept(dept_id int,name varchar(20);Create table emp(emp_id int,name varchar(20),gender char,address varchar(100);网博课程研发部版权所有网博课程研发部版权所有ITANY删除数据表 语法:Drop table if exists 表名;功能:删除指定的表网博课程研发部版权所有网博课程研发部版权所有IT

19、ANY用Alter Table语句修改表的结构 修改列类型 Alter table 表名 modify 列名 列类型;增加列 Alter table 表名 add 列名 列类型;删除列 Alter table 表名 drop 列名;网博课程研发部版权所有网博课程研发部版权所有ITANY用Alter Table语句修改表的结构 列改名 Alter table 表名 change 旧列名 新列名 列类型;更改表名 Alter table 表名 rename 新表名;Rename table 表名 to 新表名;网博课程研发部版权所有网博课程研发部版权所有ITANYMy SQL帮助的使用 安装自带的

20、文档 安装目录Docsmanual.chm 命令行帮助?contents 显示所有可供查询的分类?类别名称 如:?Data types;?关键字 如:?Create table;网博课程研发部版权所有网博课程研发部版权所有ITANY总结 有关数据库的DDL操作 Show databases;Create database 数据库名;Drop database if exists 数据库名;Use 数据库名;有关数据表的DDL操作 Show tables from 数据库名;Desc 表名;Create table 表名(.);Drop table if exists 表名;Alter tabl

21、e 表名 ;网博课程研发部版权所有网博课程研发部版权所有ITANY总结 数据表的列类型 数值类型 日期类型 字符串类型 帮助的使用 manual.chm?网博课程研发部版权所有网博课程研发部版权所有ITANY作业 有一Blog系统使用的数据库是myblog,现在有几个要求:创建好数据库My blog.根据实际应用情况在my blog中创建好以下两张表 帐号、文章类别 帐号(account)编号(category_id)、用户名(username)、密码(password)、邮箱号(email)、性别(gender)、博客名(title)通过alter table 给此表添加两个字段:昵称(ni

22、ckname)、头像(headlmg)网博课程研发部版权所有网博课程研发部版权所有ITANY作业 文章类别表(category)编号(category_id)、帐户编号(account_id)、类别名(title)、描述(description)、文章数(articleNum)、可访问性(visible)、创建时间(createdTime)网博课程研发部版权所有网博课程研发部版权所有ITANY常用运算符和函数常用运算符和函数网博课程研发部版权所有网博课程研发部版权所有ITANY目标 常用运算符 算术运算符 比较运算符 逻辑运算符 常用函数 字符串函数 数值函数 日期和时间函数 流程函数 其他常

23、用函数网博课程研发部版权所有网博课程研发部版权所有ITANY算术运算符网博课程研发部版权所有网博课程研发部版权所有ITANY比较运算符网博课程研发部版权所有网博课程研发部版权所有ITANY逻辑运算符网博课程研发部版权所有网博课程研发部版权所有ITANY字符串常用函数网博课程研发部版权所有网博课程研发部版权所有ITANY数值常用函数网博课程研发部版权所有网博课程研发部版权所有ITANY日期和时间常用函数网博课程研发部版权所有网博课程研发部版权所有ITANY流程函数网博课程研发部版权所有网博课程研发部版权所有ITANY其他常用函数网博课程研发部版权所有网博课程研发部版权所有ITANY总结 常用运算

24、符 算术运算符 比较运算符 逻辑运算符 常用函数 字符串函数 数值函数 日期和时间函数 流程函数 其他常用函数网博课程研发部版权所有网博课程研发部版权所有ITANYMy SQL 数据表数据表DML操作操作网博课程研发部版权所有网博课程研发部版权所有ITANY目标 有关数据表的DML操作 Insert into Delete、Truncate Update Select 条件查询 查询排序 聚合函数 分组查询网博课程研发部版权所有网博课程研发部版权所有ITANYInsert语句 语法:Insert into 表名(列名1,列名n)values(值1,.值n);功能:向指定的表添加指定值的记录 一

25、次性插入多条记录:Insert into 表名(列名1,列名n)values(值1,.值n),(值1,.值n),.;网博课程研发部版权所有网博课程研发部版权所有ITANYDelete 语句 语法:Delete from 表名 where 条件;功能:用于删除满足指定条件的记录 注:所有SQL语句的条件子句中都可以使用运算符和函数网博课程研发部版权所有网博课程研发部版权所有ITANYTruncate语句 语法:Truncate table table name;功能:用于完全清空一张表网博课程研发部版权所有网博课程研发部版权所有ITANYUpdate 语句 语法:Update 表名 set 列名

26、1=值1,.列名n=值nwhere 条件;网博课程研发部版权所有网博课程研发部版权所有ITANYSelect 语句 基本语法:Select selection_list 选择哪些列 from table_list 从何处选择行 where primary_constraint 行必须满足什么条件 group by grouping_columns 怎样对结果分组 having secondary_constraint 行必须满足的第二条件 order by sorting_columns 怎样对结果排序 limit offset_start,row_count 结果限定网博课程研发部版权所有网

27、博课程研发部版权所有ITANY普通查询 查询所有的记录的所有列 Select *from employees;查询特定行 Select *from emp where name=张三;查询特定列 Select name,age form emp;去掉重复的值 Select distinct dept_id from emp;给列取别名 Select name as 姓名 from emp;网博课程研发部版权所有网博课程研发部版权所有ITANY条件查询 语法:Select 列名,.from 表名 where 条件;Where子句中的条件表达式 可以包括运算符 可以使用圆括号将一个表达式分成几个部

28、分 可以使用常量、列和函数来完成运算 Where 子句中不能出现组函数网博课程研发部版权所有网博课程研发部版权所有ITANY查询排序 语法 Select 列名,from 表名 where 条件 order by 排序列名1asc|desc,排序列名2asc|desc,;Asc:升序,缺省;Desc:降序网博课程研发部版权所有网博课程研发部版权所有ITANY查询排序 例:Select *from emp order by dept_id,sal desc;Select*from emp order by rand();网博课程研发部版权所有网博课程研发部版权所有ITANY分组查询 语法:Sele

29、ct 列名,from 表名 where 条件 group by 分组的列;Group by 子句的真正作用在于与各种聚合函数配合使用。它用来对查询出来的数据进行分组,分组后的数据执行组函数计算,最终结果自动按分组列进行升序排序。网博课程研发部版权所有网博课程研发部版权所有ITANY常用聚合函数 聚合函数对一组值执行计算,并返回单个值。也叫组函数。除了count()以外,聚合函数都会忽略空值。聚合函数不能和非分组的列混合使用。网博课程研发部版权所有网博课程研发部版权所有ITANY示例 Select count(*)as 总数 from emp;Select dept_id,count(*),su

30、m(sal),avg(sal)from emp group by dept_id;查询分组中一个非常重要的规则:出现在select 列表中的列,如果出现的位置不是在组函数中,那么必须出现在group by 子句中。网博课程研发部版权所有网博课程研发部版权所有ITANYHaving Having 子句用来对分组后的结果再进行条件过滤。例如:Select dept_id,avg(sal)from emp where sal between 2500 and 8000 group by dept_id having count(*)1;网博课程研发部版权所有网博课程研发部版权所有ITANYHavin

31、g 与Where的区别 Where 子句是在分组前进行的条件过滤,所以where子句中不能使用聚合函数。Having 子句是分组后进行的条件过滤,所以having子句中可以使用聚合函数。网博课程研发部版权所有网博课程研发部版权所有ITANY查询结果限定 在select语句的最后可以用limit来限定查询结果返回的起始记录和总数量。(my sql特有的)语法:Select from emp limit start_row,row_count;Start_row:起始点,默认为0 Row_count:记录数 例如:Select *from emp limit 6;/*检索前5条记录*/Select

32、*from emp limit 6,10;-检索记录行7-16*网博课程研发部版权所有网博课程研发部版权所有ITANY总结 有关数据表的DML操作 Insert into、Delete、Update、Select 条件查询 查询排序 聚合函数 分组查询网博课程研发部版权所有网博课程研发部版权所有ITANYCreate Table深入深入 网博课程研发部版权所有网博课程研发部版权所有ITANY目标 Create table深入 为表增加约束 Not null Unique Primary key Foreign key Check 设置自增长及默认值 选择表的存储引擎网博课程研发部版权所有网博课

33、程研发部版权所有ITANY约束 约束是在表上强制执行的一些数据校验规则,被插入、修改或删除的数据必须符合在相关字段上设置的这些约束条件。五类完整性约束 Not null 非空 Unique 唯一 Primary key 主键 Foreign key 外键 Check 检查网博课程研发部版权所有网博课程研发部版权所有ITANY约束定义语法 列级约束:在定义列的同时定义约束 语法:列定义约束类型 表级约束:在定义了所有列之后定义的约束 语法:列定义.,constraint 约束名 约束类型(列名)约束名的取名规则 推荐采用:表名_列名_约束类型简写 约束可以在创建表时就定义,也可以在创建完表后再添

34、加。网博课程研发部版权所有网博课程研发部版权所有ITANY非空约束 Not null 该列的值不能为空 列级约束 Create table dept(dept_id int,name varchar(20)not nul,age int);网博课程研发部版权所有网博课程研发部版权所有ITANY唯一约束 Unique 要求该列的值唯一,允许为空,但只能出现一个空值 列级约束、表级约束 取名:表名_列名_uk 例如 Create table dept(dept_id int,name varchar(20)Unicode not null,age int);网博课程研发部版权所有网博课程研发部版权

35、所有ITANY主键约束 Primary key 用来唯一标识这行记录。一张表中只能有一个主键。功能上相当于非空且唯一。列级约束、表级约束 取名:表名_列名_pk 例如:Create table dept(dept_id int primary key,Name varchar(20),age int);网博课程研发部版权所有网博课程研发部版权所有ITANY外键约束 Foreign key 用于两表间建立关系,需要指定引用主表的那列 列级约束、表级约束 取名:主表名_子表名_fk 语法:constraint 约束名 foreign key(子表外键列名)references 主表名(主表主键列名

36、);My SQL中的外键关系只对innodb型表有效网博课程研发部版权所有网博课程研发部版权所有ITANY检查约束 Check 表达式 对某列的值进行范围限制,格式限制等 列级约束、表级约束 取名:表名_列名_ck 注意:目前My sql的check约束并不起作用。网博课程研发部版权所有网博课程研发部版权所有ITANY删除约束 删除Not null约束 Alter table 表名 modifiy 列名 类型 删除unique约束 Alter tabel 表名 drop index 唯一约束名;删除primary key约束 Alter table 表名 drop primary key;删除

37、foreign key 约束 Alter table 表名drop foreign key 外键名;网博课程研发部版权所有网博课程研发部版权所有ITANY自增长和默认值 Auto_increment:自动增长 为新的行产生唯一的标识 一个表只能有一个auto_increment属性,且该属性必须为主键的一部分。Auto_increment属性可以是任何整数类型 Default 默认值:指定默认值 例如:create table test(id int primary key auto_increment,name varchar(20),sex varchar(6)default 默认值;网博

38、课程研发部版权所有网博课程研发部版权所有ITANY总结 约束 设置自增长及默认值 完整的建表语句网博课程研发部版权所有网博课程研发部版权所有ITANYSelect深入深入 网博课程研发部版权所有网博课程研发部版权所有ITANY目标 Select 深入 多表连接查询 子查询 记录联合网博课程研发部版权所有网博课程研发部版权所有ITANY多表连接查询 使用单个select语句从多个表中取出相关的数据,通过多表之间的关系,构建相关数据的查询。多表连接通常是建立在相互关系的父子表上的。语法:Select from join_table Join type join_tableOn join_condi

39、tion where where_condition Join_table 参与连接的表 Join_type 连接类型:内链接、外连接、交叉连接、自连接网博课程研发部版权所有网博课程研发部版权所有ITANY内链接 语法:Select from join_table inner join join_table2 on join_condition where where_definition 只列出这些连接表中与连接条件相匹配的数据行 例如:select *from emp inner join dept on emp.deptno=dept.deptno;网博课程研发部版权所有网博课程研发部版

40、权所有ITANY外连接 语法:Select from join_table(left|right|full)outer join join_table2On join_condition where where_definition 不仅列出与连接条件相匹配的行,还列出左表(左外连接)、右表(右外连接)或两个表(全外连接)中所有符合where过滤条件的数据行。分类:左外连接 右外连接 全外连接网博课程研发部版权所有网博课程研发部版权所有ITANY交叉连接 语法:Select .From join_table cross join join_table2;没有on子句和where子句,它返回连接

41、表中所有数据行的笛卡尔积 其结果集合中的数据行数等于第一个表中符合查询条件的数据行数乘以第二个表中符合查询条件的数据行数。相当于:Select from table1,table2;网博课程研发部版权所有网博课程研发部版权所有ITANY子查询 某些情况下,当进行查询的时候,需要的条件是另外一个select 语句的结果,这个时候,就要用到子查询。为了给主查询(外部查询)提供数据而首先执行的查询(内部查询)被叫做子查询。用于子查询的关键字主要包括in、not in、=、等 MySQL从4.1开始才支持SQL的子查询 一般说子查询的效率低于连接查询。表连接都可以用子查询替换,但反过来说却 不一定网博

42、课程研发部版权所有网博课程研发部版权所有ITANY总结 多表连接查询 Inner join Outer join Cross join 子查询 记录联合网博课程研发部版权所有网博课程研发部版权所有ITANY索引、视图索引、视图 网博课程研发部版权所有网博课程研发部版权所有ITANY目标 索引 视图网博课程研发部版权所有网博课程研发部版权所有ITANY索引 索引是数据库中用来提高查询性能的最常用工具 所有My SQL列类型都可以被索引,对相关列使用索引是提高select操作性能的最佳途径。My SQL提供 多种索引类型供选择:普通索引 唯一性索引 主键 全文索引网博课程研发部版权所有网博课程研发

43、部版权所有ITANY索引 My SQL中多数索引都以Btree的形式保存。在使用以下操作符时,都会用到相关列上的索引:、=、=、in、between Like pattern (pattern不能以通配符开始)网博课程研发部版权所有网博课程研发部版权所有ITANY普通索引 这是最基本的索引类型,而且它没有唯一性之类的限制 普通索引可以通过以下几种方式创建:直接创建索引 语法:Create index 索引名 on 表名(列名);修改表时添加索引:语法:Alter table 表名 add index 索引名(列名);创建表的时候指定索引 语法:Create table 表名(,index索引名

44、(列名);网博课程研发部版权所有网博课程研发部版权所有ITANY唯一性索引 这种索引和前面的”普通索引”基本相同,但有一个区别:索引列的所有值都只能出现一次,即必须唯一。唯一性索引可以用以下几种方式创建:创建索引 语法:Create unique index 索引名 on 表名 (列名);修改表时添加索引 语法:alter table 表名 add unique index 索引名 (列名);创建表的时候指定索引 语法:create table 表名(.,unique index 索引名 (列名);网博课程研发部版权所有网博课程研发部版权所有ITANY主键索引 主键是一种特殊的唯一索引,一般在

45、创建表的时候指定 语法:Create table 表名(.,primary key(列);在My SQL中,当你建立主键时,主键索引同时也已经建立起来了。不必重复设置。注:一张表只能有一个主键,即也只能有一个主键索引。也可以通过修改表的方式加入主键索引:语法:alter table 表名 add 主键索引名 primary key(列);网博课程研发部版权所有网博课程研发部版权所有ITANY全文索引 My SQL中,全文索引的索引类型为fulltext。My SQL中全文索引只限于char、Varchar和text类型的列上创建。全文索引可以用以下几种方式创建:创建索引 语法:Create f

46、ulltext index 索引名 on 表名(列名);修改表时添加索引 语法:alter table 表名 add fulltext index 索引名 (列);创建表的时候指定索引 语法:Create table 表名(,fulltext(char、varchar、text类型的字段);网博课程研发部版权所有网博课程研发部版权所有ITANY删除、禁用索引 语法:Drop index 索引名 on 表名;禁用索引:alter table 表名 disable keys;打开索引:alter table 表名 enable keys;网博课程研发部版权所有网博课程研发部版权所有ITANY设计索

47、引的原则 最适合索引的列是出现在where子句中的列,或连接子句中指定的列,而不是出现在select后的列。索引列的值越多不相同的,索引的效果越好 不要过度索引网博课程研发部版权所有网博课程研发部版权所有ITANY视图 视图(view):从一张或几张基本表中根据用户需要而生成一张虚表。视图是虚表,它在存储时只存储视图的定义,而没有存储对应的数据 视图只在使用时才从基本表中搜集数据,再展现给用户。使用视图优点:简单 安全:防止未经许可的用户访问敏感数据 数据独立:降低数据库的复杂程度 视图可以间接对表进行更新网博课程研发部版权所有网博课程研发部版权所有ITANY创建视图 创建的常用语法 Crea

48、te or replace view 视图名 as select语句;若给定了or replace,则表示当已具有同名的视图时,将覆盖原视图。创建视图需要有Create view的权限,并且对于查询涉及的列有select权限。网博课程研发部版权所有网博课程研发部版权所有ITANY查看视图 Show tables;不仅显示当前所有的表,还会显示当前所有的视图。Desc 视图名;显示视图的结构 Show Create view 视图名;显示视图的详细信息网博课程研发部版权所有网博课程研发部版权所有ITANY修改、删除视图 修改的常用语法 Alter view 视图名 as select语句;要有该

49、视图的drop权限 语法:Drop view if exists 视图1,视图2;网博课程研发部版权所有网博课程研发部版权所有ITANY总结 索引 视图网博课程研发部版权所有网博课程研发部版权所有ITANY 事务控制事务控制网博课程研发部版权所有网博课程研发部版权所有ITANY目标 事务介绍 事务的特性 My SQL中的事务控制网博课程研发部版权所有网博课程研发部版权所有ITANY事务介绍 事务是一个不可分割的工作单元 用户定义的一个操作序列,这些操作要么都执行成功,要么都失败。数据库事务是对现实生活中事务的模拟,它由一组在业务逻辑上相互信赖的SQL语句组成。网博课程研发部版权所有网博课程研发

50、部版权所有ITANY数据库事务的特性 原子性(atomic)指整个数据库事务是不可分割的工作单元。原子性确保在事务中的所有操作要么都发生,要么都不发生。一致性(Consistency)一旦一个事务结束了(不管成功与否),系统所处的状态和它的业务规则是一致的。即数据应当不会被破坏。隔离性(lsolation)指多个事务同时操作同一数据时,每个事务都有各自的完整数据空间。网博课程研发部版权所有网博课程研发部版权所有ITANY数据库事务的特性 持久性(Durability)一旦事务完成,事务的结果应该持久化 数据库管理系统采用重执行日志来保证原子性、一致性和持久性。数据库管理系统采用数据库锁机制来实

侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|