【MySql】CentOS7下的Mysql基础操作

centos7下mysql的卸载与安装
卸载:https://blog.csdn.net/Xiayebuliang/article/details/128133207

安装:https://blog.csdn.net/korry24/article/details/118079490

  • 启动服务:systemctl start mysqld
  • 连接服务:mysql -uroot -p

SQL分类之DQL、DDL、DML、DCL

  • DQL:数据检索语句,如select(开发掌握,运维了解)
  • DML:数据操作语句,如insert(开发掌握,运维了解)
  • DDL:授权控制,如grant、revoke(运维掌握,开发了解)
  • DCL:数据定义,如create、drop、alter(运维开发都要会)

DDL创建数据实践

DDL

创建数据库,删除数据库,添加字段,表索引

#创建数据库
create database 数据库名;
create database if not exists 数据库名; #如果该数据库不存在,就创建
create database 数据库名 default charset UTF8; #创建数据库,字符集设置为UTF8

#查看数据库(bata)
show databases;

#删除数据库

DQL指定查询用户信息

#进入到数据库
use 数据库名;

#查看当前处在的数据库
select database();

#查看当前数据库的所有表
show tables;

#查看表结构
desc 表名;

#查看表所有记录
select * from 表名;

DML查询数据与大坑注意

insert

update

delete

#delete 删除记录
delete from 数据库.where 条件;

DCL授权于用户权限管理

#创建mysql的用户,并设置权限
#创建一个账号,用于数据库连接,以及查看数据库信息
create user 用户名@'授权网段' identified by '密码'; #允许任何网段,则使用%号

#查询用户权限信息
show grants for 用户名@'%';

#给用户给予权限。
grant 权限 on 数据库.数据表 to 用户名@'%';

查看DDL语句帮助信息

linux命令帮助手册

man ls;

mysql帮助信息DDL

create 创建

alter 修改

drop 删除

#查看DDL语句的具体指令
? Data Definition;

#查看use命令的用法;
? use;

DCL语句帮助信息

DCL命令语句

  1. grant
  2. revoke
  3. commit
  4. rollback

帮助信息

? Account Management;
#演示
mysql> ? Account Management;
You asked for help about help category: "Account Management"
For more information, type 'help <item>', where <item> is one of the following
topics:
   ALTER USER
   CREATE USER
   DROP USER
   GRANT
   RENAME USER
   REVOKE
   SET PASSWORD

DML语句帮助查看

? Data Manipulation;

先看DDL和DCL

  • DDL:数据定义
  • DCL:权限控制

创建kings数据库与查看字符集

  • 创建kings数据库
#严谨的写法(大小写不敏感)
create database if not exists kings default charset utf8 collate utf8_general_ci;
  • 查询当前数据库的字符集信息
mysql> show variables like 'char%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | latin1                     |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | latin1                     |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.01 sec)

坦克数据表详解

#创建坦克表
create table `tanks`(
id int,
name varchar(100) not null,
skills varchar(255) not null,
price int not null,
primary key(id)
)engine=innodb default charset=utf8;

drop语句

插入数据

insert into tanks(id,name,skills,price)values
(1,'程咬金','大招回血,血量越低,伤害越高',8888),
(2,'庄周','免疫所有队友的负面控制',2888);

drop语句

#删除无用的数据库
drop database if exists 数据库名;

#删除数据表
drop table if exists 数据库名;

mysql用户权限管理

#创建用户的语法
create user '用户名'@'网段' identified by '密码';

#查看权限
show grants for '用户名'@'网段';

#添加权限
grant 权限1,权限2,权限3 on 数据库.数据表 to 用户名@网段 identified by '密码';

#删除用户信息
drop user 用户名@网段;

SQL安全与linux安全防护

开发、测试需要连接数据库,

开通远程连接的账号,读写数据库

#创建一个账号,并给予读写,更新,删除权限
grant select,insert,update,delete on 数据库.数据表 to 用户名@'%' identified by '密码';

#创建好后,记得刷新权限
flush privileges;

授权的极大特性

  • 权限,尽量避免使用all privileges
  • 主机,尽量避免使用%,必要使用,请更改默认端口
  • 授权的数据库,尽量避免使用*.*

python读写操作

安装python3

yum install python3 python3-devel

安装python操作mysql的驱动

pip3 install pymysql

编写脚本

vim pytho3_mysql_read_write.py

脚本内容

import pymysql 
# 连接
# 使用该普通用户,连接数据库写入数据
conn = pymysql.Connect(host="10.211.55.12", port=3307, user="pyy",passwd="pyyu888",db="kings")
# 创建游标
cursor = conn.cursor()
# 插入数据
sql="insert into heros(id,name) values('1','芈月')"
# 执行sql,并返回受影响的行数
rows = cursor.execute(sql)
print(f" 插入了{rows} 行数据")
# 执行查询SQL
cursor.execute("select * from heros;")
print(f"查出的结果是: {cursor.fetchall()}")
# 提交事务
conn.commit()
# 关闭游标
cursor.close()
# 关闭连接
conn.close()

执行脚本

python3 pytho3_mysql_read_write.py

alter语句

rename修改表名

rename table 旧表名 to 新表名;

alter修改表名

alter table 旧表名 rename to 新表名;

修改表字段

alter table 表名 add 字段名 数据类型 其他属性;

在指定位置插入字段

#插入到某一个字段子后
alter table 表名 add 字段名 数据类型 其他属性 after 另一个字段名

删除字段

alter table 表名 drop 字段;

修改表数据类型

alter table 表名 change 旧字段名 新字段名 新数据类型;

索引

索引

索引犹如一本书的目录,通过目录可以快速定位到内容的位置。给字段添加索引,可以加快数据查询速度。

查看索引

#结果中的primary key是主键,也是索引,key_name即是索引名
show index from 数据库.数据表;

添加索引

alter table 表名 add index 索引名(字段名);

删除索引

alter table 表名 drop index 索引名;

详解delete删除数据的坑

删除数据库

drop database 数据库名;

删除数据库表

drop table 表名;

使用delete删除数据库表内容

  • delete是一行一行的删除,对于大容量表就显得效率低
  • delete对于自增id的列,删除数据后,会保留id的位置(如使用该方法清除数据后,新插入的数据id就会接着之前的id进行自增)
delete from 数据表;
delete from 数据表 where 条件;

modify指令

修改数据类型,及其其他属性

alter table 表名 modify 字段名 长度 其他属性;

tuncate语句

truncate语句直接清空数据,重新建立一个表

不存在自增id的问题

truncate table 表名;

分页查询:limit

select * from 表名 limit 起点,数目;

数据表排序:order by

  • asc:从小到大,默认
  • desc:从大到小
#从小到大排
select * from 表名 order by 字段名 asc;
#从大到小排
select * from 表名 order by 字段名 desc;

数据修改:update

#修改单个内容
update 表名 set 字段名=需要修改的内容 where 条件;

#修改多个内容
update 表名 set 字段1=内容1,字段2=内容2 where 条件;
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值