logo资料库

MySql培训日志.doc

第1页 / 共124页
第2页 / 共124页
第3页 / 共124页
第4页 / 共124页
第5页 / 共124页
第6页 / 共124页
第7页 / 共124页
第8页 / 共124页
资料共124页,剩余部分请下载后查看
1.内容
1.1数据库概述及数据准备
1.1.1SQL概述
1.1.2什么是数据库
1.1.3MySql概述
1.1.4MySql的安装
1.1.5表
1.1.6SQL的分类
1.1.7导入演示数据
1.1.8表结构描述
1.2 常用命令
1.2.1查看msyql版本
1.2.2 创建数据库
1.2.3查询当前使用的数据库
1.2.4 终止一条语句
1.2.5退出mysql
1.3演示数据结构
1.3.1怎样取得演示数据
1.3.1.1查看和指定现有的数据库
1.3.1.2指定当前缺省数据库
1.3.1.3 查看当前使用的库
1.3.1.3.1查看当前库中的表
1.3.1.3.2 查看其他库中的表
1.3.1.4查看表的结构
1.3.1.5 查看表的创建语句
1.4 简单的查询
1.4.1查询一个字段
1.4.2查询多个字段
1.4.3查询全部字段
1.4.4计算员工的年薪
1.4.5将查询出来的字段显示为中文
1.5条件查询
1.5.1、等号操作符
1.5.2、<>操作符
1.5.3、between … and …操作符
1.5.4、is null
1.5.5、 and
1.5.6、or
1.5.7、表达式的优先级
1.5.8、in
1.5.9、not
1.5.10、like
Like中%和下划线的差别?
1.6、排序数据
1.6.1、单一字段排序
1.6.2、手动指定排序顺序
1.6.3、多个字段排序
1.6.4、使用字段的位置来排序
1.7、数据处理函数
1.7.1、lower
1.7.2、upper
1.7.3、substr
1.7.4、length
1.7.5、trim
1.7.6、str_to_date (必须严格按照标准输出)
1.7.7、date_format
1.7.8、format
1.7.9、round
1.7.10、rand()
1.7.11、case … when … then …end
1.7.12、ifnull
1.8、聚合函数
1.8.1、count
Count(*)表示取得所有记录,忽略null,为null的值也会取得
1.8.2、sum
1.8.3、avg
1.8.4、max
1.8.5、min
1.8.6、组合聚合函数
1.9、分组查询
1.9.1、group by
1.9.2、having
1.9.3、select语句总结
1.10、连接查询
1.10.1、SQL92语法
1.10.2、SQL99语法
1.11、子查询
1.11.1、在where语句中使用子查询,也就是在where语句中加入select语句
1.11.2、在from语句中使用子查询,可以将该子查询看做一张表
1.11.3、在select语句中使用子查询
1.12、union
1.12.1、union可以合并集合(相加)
1.13、limit 的使用
1.13.1、取得前5条数据
1.13.2、从第二条开始取两条数据
1.13.3、取得薪水最高的前5名
1.14、表
1.14.1创建表
1.14.2、增加/删除/修改表结构
1.14.2.1添加字段
1.14.2.2修改字段
1.14.2.3删除字段
1.14.3添加、修改和删除
1.14.3.1、insert
1.14.3.2、update
1.14.3.3、delete
1.14.4、创建表加入约束
1.14.4.1非空约束,not null
1.14.4.2唯一约束,unique key
1.14.4.3主键约束,primary key
1.14.4.4外键约束,foreign key
1.14.4.5级联更新与级联删除
1.14.4.5.1on update cascade;
1.14.4.5.2on delete cascade;
1.14.5、t_student和t_classes完整示例
1.14.6、增加/删除/修改表约束
1.14.6.1删除约束
1.14.6.2添加约束
1.14.6.3修改约束,其实就是修改字段
1.15、存储引擎
1.15.1 存储引擎的使用
1.15.2常用的存储引擎
1.15.3 MyISAM存储引擎
1.15.4InnoDB存储引擎
1.15.5MEMORY存储引擎
1.15.6选择合适的存储引擎
1.16 、事务
1.16.1 概述
1.16.2事务的提交与回滚演示
1.16.3自动提交模式
1.16.4事务的隔离级别
1.16.4.1隔离级别
1.16.4.2四个隔离级别
1.16.4.3隔离级别与一致性问题的关系
1.16.4.4设置服务器缺省隔离级别
1.16.4.4.1通过修改配置文件设置
1.16.4.4.2通过命令设置动态设置隔离级别
1.16.4.5隔离级别的作用范围
1.16.4.6查看隔离级别
1.16.4.7并发事务与隔离级别示例
1.16.4.7.1read uncommitted(未提交读) --脏读(Drity Read):
1.16.4.7.2 read committed(已提交读)
1.16.4.7.3repeatable read(可重复读)
1.17、索引
1.17.1.1索引原理
1.17.1.2索引的应用
1.17.1.2.1创建索引
1.17.1.2.2查看索引
1.17.1.2.3使用索引
1.17.1.2.4删除索引
1.18、视图
1.18.1、什么是视图
1.18.2、创建视图
1.18.3、修改视图
1.18.4、删除视图
1.19、DBA命令
1.19.1、新建用户
1.19.2、授权
1.19.3、回收权限
1.19.4、导出导入
1.19.4.1、导出
1.19.4.1.1、导出整个数据库 
1.19.4.1.2、导出指定库下的指定表 
1.19.4.2导入
1.20、数据库设计的三范式
1.20.1、第一范式
1.20.2、第二范式
1.20.3、第三范式
1.20.4、三范式总结
2.、作业
2.1取得每个部门最高薪水的人员名称
2.2哪些人的薪水在部门的平均薪水之上
2.3取得部门中(所有人的)平均的薪水等级,如下:
2.4不准用组函数(Max),取得最高薪水(给出两种解决方案)
2.5取得平均薪水最高的部门的部门编号(至少给出两种解决方案)
2.6取得平均薪水最高的部门的部门名称
2.7求平均薪水的等级最低的部门的部门名称
2.8取得比普通员工(员工代码没有在mgr字段上出现的)的最高薪水还要高的经理人姓名
2.9取得薪水最高的前五名员工
2.10取得薪水最高的第六到第十名员工
2.11取得最后入职的5名员工
2.12取得每个薪水等级有多少员工
2.13面试题
CREATE TABLE SC
CREATE TABLE S
CREATE TABLE C
INSERT INTO SC ( SNO, CNO, SCGRADE ) VALUES ( '1',
INSERT INTO SC ( SNO, CNO, SCGRADE ) VALUES ( '1',
INSERT INTO SC ( SNO, CNO, SCGRADE ) VALUES ( '1',
INSERT INTO SC ( SNO, CNO, SCGRADE ) VALUES ( '1',
INSERT INTO SC ( SNO, CNO, SCGRADE ) VALUES ( '1',
INSERT INTO SC ( SNO, CNO, SCGRADE ) VALUES ( '2',
INSERT INTO SC ( SNO, CNO, SCGRADE ) VALUES ( '2',
INSERT INTO SC ( SNO, CNO, SCGRADE ) VALUES ( '2',
INSERT INTO SC ( SNO, CNO, SCGRADE ) VALUES ( '2',
INSERT INTO SC ( SNO, CNO, SCGRADE ) VALUES ( '2',
INSERT INTO SC ( SNO, CNO, SCGRADE ) VALUES ( '3',
INSERT INTO SC ( SNO, CNO, SCGRADE ) VALUES ( '3',
2.14列出所有员工及经理的姓名
2.15列出受雇日期早于其直接上级的所有员工的编号,姓名,部门名称
2.16列出部门名称和这些部门的员工信息,同时列出那些没有员工的部门.
2.17列出至少有5个员工的所有部门
2.18列出薪金比"SMITH"多的所有员工信息.
2.19列出所有"CLERK"(办事员)的姓名及其部门名称,部门的人数.
2.20列出最低薪金大于1500的各种工作及从事此工作的全部雇员人数.
2.21列出在部门"SALES"<销售部>工作的员工的姓名,假定不知道销售部的部门编号.
2.22列出薪金高于公司平均薪金的所有员工,所在部门,上级领导,雇员的工资等级.
2.23列出与"SCOTT"从事相同工作的所有员工及部门名称.
2.24列出薪金等于部门30中员工的薪金的其他员工的姓名和薪金.
2.25列出薪金高于在部门30工作的所有员工的薪金的员工姓名和薪金.部门名称.
2.26列出在每个部门工作的员工数量,平均工资和平均服务期限.
2.27列出所有员工的姓名、部门名称和工资。
2.28列出所有部门的详细信息和人数
2.29列出各种工作的最低工资及从事此工作的雇员姓名
2.30列出各个部门的MANAGER(经理)的最低薪金
2.31列出所有员工的年工资,按年薪从低到高排序
2.32求出员工经理的薪水超过3000的员工名称与经理名称
2.33求出部门名称中,带'S'字符的部门员工的工资合计、部门人数.
2.34给任职日期超过30年的员工加薪10%.
目录 1. 内容........................................................................................................................ 8 1.1 数据库概述及数据准备................................................................................ 8 1.1.1 SQL 概述..............................................................................................8 1.1.2 什么是数据库..................................................................................... 8 1.1.3 MySql 概述.......................................................................................... 8 1.1.4 MySql 的安装...................................................................................... 8 1.1.5 表....................................................................................................... 21 1.1.6 SQL 的分类........................................................................................22 1.1.7 导入演示数据................................................................................... 22 1.1.8 表结构描述....................................................................................... 22 1.2 常用命令...................................................................................................... 24 1.2.1 查看 msyql 版本................................................................................24 1.2.2 创建数据库....................................................................................... 24 1.2.3 查询当前使用的数据库................................................................... 24 1.2.4 终止一条语句................................................................................... 24 1.2.5 退出 mysql.........................................................................................24 1.3 演示数据结构.............................................................................................. 25 1.3.1 怎样取得演示数据........................................................................... 25 1.4 简单的查询.................................................................................................. 27 1.4.1 查询一个字段................................................................................... 27 1.4.2 查询多个字段................................................................................... 28 1.4.3 查询全部字段................................................................................... 29 1.4.4 计算员工的年薪............................................................................... 29 1.4.5 将查询出来的字段显示为中文....................................................... 30 1.5 条件查询...................................................................................................... 31 1.5.1 、等号操作符................................................................................... 31 1.5.2 、 <>操作符..................................................................................33 1.5.3 、between … and …操作符............................................................. 34
1.5.4 、is null............................................................................................. 35 1.5.5 、 and................................................................................................36 1.5.6 、or....................................................................................................36 1.5.7 、表达式的优先级........................................................................... 36 1.5.8 、in.................................................................................................... 37 1.5.9 、not.................................................................................................. 38 1.5.10 、like............................................................................................... 39 Like 中%和下划线的差别?......................................................................................40 1.6 、排序数据.................................................................................................. 40 1.6.1 、单一字段排序............................................................................... 40 1.6.2 、手动指定排序顺序....................................................................... 42 1.6.3 、多个字段排序............................................................................... 43 1.6.4 、使用字段的位置来排序............................................................... 43 1.7 、数据处理函数.......................................................................................... 44 1.7.1 、lower.............................................................................................. 44 1.7.2 、upper.............................................................................................. 45 1.7.3 、substr..............................................................................................45 1.7.4 、length............................................................................................. 46 1.7.5 、trim.................................................................................................46 1.7.6 、str_to_date......................................................................................46 1.7.7 、date_format....................................................................................47 1.7.8 、format.............................................................................................48 1.7.9 、round..............................................................................................49 1.7.10 、rand() ............................................................................................49 1.7.11 、case … when … then …end........................................................ 50 1.8 、聚合函数.................................................................................................. 51 1.8.1 、count.............................................................................................. 52 Count(*)表示取得所有记录,忽略 null,为 null 的值也会取得........................... 52 1.8.2 、sum.................................................................................................53 1.8.3 、avg..................................................................................................54 1.8.4 、max................................................................................................ 54 1.8.5 、min................................................................................................. 55 1.8.6 、组合聚合函数............................................................................... 55
1、 2、 3、 1.9 、分组查询.................................................................................................. 56 1.9.1 、group by.........................................................................................56 1.9.2 、having............................................................................................ 57 根据条件查询数据....................................................................................... 57 分组............................................................................................................... 57 采用 having 过滤,取得正确的数据.......................................................... 57 1.9.3 、select 语句总结............................................................................. 57 1.10 、连接查询................................................................................................ 58 1.10.1 、SQL92 语法.................................................................................58 1.10.2 、SQL99 语法.................................................................................63 1.11 、子查询.................................................................................................... 65 1.11.1 、在 where 语句中使用子查询,也就是在 where 语句中加入 select 语句............................................................................................................. 65 1、首先取得管理者的编号,去除重复的............................................................... 65 1.11.2 、在 from 语句中使用子查询,可以将该子查询看做一张表....66 1、首先取得管理者的编号,去除重复的............................................................... 66 1.11.3 、在 select 语句中使用子查询...................................................... 68 1.12 、union....................................................................................................... 69 1.12.1 、union 可以合并集合(相加)................................................... 69 1.13 、limit 的使用............................................................................................70 1.13.1 、取得前 5 条数据......................................................................... 70 1.13.2 、从第一条开始取两条数据......................................................... 71 1.13.3 、取得薪水最高的前 5 名............................................................. 71 1.14 、添加、修改和删除................................................................................ 71 1.14.1 、insert............................................................................................ 76 1.14.2 、update...........................................................................................80 1.14.3 、delete............................................................................................80 1.15 、存储引擎................................................................................................ 89 1.15.1 存储引擎的使用............................................................................. 89 1.15.2 常用的存储引擎............................................................................. 91 1.15.3 MyISAM 存储引擎..........................................................................91 1.15.4 InnoDB 存储引擎............................................................................ 91 1.15.5 MEMORY 存储引擎....................................................................... 91
1.15.6 选择合适的存储引擎..................................................................... 92 1.16 、事务........................................................................................................ 92 1.16.1 概述................................................................................................. 92 1.16.2 事务的提交与回滚演示................................................................. 93 START TRANSACTION;.......................................................................................... 94 1.16.3 自动提交模式................................................................................. 94 1.16.4 事务的隔离级别............................................................................. 95 SET TRANSACTION ISOLATION LEVEL REPEATABLE READ;................... 98 1.17 表................................................................................................................ 71 1.17.1 创建表............................................................................................. 71 1.17.2 、创建表加入约束......................................................................... 74 1.17.3 、t_student 和 t_classes 完整示例................................................. 88 1.17.4 、增加/删除/修改表结构............................................................... 74 1.17.5 、增加/删除/修改表约束............................................................... 88 1.17.6 、索引........................................................................................... 100 1.18 、视图...................................................................................................... 102 1.18.1 、什么是视图............................................................................... 102 1.18.2 、创建视图................................................................................... 103 1.18.3 、修改视图................................................................................... 103 1.18.4 、删除视图................................................................................... 104 1.19 、DBA 命令.............................................................................................104 1.19.1 、新建用户................................................................................... 104 1.19.2 、授权........................................................................................... 104 1.19.3 、回收权限................................................................................... 105 1.19.4 、导出导入................................................................................... 105 1.20 、数据库设计的三范式.......................................................................... 106 1.20.1 、第一范式................................................................................... 106 1.20.2 、第二范式................................................................................... 107 1.20.3 、第三范式................................................................................... 108 1.20.4 、三范式总结............................................................................... 109 2. 、作业................................................................................................................ 110 2.1 3.1、取得每个部门最高薪水的人员名称................................................ 110 2.2 3.2、哪些人的薪水在部门的平均薪水之上............................................ 110
2.3 3.3、取得部门中(所有人的)平均的薪水等级,如下:.................... 110 2.4 3.4、不准用组函数(Max),取得最高薪水(给出两种解决方案).111 1、先把所有的薪水按降序排列............................................... 错误!未定义书签。 1、 将 emp 作为两个表,进行比较,得出最大值以外的所有值错误!未定义 书签。 1、 4、 1、 3、 1、 1、 1、 2.5 3.5、取得平均薪水最高的部门的部门编号(至少给出两种解决方案) ........................................................................................................................... 111 取得每个部门的平均薪水........................................... 错误!未定义书签。 取得平均薪水的最大值............................................... 错误!未定义书签。 先取得部门的平均薪水............................................... 错误!未定义书签。 2.6 3.6、取得平均薪水最高的部门的部门名称............................................ 111 2.7 3.7、求平均薪水的等级最低的部门的部门名称.................................... 112 取得部门平均薪水等级............................................... 错误!未定义书签。 然后取得部门代码....................................................... 错误!未定义书签。 2.8 3.8、取得比普通员工(员工代码没有在 mgr 字段上出现的)的最高薪水还 要高的经理人姓名........................................................................................... 112 先取得经理人............................................................... 错误!未定义书签。 取得经理人的薪水,与普通员工最高薪水对比....... 错误!未定义书签。 2.9 3.9、取得薪水最高的前五名员工............................................................ 112 2.10 3.10、取得薪水最高的第六到第十名员工............................................ 113 2.11 3.11、取得最后入职的 5 名员工............................................................ 113 2.12 3.12、取得每个薪水等级有多少员工.................................................... 114 2.13 3.13、面试题............................................................................................ 114 SC(SNO,CNO,SCGRADE)代表(学号,课号,成绩)........................... 114 CREATE TABLE SC................................................................................................114 CREATE TABLE S...................................................................................................115 CREATE TABLE C.................................................................................................. 115 INSERT INTO SC ( SNO, CNO, SCGRADE ) VALUES ( '1', '1', '40');................. 115 INSERT INTO SC ( SNO, CNO, SCGRADE ) VALUES ( '1', '2', '30');................. 115 INSERT INTO SC ( SNO, CNO, SCGRADE ) VALUES ( '1', '3', '20');................. 115 INSERT INTO SC ( SNO, CNO, SCGRADE ) VALUES ( '1', '4', '80');................. 115 INSERT INTO SC ( SNO, CNO, SCGRADE ) VALUES ( '1', '5', '60');................. 115 INSERT INTO SC ( SNO, CNO, SCGRADE ) VALUES ( '2', '1', '60');................. 115
INSERT INTO SC ( SNO, CNO, SCGRADE ) VALUES ( '2', '2', '60');................. 115 INSERT INTO SC ( SNO, CNO, SCGRADE ) VALUES ( '2', '3', '60');................. 116 INSERT INTO SC ( SNO, CNO, SCGRADE ) VALUES ( '2', '4', '60');................. 116 INSERT INTO SC ( SNO, CNO, SCGRADE ) VALUES ( '2', '5', '40');................. 116 INSERT INTO SC ( SNO, CNO, SCGRADE ) VALUES ( '3', '1', '60');................. 116 INSERT INTO SC ( SNO, CNO, SCGRADE ) VALUES ( '3', '3', '80');................. 116 2.14 3.14、列出所有员工及直接上级的姓名................................................ 116 2.15 3.15、列出受雇日期早于其直接上级的所有员工的编号,姓名,部门名称 ........................................................................................................................... 117 2.16 3.16、列出部门名称和这些部门的员工信息,同时列出那些没有员工的部 门......................................................................................... 错误!未定义书签。 2.17 3.17、列出至少有 5 个员工的所有部门................................................ 118 2.18 3.18、列出薪金比"SMITH"多的所有员工信息.....................................118 2.19 3.19、列出所有"CLERK"(办事员)的姓名及其部门名称,部门的人数.119 2.20 3.20、列出最低薪金大于 1500 的各种工作及从事此工作的全部雇员人 数....................................................................................................................... 119 2.21 3.21、列出在部门"SALES"<销售部>工作的员工的姓名,假定不知道销售 部的部门编号................................................................................................... 119 2.22 3.22、列出薪金高于公司平均薪金的所有员工,所在部门,上级领导,雇员 的工资等级....................................................................................................... 120 2.23 3.23、列出与"SCOTT"从事相同工作的所有员工及部门名称............ 120 2.24 3.24、列出薪金等于部门 30 中员工的薪金的所有员工的姓名和薪金. ........................................................................................................................... 120 2.25 3.25、列出薪金高于在部门 30 工作的所有员工的薪金的员工姓名和薪 金.部门名称...................................................................................................... 121 2.26 3.26、列出在每个部门工作的员工数量,平均工资和平均服务期限... 121 2.27 3.27、列出所有员工的姓名、部门名称和工资。................................ 121 2.28 3.28、列出所有部门的详细信息和人数................................................ 122 2.29 3.29、列出各种工作的最低工资及从事此工作的雇员姓名................ 122 2.30 3.30、列出各个部门的 MANAGER(经理)的最低薪金........................ 122 2.31 3.31、列出所有员工的年工资,按年薪从低到高排序........................... 123 2.32 3.32、查出某个员工的上级主管,并求出这些主管中的薪水超过 3000. ........................................................................................................................... 123 2.33 3.33、求出部门名称中,带'S'字符的部门员工的工资合计、部门人数.
........................................................................................................................... 124 2.34 3.34、给任职日期超过 30 年的员工加薪 10%......................................124
1. 内容 1.1 数据库概述及数据准备 1.1.1 SQL 概述 SQL,一般发音为 sequel,SQL 的全称 Structured Query Language),SQL 用来和 数据库打交道,完成和数据库的通信,SQL 是一套标准。但是每一个数据库都 有自己的特性别的数据库没有,当使用这个数据库特性相关的功能,这时 SQL 语 句可能就不是标准了.(90%以上的 SQL 都是通用的) 1.1.2 什么是数据库 数据库,通常是一个或一组文件,保存了一些符合特定规格的数据,数据库对应 的英语单词是 DataBase,简称:DB,数据库软件称为数据库管理系统(DBMS),全 称为 Database Management System,如:Oracle、SQL Server、MySql、Sybase、informix、 DB2、interbase、PostgreSql 。 1.1.3 MySql 概述 MySQL 最 初 是 由 “ MySQL AB” 公 司 开 发 的 一 套 关 系 型 数 据 库 管 理 系 统 (RDBMS-Relational Database Mangerment System)。 MySQL 不仅是最流行的开源数据库,而且是业界成长最快的数据库,每天有超 过 7 万次的下载量,其应用范围从大型企业到专有的嵌入应用系统。 MySQL AB 是由两个瑞典人和一个芬兰人:David Axmark、Allan Larsson 和 Michael “Monty” Widenius 在瑞典创办的。 在 2008 年初,Sun Microsystems 收购了 MySQL AB 公司。在 2009 年,Oracle 收购了 Sun 公司,使 MySQL 并入 Oracle 的数据库产品线。 1.1.4 MySql 的安装 打开下载的 mysql 安装文件 mysql-essential-5.0.22-win32.msi,
分享到:
收藏