mysql 两表管理查询,MYSQL(数据库初了解、多表查询及用户的授权管理)

一、数据库小知识

1、数据库系统核心是DBMS,管理数据库的核心软件。最早的数据库是网状数据库,接下来是层次数据库,现在常见的数据库是关系型数据库,数据库大小写敏感。

{(1)关系 :关系就是二维表,其中:表中的行、列次序并不重要

(2)行row:表中的每一行,又称为一条记录,

(3)列column:表中的每一列,称为属性,字段

(4)主键Primary key:用于惟一确定一个记录的字段

(5)域domain:属性的取值范围,如,性别只能是‘男’和‘女’两个值}

2、数据库系统的架构

单机架构,大型主机/终端架构,主从式架构(C/S),分布式架构

3、数据库规范遵守前三范式就可以。((1)除去同类型的字段,就是无重复的列 (2 )属性完全依赖于主键 (3)属性不依赖于其它非主属性)

4、关系模型的分类: 关系模型 、基于对象的关系模型 、半结构化的关系模型:XML数据

5、MYSQL特性:插件式存储引擎,MYSQL5.5.5后innoDB是默认引擎。

6、MariaDB安装

二进制格式安装和源码编译安装

参考 https://www.jianshu.com/p/db80c427e2c5

7、mysqladmin使用

mysqladmin –help

查看mysql服务是否正常,如果正常提示mysqld is alive

mysqladmin -uroot -pcentos ping

关闭mysql服务,但mysqladmin命令无法开启

mysqladmin –uroot –pcentos shutdown

创建数据库testdb

mysqladmin -uroot –pcentos create testdb

删除数据库testdb

mysqladmin -uroot -pcentos drop testdb

修改root密码

mysqladmin –uroot –pcentos password ‘magedu’

日志滚动,生成新文件/var/lib/mysql/ mariadb-bin.00000N

mysqladmin -uroot -pcentos flush-logs

8、desc  user; 查询user表中信息

mysql_secure_installation   安全策略,安全脚本     使用数据库建议加安全策略  -U 避免误删除。

rpm  -q  --scripts   mariadb-server  查看装包时跑的脚本

9、创建一个新表,可以复制之前表的结构

create table student2 like test2.student      复制test2中的student表的全部格式,保留字符集格式

create table student3 select * from test2.student    把test2.student的查询结果创建成表

10、show variables like “%chara%”  查询字符集格式

mysql修改数据库客户端字符集为utf8mb4

/etc/my.cnf.d/mysql-clients.cnf中加  default-character-set=utf8mb4

mysql修改数据库服务器端字符集为utf8mb4

/etc/my.cnf 添加 character_set_server=utf8mb4

11、生产中注意sql注入

用户名:admin   密码:'空格or空格'1'='1       或者    用户名:admin'--    密码:'(单引号)

12、分组后过滤用having,分组前用where

搜索排序

select *from students order by age,desc  倒序

select *from students order by -classid desc  只针对数字排序,实现正序排,null在最后

子查询(select 的执行结果,被其它SQL调用)

小练习

1、 导入hellodb.sql生成数据库

a2f7028d660d

(1) 在students表中,查询年龄大于25岁,且为男性的同学的名字和年龄

a2f7028d660d

(2) 以ClassID为分组依据,显示每组的平均年龄

a2f7028d660d

(3) 显示第2题中平均年龄大于30的分组及平均年龄

a2f7028d660d

(4) 显示以L开头的名字的同学的信息

a2f7028d660d

二、多表查询

a2f7028d660d

students表及teachers表

a2f7028d660d

a2f7028d660d

联合查询(union 去重,union all 不去重)

a2f7028d660d

横向交叉连接

a2f7028d660d

内连接

a2f7028d660d

左外连接

a2f7028d660d

左外连接扩展

a2f7028d660d

右外连接

a2f7028d660d

完全外连接(full outer join)

a2f7028d660d

完全外连接扩展

a2f7028d660d

自连接

a2f7028d660d

a2f7028d660d

三、权限管理

创建用户

a2f7028d660d

修改密码

a2f7028d660d

忘记管理员密码的解决办法:

启动mysqld进程时,为其使用如下选项:

--skip-grant-tables --skip-networking

使用UPDATE命令修改管理员密码

关闭mysqld进程,移除上述两个选项,重启mysqld

授权(数据库授权magedu用户,允许192.168.1.0/24网段可以连接mysql)

a2f7028d660d

显示授予的权限

a2f7028d660d

删除授予的权限:revoke drop on mysql.* from magedu@'192.168.1.%';

四、存储引擎

{面} MyISAM特性:

不支持事务 ;表级锁定 ;读写相互阻塞,写入不能读,读时不能写 ;只缓存索引 ;不支持外键约束 ;不支持聚簇索引 ;读取数据较快,占用资源较少 ;不支持MVCC(多版本并发控制机制)高并发 ;崩溃恢复性较差 ;MySQL5.5.5前默认的数据库引擎

{面}innodb特性:(建议开启innodb_file_per_table单独使用一个表存储数据和索引)

行级锁;支持事务,适合处理大量短期事务;读写阻塞与事务隔离级别相关;可缓存数据和索引;支持聚簇索引;崩溃恢复性更好;支持MVCC高并发;从MySQL5.5后支持全文索引;从MySQL5.5.5开始为默认的数据库引擎

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值