22-MYSQL数据库-2

在外面把脚本导入进去。

                        

 

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

                        

 

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

                        

 

                显示所有学生列表。

                        

 

                显示所有课程列表。

                        

 

                显示所有老师。

                        

 

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

                        

 

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

                        

 

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

                        

 

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

                        

 

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

                        

                

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

                        

 

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

                        

 

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

                       

 

                select 支持 加减乘除

                        

 

                显示 学生表中 classid 为空的。

                        

 

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

                        

 

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

                        

 

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

                        

 

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

                        

 

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

                        

 

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

                        

 

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

                        

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

                        

 

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

                        

 

                查看是否成功

                        

 

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

                        

 

                查看字符长度是7个的。

                        

 

                查看字符是x开头的。

                        

 

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

                        

 

                查找结尾是n的。

                        

 

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

                        

 

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

                        

 

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

                        

 

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

                        

 

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

                        

 

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

                        

 

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

                        

 

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

                        

 

                显示女生年龄最大值。

                        

 

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

                        

 

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

                        

 

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

                        

 

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

                        

                        

 

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

                        

 

                在select 中 嵌套 select 称为子查询

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

                        

 

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

                        

 

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

                        

 

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

                        

 

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

                        

 

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

                        

 

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

                        

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

                        

 

                只取无交集 的表。

                        

 

                此命令是三表合并。

                        

 

                新建视图表。

                        

 

                查看表。

                        

 

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

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

                        

 

 

            用户账户和权限控制

 

 

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

                        

 

                显示数据库用户列表。

                        

 

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

                        

 

                在centos 6 上安装mysql

                        

 

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

                        

 

                创建用户名密码。

                        

 

                使用用户名密码登陆。

                        

 

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

                        

 

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

                        

 

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

                        

 

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

                        

 

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

                        

 

                没生效。

                        

 

                清空内存,重新加载。

                        

 

                生效配置后成功了。

                        

 

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

                        

 

                查看用户账户表。

                        

 

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

                        

 

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

                        

 

                用客户机登陆。成功了

                        

 

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

                        

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

                        

 

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

                        

 

                查看是否创建成功。

                        

 

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

                        

 

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

                        

 

                切换到hellodb数据库

                        

 

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

                        

 

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

                        

 

                再次执行命令还是不行。

                        

 

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

                        

 

                再次执行。还是不行。

                        

 

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

                        

 

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

                        

    

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

                        

 

                查看gaoqian 账号的所有权限。

                        

 

                查看当前登录的账号。

                        

 

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

                        

 

                查看gaoqian账号的 具体权限。

                        

 

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

                        

 

                查看数据库默认引擎。

                        

 

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

                        

 

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

                        

 

                安装成功了。

                        

 

                启动服务。第一次启动。

                        

                        

                

                查看默认引擎 是老版本。

                        

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

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

                        

 

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

                        

 

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

                        

 

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

                        

 

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

                        

 

                先重启服务。没问题。

                        

 

                再次查看是否分表。

                        

        

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

                        

                    

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

                        

 

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

                        

 

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

                        

 

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

                        

 

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

                        

 

                重启服务。

                        

 

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

                        

 

            3查询缓存优化

 

 

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

                        

 

                我们把缓存设置为1M

                        

 

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

                        

重启服务,无问题。

                        

 

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

                        

 

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

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

                        

 

                现在我们查看学生表。

                        

 

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

                        

 

                再次查看学生表。

                        

 

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

                        

 

                再次查看学生表。

                        

 

                已经命中了2次啦!

                        

 

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

                        

 

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

                        

 

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

                        

 

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

                        

 

 

            4索引优化

 

 

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

                        

 

                查看学生表。

                        

 

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

                        

    

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

                        

 

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

                        

 

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

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

                        

 

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

                        

 

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

                        

 

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

                        

 

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

                        

 

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

                        

 

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

                        

 

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

                        

 

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

                        

 

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

                        

 

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

                        

 

                删除一个索引。

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

                        

 

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

                        

 

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

                        

 

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

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

                        

 

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

                        

 

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

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

                        

 

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

                        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值