成为MySQL大神的基础~

  • 【1】显示mysql信息:

mysql> status;

  • 【2】退出mysql:

mysql> exit;

  • 【3】查看数据库名:

mysql> show databases;

  • 【4】查看表名:

mysql> show tables;

  • 【5】创建数据库:

mysql> create database abc;

  • 【6】连接数据库:

mysql> use abc;
Database changed

  • 【7】创建表:

mysql> create table biao1 (id int primary key ,name char(8),age int )
-> ; Query OK, 0 rows affected (0.03 sec)
解释:query:询问,怀疑          row:一行              affected:受到影响的             sec:秒,片刻

  • 【8】查看表结构:

mysql> desc biao1;       //注意:在MySQL中,默认int类型字符长度为11

  • 【9】插入数据:

mysql> insert into biao1 (id,name) values (1,‘z1’);
mysql> insert into biao1 (id,name) values (2,‘z2’);

批量插入数据:

mysql> insert into biao1  values (3,'huai',13), 
    -> (4,'xin',18),
    -> (5,'ww',12);
Query OK, 3 rows affected (0.00 sec)
Records: 3  Duplicates: 0  Warnings: 0
或
mysql> insert biao1 select 
    -> 8,'qq',18
    -> union select 9,'ww',18
    -> union select 10,'ee',19;
Query OK, 3 rows affected (0.01 sec)
Records: 3  Duplicates: 0  Warnings: 0
  • 【10】查看数据:
mysql> select * from biao1;
mysql> select * from biao1 limit 3;                       //显示出biao1中前三行的数据
mysql> select * from biao1 order by id desc;             //以id为降序排序,显示出所有内容
mysql> select * from biao1 order by id desc limit 3;    //以id为降序排序,显示出前三行的内容
  • 【11】修改数据:

mysql> update biao1 set name=‘zzz’ where id=2;

  • 【12】删除数据:

mysql> delete from biao1 where id=2;

  • 【13】删除表:

mysql> drop table biao1;

  • 【14】删除数据库:

mysql> drop database abc;

  • 【15】、输入加密数据【针对某一字段进行加密】

mysql> create table biao2 (name char(10),pass char(48));                   //注意:这里的char(48)对应的是加密后的字符长度以及类型!!!                                                                                                                                           且加密后的字符长度最小为41

mysql> insert into biao2 values ('zhang1',password('123'));

mysql> insert into biao3 values (haha,password(123));          //中文必须加''号
ERROR 1054 (42S22): Unknown column 'haha' in 'field list'

mysql> insert into biao2 values ('haha',password(123));       //数字加密可以不加引号!!!
Query OK, 1 row affected (0.00 sec)

mysql> insert biao3 values ('qq',123);            //into甚至都可以省略不懈
mysql> select * from biao2;
效果图;
+--------+-------------------------------------------+
| name   | pass                                      |
+--------+-------------------------------------------+
| zhang1 | *23AE809DDACAF96AF0FD78ED04B6A265E05AA257 |
| haha   | *23AE809DDACAF96AF0FD78ED04B6A265E05AA257 |
| qq     | 123                                       |
+--------+-------------------------------------------+
3 rows in set (0.00 sec)
  • 【16】、数据库授权

理论:mysql权限管理

(1)mysql默认权限是允许root用户本地localhost登录和访问数据库。
(2)数据库用户名如果不存在,授权命令会直接创建此用户,并设置授权密码。

授权:

语法格式: mysql> grant 权限 on 库名.表名 to ‘数据库用户名’@‘允许访问的主机’ identified by ‘授权密码’;
grant:同意,允许       identified:确认,鉴定

例如:添加一个名为xixi的数据库用户,并允许其从“本机”访问,对abc数据库的biao1,具有查询权限,验证密码为‘123456’
mysql> grant select on abc.biao1 to ‘xixi’@‘localhost’ identified by ‘123456’;
注意: 这里的本机不能使用127.0.0.1或本机真实IP地址(否则不会生效)

举例:

[root@localhost ~]# mysql -u root -p123.com
mysql> grant select on t325.biao1 to 'xixi'@'localhost' identified by '123.com';
Query OK, 0 rows affected (0.08 sec)
mysql> exit
Bye
[root@localhost ~]# mysql -u xixi -p123.com
mysql> use t325;
mysql> select * from biao1;
mysql> delete from biao1 where id=3;
ERROR 1142 (42000): DELETE command denied to user 'xixi'@'localhost' for table 'biao1'

特殊示例:
创建一个名zhangsan的数据库用户,并允许192.168.10.0网段内任意主机,通过此远程登录到数据库,并具有对【所有库和表】的任意权限 !

grant all on * . * to ‘zhang3’@‘192.168.10.%’ identified by ‘123.com’;

客户端远程登录数据库:
客户端安装mysql客户端软件。mariadb {MariaDB是作为开源软件开发的,作为关系数据库,它提供了一个用于访问数据的SQL接口。}

方法一:安装开源mysql rpm -ivh /media/Packages/mariadb-5.5.52-1.el7.x86_64.rpm

方法二:yum -y install mariadb

客户端访问:

mysql -u 用户 -p -h 192.168.10.1 -p 授权密码


查看授权:

查看当前用户的授权:
show grants;

查看指定数据库用户的授权:
mysql> show grants for ‘用户名’@‘允许访问的主机’
mysql> show grants for ‘xixi’@‘localhost’;

查看数据库用户信息:
select * from mysql.user;

mysql> use mysql                     //切换到系统库
mysql> select * from user\G         //查询表权限,并以格式输出查看用户授权


撤销授权:

mysql> revoke 权限 on 库名.表名 from ‘数据库用户名’@‘允许访问的主机’
revoke create on . from ‘zhang3’@‘192.168.10.%’;

举例:

mysql> revoke select on t325.biao1 from 'xixi'@'localhost';
Query OK, 0 rows affected (0.00 sec)
mysql> exit
Bye
[root@localhost ~]# mysql -u xixi -p123.com
mysql> use t325
ERROR 1044 (42000): Access denied for user 'xixi'@'localhost' to database 't325'
权限列表:

SELECT,	查询
INSERT, 添加数据
UPDATE, 修改数据
DELETE, 删除数据
CREATE, 创建表
DROP,   删除表
all 所有权限
RELOAD, 重新加载(服务配置)
SHUTDOWN, 关闭服务
PROCESS,   进程管理
FILE,     文件管理
REFERENCES,  参照?
INDEX, 	  索引
ALTER,    修改库或表结构
SHOW DATABASES,   查看库
SUPER, 
CREATE TEMPORARY TABLES,  创建临时表
LOCK TABLES,    锁定表
EXECUTE,        执行存储过程,调用存储过程
REPLICATION SLAVE,   允许从服务器复制
REPLICATION CLIENT,  允许客户端复制
CREATE VIEW,    创建视图
SHOW VIEW,      查看视图名
CREATE ROUTINE,   
ALTER ROUTINE, 
CREATE USER,    创建用户
EVENT,          事件处理,事务处理
TRIGGER, 	触发器
CREATE TABLESPACE  创建表空间(库管理结构)
注意:当赋予多个权限时,用,号隔开权限
  • 【17】、添加字段

alter table biao1 add column age int;

  • 【18】、修改字段名

(1)alter table biao1 change age ages int;

(2)mysql> alter table biao1 change ages age char(100);     //使用修改字段名也可以修改数据类型

  • 【19】、添加多个字段

alter table biao1 add (sex char(4),jg char(10))

  • 【20】移动字段位置

alter table 表名 change 字段名 新字段名 字段类型 约束 after 字段名(跳到哪个字段之后)

例:
mysql> alter table biao3 change sex xb char(8) default’nan’ after pass;         after:在…之后

mysql> desc biao3;
+-------+-----------+------+-----+---------+-------+
| Field | Type      | Null | Key | Default | Extra |
+-------+-----------+------+-----+---------+-------+
| name  | char(10)  | YES  |     | NULL    |       |
| pass  | char(48)  | YES  |     | NULL    |       |
| xb    | char(8)   | YES  |     | nan     |       |
| age   | char(100) | YES  |     | NULL    |       |
| gz    | int(11)   | YES  |     | NULL    |       |
+-------+-----------+------+-----+---------+-------+
5 rows in set (0.15 sec)

动一动你可爱的小手点个赞吧!在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_50573146/article/details/109895689