22-MYSQL数据库-2

在外面把脚本导入进去。

                        22-MYSQL数据库-2

 

                在外面就可以显示内部数据库列表。

                        22-MYSQL数据库-2

 

                进入数据库,查看hellodb 数据库中的 列表。

                        22-MYSQL数据库-2

 

                显示所有学生列表。

                        22-MYSQL数据库-2

 

                显示所有课程列表。

                        22-MYSQL数据库-2

 

                显示所有老师。

                        22-MYSQL数据库-2

 

                显示学生列表的指定字段。

                        22-MYSQL数据库-2

 

                倒换学生列表的字段 进行显示。

                        22-MYSQL数据库-2

 

                用别名替换英文名字。方便用户阅读。

                        22-MYSQL数据库-2

 

                显示学生列表中大于30岁的 。

                        22-MYSQL数据库-2

 

                显示学生列表中 年龄大于20 小于 40 的。

                        22-MYSQL数据库-2

                

                显示学生列表中 name 字段为 许仙的。

                        22-MYSQL数据库-2

 

                显示学生列表中  name 字段 是 xu 开头的。

                        22-MYSQL数据库-2

 

                显示学生列表中  name 字段 包含 on的。

                        22-MYSQL数据库-2

 

                select 支持 加减乘除

                        22-MYSQL数据库-2

 

                显示 学生表中 classid 为空的。

                        22-MYSQL数据库-2

 

                显示 学生表中 teacherid 为非空的。

                        22-MYSQL数据库-2

 

                显示 学生表中 classid 包含 1 2 6  的。

                        22-MYSQL数据库-2

 

                显示 学生表中 classid 不包含 1 2 6  的。

                        22-MYSQL数据库-2

 

                显示学生表年龄字段所有信息。

                        22-MYSQL数据库-2

 

                显示学生表年龄字段非重复信息。

                        22-MYSQL数据库-2

 

                显示学生表年龄字段所有信息。按正序排序。

                        22-MYSQL数据库-2

 

                显示学生表年龄字段所有信息。按倒序排序。

                        22-MYSQL数据库-2

切换到db2 数据库 显示表,  显示表 字段。

                        22-MYSQL数据库-2

 

                在表中插入数据,包括中国字。

                        22-MYSQL数据库-2

 

                查看是否成功

                        22-MYSQL数据库-2

 

                查看字符长度是2个的。查看字符长度是3个的。

                        22-MYSQL数据库-2

 

                查看字符长度是7个的。

                        22-MYSQL数据库-2

 

                查看字符是x开头的。

                        22-MYSQL数据库-2

 

                用正则表达式,查找x开头的。

                        22-MYSQL数据库-2

 

                查找结尾是n的。

                        22-MYSQL数据库-2

 

                查看学生表,name字段 正序排序显示。

                        22-MYSQL数据库-2

 

                显示学生表所有行。查看studi 字段,共有多少行。查看classid,一共23行,少两行是因为 表中有空值。

                        22-MYSQL数据库-2

 

                显示学生表,年龄的求和。

                        22-MYSQL数据库-2

 

                显示学生表。年龄的最大值。

                        22-MYSQL数据库-2

 

                显示学生表,年龄最小值。和平均值。

                        22-MYSQL数据库-2

 

                显示学生表,男生年龄平均值和女生年龄平均值。

                        22-MYSQL数据库-2

 

                显示学生表,男生年龄最大值,女生年龄最大值。

                        22-MYSQL数据库-2

 

                显示学生表,性别和选课分组下 年龄最大值。

                        22-MYSQL数据库-2

 

                显示女生年龄最大值。

                        22-MYSQL数据库-2

 

                显示 学生列表,年龄字段,倒序,取倒数三个。

                        22-MYSQL数据库-2

 

                显示 学生列表,年龄字段,倒序,隔过2个,取3个。

                        22-MYSQL数据库-2

 

                把学生列表和 老师 列表组合起来,报错提示,字段数量不符合。

                        22-MYSQL数据库-2

 

                选择 几个字段把学生表和老师表组合起来。

                        22-MYSQL数据库-2

                        22-MYSQL数据库-2

 

                把学生表 和 老师表 连接起来 显示出来。

                        22-MYSQL数据库-2

 

                在select 中 嵌套 select 称为子查询

                        显示 学生表和老师表 年龄大于50岁的。

                        22-MYSQL数据库-2

 

                显示学生表,年龄大于平均值的。

                        22-MYSQL数据库-2

 

                显示学生表和老师表 集合 笛卡尔积。

                        22-MYSQL数据库-2

 

                把两个表  学生表 和老师表 并排显示出来。把学生表的 teacherid = 老师表的 tid。

                        22-MYSQL数据库-2

 

                同上,但只显示我们想要看的就可以了。

                        22-MYSQL数据库-2

 

                此命令是,合并两张表,学生表和老师表,所有数据都保留,没有的就为空值。

                        22-MYSQL数据库-2

 

                此命令是,合并两张表,左边的和中间保留。左外连接。

                        22-MYSQL数据库-2

此命令是,合并两张表,右边的和中间保留。右外连接。

                        22-MYSQL数据库-2

 

                只取无交集 的表。

                        22-MYSQL数据库-2

 

                此命令是三表合并。

                        22-MYSQL数据库-2

 

                新建视图表。

                        22-MYSQL数据库-2

 

                查看表。

                        22-MYSQL数据库-2

 

                查看新建视图表,所有内容。

                        我们新建的视图表是实体表有选择的镜像,我们对视图表的任何修改都是对实体表修改。

                        22-MYSQL数据库-2

 

 

            用户账户和权限控制

 

 

                切换到数据库自己的数据库

                        22-MYSQL数据库-2

 

                显示数据库用户列表。

                        22-MYSQL数据库-2

 

                新建一个高骞用户,只能用192.168.174.6登陆。密码 centos

                        22-MYSQL数据库-2

 

                在centos 6 上安装mysql

                        22-MYSQL数据库-2

 

                成功了,安装了客户端和服务器端。

                        22-MYSQL数据库-2

 

                创建用户名密码。

                        22-MYSQL数据库-2

 

                使用用户名密码登陆。

                        22-MYSQL数据库-2

 

                查看数据库,发现只有两个,权限有问题。

                        22-MYSQL数据库-2

 

                查看正在登陆的用户,只有自己,权限有问题。

                        22-MYSQL数据库-2

 

                在服务器端 同样命令,查看正在登陆的用户。有两个。

                        22-MYSQL数据库-2

 

                查看用户列表,选择三个字段。

                        22-MYSQL数据库-2

 

                使用update 修改密码。但不生效。

                        22-MYSQL数据库-2

 

                没生效。

                        22-MYSQL数据库-2

 

                清空内存,重新加载。

                        22-MYSQL数据库-2

 

                生效配置后成功了。

                        22-MYSQL数据库-2

 

                查看数据库文件。包括配置文件和所有数据库数据文件。

                        22-MYSQL数据库-2

 

                查看用户账户表。

                        22-MYSQL数据库-2

 

                新建用户gaoqian  只能用特定网段登陆。密码是 centos 对任何数据库的任何表做任何操作。

                        22-MYSQL数据库-2

 

                查看用户是否创建成功了。

                        22-MYSQL数据库-2

 

                用客户机登陆。成功了

                        22-MYSQL数据库-2

 

                查看数据库。权限是最大。

                        22-MYSQL数据库-2

新建数据库,并查看。没问题。

                        22-MYSQL数据库-2

 

                新建一个 gaoqianqian 账号,赋予查询 hellodb 数据库权限。在指定网段,密码 centos

                        22-MYSQL数据库-2

 

                查看是否创建成功。

                        22-MYSQL数据库-2

 

                在客户机上登陆。没问题。

                        22-MYSQL数据库-2

 

                查看数据库,权限已经不是最大。

                        22-MYSQL数据库-2

 

                切换到hellodb数据库

                        22-MYSQL数据库-2

 

                更新数据库文件,发现权限失败。

                        22-MYSQL数据库-2

 

                我们赋予用户账户 update权限。

                        22-MYSQL数据库-2

 

                再次执行命令还是不行。

                        22-MYSQL数据库-2

 

                我们刷新内存,重新加载。

                        22-MYSQL数据库-2

 

                再次执行。还是不行。

                        22-MYSQL数据库-2

 

                我们退出数据库,再次进入,再次执行命令,成功了。

                        22-MYSQL数据库-2

 

                查看数据库,已经修改。没问题。

                        22-MYSQL数据库-2

    

                移除刚才建立的 gaoqian 账号对 数据库的删除权限,其它不变。

                        22-MYSQL数据库-2

 

                查看gaoqian 账号的所有权限。

                        22-MYSQL数据库-2

 

                查看当前登录的账号。

                        22-MYSQL数据库-2

 

                查看当前 账号的所有权限。

                        22-MYSQL数据库-2

 

                查看gaoqian账号的 具体权限。

                        22-MYSQL数据库-2

 

                mysql也是 单进程,  多线程的 服务。

                        22-MYSQL数据库-2

 

                查看数据库默认引擎。

                        22-MYSQL数据库-2

 

                删除yum第20个安装的 所有东西。

                        22-MYSQL数据库-2

 

                在chentos 6 上安装老版本数据库 和 客户端。

                        22-MYSQL数据库-2

 

                安装成功了。

                        22-MYSQL数据库-2

 

                启动服务。第一次启动。

                        22-MYSQL数据库-2

                        22-MYSQL数据库-2

                

                查看默认引擎 是老版本。

                        22-MYSQL数据库-2

我们查看数据库真实文件,看引擎之间的区别。

                        如果是老版本的话那么我们创建的数据库文件都是空的 ibdata1 就会非常大。所有表数据都在一个文件中。非常不好。

                        22-MYSQL数据库-2

 

                如果是新版本的话,那么我们创建的数据库以及文件都会分开几份存放,数据库类型  真是数据等。

                        22-MYSQL数据库-2

 

                查看数据库是否默认分表。

                        22-MYSQL数据库-2

 

                我们在老版本服务器上查看,默认是不分表的。

                        22-MYSQL数据库-2

 

                我们修改配置文件,使之分表。添加第二行。就可以了。

                        22-MYSQL数据库-2

 

                先重启服务。没问题。

                        22-MYSQL数据库-2

 

                再次查看是否分表。

                        22-MYSQL数据库-2

        

            但我们查看刚才的文件夹发现数据依然没有分表,那是因为我们的设置仅针对之后的数据库文件。之前的文件都保持不变。

                        22-MYSQL数据库-2

                    

                我们查看到已经分表,分数据啦。

                        22-MYSQL数据库-2

 

                数据库临时文件,关闭在重启后,里面数据就会丢失。

                        22-MYSQL数据库-2

 

                查看数据库默认的引擎。或者说是默认建表的引擎。新版本。

                        22-MYSQL数据库-2

 

                查看数据库默认的引擎。或者说是默认建表的引擎。老版本。

                        22-MYSQL数据库-2

 

                修改数据库默认引擎,为 InnoDB

                        22-MYSQL数据库-2

 

                重启服务。

                        22-MYSQL数据库-2

 

                再次查看,已经修改成功了。

                        22-MYSQL数据库-2

 

            3查询缓存优化

 

 

                查询数据库系统是否有缓存,以及缓存大小,如果没启用缓存,此处是空值。

                        22-MYSQL数据库-2

 

                我们把缓存设置为1M

                        22-MYSQL数据库-2

 

                我们进入配置文件,把缓存设置为10M

                        22-MYSQL数据库-2

重启服务,无问题。

                        22-MYSQL数据库-2

 

                再次查看缓存。已经成功啦

                        22-MYSQL数据库-2

 

                我们查看数据库缓存命中率等信息。

                        缓存了几条信息是第四行,命中率是第三行。第一行,处于空闲中的块数。最后一行是正在使用的总块数。

                        22-MYSQL数据库-2

 

                现在我们查看学生表。

                        22-MYSQL数据库-2

 

                再次查看命中率,命中率为0,但缓存了一条信息。因为是第一次查看,所以命中率是0。

                        22-MYSQL数据库-2

 

                再次查看学生表。

                        

 

                再次查看命中率,已经命中了一次啦。

                        22-MYSQL数据库-2

 

                再次查看学生表。

                        22-MYSQL数据库-2

 

                已经命中了2次啦!

                        22-MYSQL数据库-2

 

                我们再次查看学生表,注意命令,selecT我们大写了。命令不区分大小写。

                        22-MYSQL数据库-2

 

                我们看到并没有命中,明明是查询一样的表格,因为查询缓存是区分大小写的。所以我们看到又缓存了一条信息。

                        22-MYSQL数据库-2

 

                我们同样的大写命令,再查询一次。

                        22-MYSQL数据库-2

 

                我们再次查询命中率。已经成功啦

                        22-MYSQL数据库-2

 

 

            4索引优化

 

 

                查看学生表一共有多少索引。

                        22-MYSQL数据库-2

 

                查看学生表。

                        22-MYSQL数据库-2

 

                创建一个以姓名为字段的索引。

                        22-MYSQL数据库-2

    

                再次查看学生表的所有索引。一共2个了 第一个是主键,也是索引。

                        22-MYSQL数据库-2

 

                查看学生表,姓名为 小乔的。

                        22-MYSQL数据库-2

 

                查看刚才的命令是否用了索引。第一个ID:用了查询语句,如果两层 子查询语句,就会有多个IP号。第二行:简单查询。

                        第三行:学生表。第五行:可能用到的索引。第六行:用到的索引。

                        22-MYSQL数据库-2

 

                查看是否用到了索引,用到了主键索引。

                        22-MYSQL数据库-2

 

                查看是否用到了索引。注意:命令是查询姓名h开头,后面无所谓的。  \G代表竖着显示信息。

                        22-MYSQL数据库-2

 

                查看是否用到了索引。注意:命令是查询姓名u结尾,前面无所谓。这样就没用到索引。因为前面不关心,代表全表扫描,索引毫无意义。

                        22-MYSQL数据库-2

 

                在学生表,以姓名和年龄两个字段新建索引。

                        22-MYSQL数据库-2

 

                查看索引。多了两个索引,名字都一样,其实是一个索引。

                        22-MYSQL数据库-2

 

                查看学生表,姓名等于虚竹的 是否用到了索引。此处可能用到的索引有两个。真正用到的索引只有一个。

                        22-MYSQL数据库-2

 

                查看学生表中年龄等于 19 岁的人  是否用到了索引。没有。

                        22-MYSQL数据库-2

 

                我们建立学生表,年龄和姓名字段的 新索引。注意:年龄在前,姓名在后。

                        22-MYSQL数据库-2

 

                再次查看索引。多了两个索引。

                        22-MYSQL数据库-2

 

                查看学生表中年龄等于 19 岁的人  是否用到了索引。用到了新建的索引。

                        22-MYSQL数据库-2

 

                删除一个索引。

                        注意:drop 命令非常危险,不会记录日志,可以直接删除数据库和表,或者单条记录。

                        22-MYSQL数据库-2

 

                再次查看学生表中年龄等于 19 岁的人 ,因为我们删除了索引,所以没有索引可以用了。

                        22-MYSQL数据库-2

 

                再次查看索引,只有4个索引了。

                        22-MYSQL数据库-2

 

                查看学生表中,姓名以 X 开头的人。是否用到了索引,可能用到两个索引,但真实没用到索引。因为结果太多了。

                        如果看到可能用到索引,表示数据库会计算用哪种索引最合适,或者不用最合适。

                        22-MYSQL数据库-2

 

                查看学生表中,姓名以 X 开头的人。

                        22-MYSQL数据库-2

 

                查看学生表中,姓名以 L 开头的人并且年龄大于20的人。

                        用到了索引,并且又查询了具体的人。

                        22-MYSQL数据库-2

 

                启动事务功能。,查看事务表。

                        22-MYSQL数据库-2