MySQL数据库的基本操作

MySQL的安装

  • 安装 http://dev.mysql.com/downloads/mysql
    使用MySQL关闭防火墙,selinux,选择适合当前的bundle-包
    因为redhat系统自带Mariadb 所以需要升级安装并安装依赖包
    进程名 mysqld 所有者和所属组 mysql
yum -y install perl-JSON
tar -xf mysql-5.7.17-1.el7.x86_64.rpm
rpm -Uvh mysql-community-*.rpm      //升级安装
相关文件
/var/log/mysqld.log         //初始密码就在这个文件内(日志文件)
[root@mysql ~ ] #vim  /etc/my.cnf 
default-storage-engine=存储引擎名称
validate_password_policy=0   # 永久修改密码策略为0
validate_password_length=6   # 修改密码长度

权限密码修改方式

  1. 初始设置密码
[root@localhost ~]# mysql -uroot -p'初始密码'  -hlocalhost
// mysql -u用户名 -p密码  -h服务器
mysql>alter user root@localhost identified by "123_adcD";  
// 改密码来进行新的操作 
mysql> show global variables like "%password%"     //查看密码策略
mysql>set global validate_password_policy=0;      
//只验证长度  密码策略三个级别 0/low (长度) 1/medium 2/strong 
Query OK, 0 rows affected (0.00 sec)
mysql>set global validate_password_length=6;    
 //修改密码长度,默认值是8个字符 
Query OK, 0 rows affected (0.00 sec)
  1. 恢复管理员密码
vim  /etc/my.cnf
skip-grant-tables          //跳过授权表
systemctl restart mysqld   //重启mysql服务
mysql                      //进入数据库mysql
mysql>update mysql.user set authentication_string=password(“密码”) where  user=”root“  and  host=”localhost“;          //更新密码
mysql>flush privileges;    //刷新特权
vim  /etc/my.cnf
#skip-grant-tables           //取消跳过授权表
systemctl restart mysqld     //再次重启
mysql -uroot -p密码
  1. 在shell命令行修改登陆密码
mysqladmin -uroot -p password “新密码” 
enter password:                //输入旧密码      
  1. 重设用户密码
set password= password(“新密码”) //修改当前登录用户密码
set password for 用户名@‘客户端地址’=password(“新密码”)
//管理员修改其他用户密码
数据库存储
库 >表>记录

库名:就是类似于文件夹

use 库名 ;                 //进入库

表名:就是类似于文件

字段字段…
记录1记录(就是文件里的行)
记录2记录…
操作指令(重要)
DDL 数据定义语言 (create-创建 alter-更改 drop-删除)

create 命令,用来创建库,表,索引…

create     database  库名 ;                                      //创建库
create table  库名.表名(字段1  字段类型(宽度) 约束条件...);      //新建表
create table 新表  select 字段1..N from 源表 where 条件;          //复制表从源表,可以选择字段或者按照条件复制,不过不会复制对应的键值和存储引擎
create index 索引名 on 表名(字段名);                             //设置index字段

drop 命令 用来删除库,表,索引

drop    database  库名 ;                                         //删除库
drop   table 表名;                                              //删除表
drop   index 索引名 on 表名                                      //删除表的索引字段

alter 命令 用来 添加,更改,删除字段和主键,外键,重命名表名

alter table 表名 add/modify  字段  类型(宽度)  约束条件  after 字段名/first; //添加/修改字段
alter table 表名 add primary key(字段名);                      //设置主键
alter table 表名 change  源字段  新字段 类型(宽度) 约束条件;      //修改字段名 当跟新类型和约束条件时,也可修改字段类型
alter table  表名  drop 字段名;                                 //删除字段
alter table 表名 drop primary key;                             //删除主键,如果有自增,必须先删除
alter table 表名 drop  foreign key 约束名;                      //删除外键
alter table  表名  rename  新表名;                             //修改表名 相对应的文件名,也会改变;

库的命名规则:可以字母/数字/下划线 但不能纯数字,区分大小写,不可以使用指令关键字,特殊字符

DML 数据操作语言 (insert-插入 update-更新 delete-删除)

insert into 命令 用来 添加,修改表记录

insert into  表名  values(值列表);                    //插入表记录
insert into 表名  values(值列表),(值列表);           //添加多条记录
insert into 表名(字段值列表)  values(字段值列表);     //指定字段赋值
insert into  表名(字段值列表) values(值列表),(值列表);   //给多个指定字段赋值

update 命令 用来更新表记录

update   表名   set  字段=值,字段=值,.. where 条件表达式;                      
 //修改表记录(全部更新或者可以选择符合条件的记录)

delete from 命令 用来删除表记录

delete from  表名  where 条件表达式;     //删除表记录(全部删除或者仅删除符合条件的)
DCL 数据控制语言 (grant-赋予 revoke-撤销)

grant 命令 用来赋予用户权限

grant 权限列表 on 库名.表名  to 用户名@“客户端地址” identified by “密码”  [with grant option]  
 //  授权给某个用户,通过哪个主机和密码 [是否有授权权限]  登录
注:当库名.表名 为*.* 匹配所有库表 
    all/usage:所有权限/无权限 
    部分:select-查 update(字段1,字段2..)-更新 insert-插入
    客户端地址: %-匹配所有主机  192.168.1.%-某个网段   单个主机

revoke 命令 撤销用户权限

revoke 权限列表 on  库名.表名 from 用户名@“客户端地址”;     
//撤销用户某些权限(insert,select,index,create,grant option,delete,drop,reload,alter等)

注意,此命令不能删除用户

delete from mysql.user where user=“用户名”;         //删除某用户
flush privileges;                                   //必须刷新才能生效
drop user 用户名@“客户端地址”                  //直接删除用户,对应权限也相应删除
DTL 数据事务语言 (commit-提交 rollback-回滚 savepoint-保存点)
常用操作指令

show 命令 查看库,表,索引,用户,权限等信息

show databases/tables;     //查看库和表
show index from 表名 ;      //查看表的索引信息
show create table 表名\G;  //展示创建表的信息
show user();               //查看当前登录用户
show  grants;             //查看用户权限
show master status;       //查看当前正在使用的日志文件

foreign key … references… 命令 外键操作

fireign key(表A的字段名) references 表B(字段名)  on update cascade on delete cascade;
 // 外键的创建,同步更新同步删除

数据的导入和导出命令

load data infile "目录名/文件名"  into table 表名 fields terminated by  “分隔符”  lines terminated by “\n”; 
//数据的导入 导入到表内可以指定分隔符和换行符
select 字段 from 表名   where  字段名=值  limit N,M into outline “目录名/文件名”  fields terminated by  “分隔符”  lines terminated by “\n”  
// 数据导出的限定条件where,limit(限定行数,默认初始为0,查询第N+1行,并显示前M行),换行符,分隔符...可以不需要指定。

select 命令 基本查询库,表,记录

select  database();        //查看当前库
select user();             //查看当前用户
select  字段1,..,字段N from 表名 where 条件表达式;   
//查询表记录,条件可以选择添加,使用*匹配所有字段  

select 命令 处理查询相应结果

select count/max/min/sum/avg(字段名),字段名  from 表名  where 条件表达式 ;
//统计个数/最大/最小值/和/平均值
select  字段  from 表名  order by 字段名  [asc|desc]; 
 //查询结果排序
select 字段 from  表名 group by 字段名 having 条件表达式; 
 //结果分组并按照条件过滤
select 字段  from 表名 where 条件 having 条件表达式;  
//对查询结果过滤

select 命令 多表查询

select 字段名列表 from 表A,表B  where 条件;  
 //多表查询,可以按照条件,不过查询的结果为表A × 表 B 的总记录数 这个也叫笛卡尔集
select 字段名列表 from 表名 where 条件(select 字段名列表    from 表名 where 条件);  
//把内层查询结果作为外层查询的条件
select 字段名列表 from 表1 left/right  join 表2  on 条件表达式 ; 
//左/右链接查询,左链接以表1为主,右链接以表2 为主
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值