zoukankan      html  css  js  c++  java
  • Linux学习87 MariaDB高级操作实战

    一、DML:INSERT,DELETE,UPDATE,SELECT

      1、INSERT INTO:

        a、INSERT [INTO] tbl_name [col1,..)] {VALUES|VALUE} (val1,...)(...),...

        b、注意:

          字符型:引号

          数值型:不能用引号

      2、SELECT:

        a、SELECT * FROM tbl_name1,tbl_name2:返回指定表的所有数据。如果是大表的话就是一场噩梦。

        b、SELECT col1,col2,... FROM tbl_name;

          (1)、显示时,字段可以显示为别名

            col_name AS col_alias

            

            

        c、SELECT col1,... FROM tbl_name WHERE clause;

          (1)、WHERE clause:用于指明挑选条件

            1)、col_name 操作符 value:

              age > 30

            2)、操作符(1):

              >,<,>=,<=,==,!=

            3)、组合条件

              and

              or

              not

            4)、判断

          

          

          

          

           

          

          正则:

          

          5)、操作符(2)

            BETWEEN ... AND ...

            LIKE 'PATTERN'

              通配符:

                %:任意长度的任意字符

                _:任意单个字符

            PLIKE 'PATTERN'

              正则表达式对字符串做模式匹配

            ISNULL

            IS NOT NULL

        d、SELECT col1,... FROM tbl_name [WHERE clause] ORDER BY col_name,col_name2,...[ASC|DESC];

          (1)、ASC:升序

          (2)、DESC:降序

            

            

         e、分组:

          (1)、GROUP BY,为了聚合:

            1)、count(),sum(),avg(),max(),min()

            

            2)、HAVING:对聚合的结果做条件过滤

            

      3、DELETE:

        a、DELETE FROM tbl_name [WHERE where] [ORDER BY ...] [LIMIT row_count]

        b、DELETE FROM tbl_name WHERE where_condition

          

        c、DELETE FROM tbl_name [ORDER BY ...] [LIMIT row_count]

          

      4、UPDATE:

        a、

        b、示例

          

    二、用户账号及权限管理

      1、用户账号:'username'@'host'

        a、host:此用户访问当前mysql服务器时,允许其通过哪些主机远程创建连接

          (1)、表示方式:IP,网络地址,主机名,通配符(%和_)

        b、禁止检查主机名:my.cnf

          [mysqld]

          skip_name_resolve = ON

      2、创建用户账号:

        a、CREATE USER 'username'@'ho st' [IDENTIFIED BY 'password']

    MariaDB [(none)]> CREATE USER 'wohaoshuai'@'192.168.10.%' IDENTIFIED BY '123456';
    Query OK, 0 rows affected (0.01 sec)
    
    MariaDB [(none)]> q
    Bye
    [root@www ~]# mysql -uwohaoshuai -p123456 -h 192.168.10.13
    Welcome to the MariaDB monitor.  Commands end with ; or g.
    Your MariaDB connection id is 14
    Server version: 5.5.56-MariaDB MariaDB Server
    
    Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.
    
    Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
    MariaDB [(none)]>

      3、删除用户账号

        b、DROP USER 'user'@'host' [,user@host] ...

      4、授权

        a、权限级别:管理权限,数据库,表,字段,存储例程

        b、GRANT priv_type,... ON [object_type] db_name.tbl_name TO 'user'@'host' [IDENTIFIED BY 'password'];

          

          (1)、priv_type: ALL [PRIVILEGES]

          (2)、db_name.tbl_name:

            1)、*.*:所有库的所有表

            2)、db_name.*:指定库的所有表

            3)、db_name.tbl_name:指定库的特定表

            4)、db_name.routine_name:指定库上的存储过程或存储函数

          (3)、[object_type]

            1)、TABLE

            2)、FUNCTION

            3)、PROCEDURE

        c、查看指定用户所获得的授权

          (1)、SHOW GRANTS FOR 'user'@'host'

    MariaDB [(none)]> SHOW GRANTS;
    +---------------------------------------------------------------------+
    | Grants for root@localhost                                           |
    +---------------------------------------------------------------------+
    | GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION |
    | GRANT PROXY ON ''@'' TO 'root'@'localhost' WITH GRANT OPTION        |
    +---------------------------------------------------------------------+
    2 rows in set (0.00 sec)
    
    MariaDB [(none)]> SHOW GRANTS FOR wohaoshuai;
    ERROR 1141 (42000): There is no such grant defined for user 'wohaoshuai' on host '%'
    MariaDB [(none)]> SHOW GRANTS FOR 'wohaoshuai'@'192.168.10.%';
    +----------------------------------------------------------------------------------------------------------------------+
    | Grants for wohaoshuai@192.168.10.%                                                                                   |
    +----------------------------------------------------------------------------------------------------------------------+
    | GRANT USAGE ON *.* TO 'wohaoshuai'@'192.168.10.%' IDENTIFIED BY PASSWORD '*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9' |
    +----------------------------------------------------------------------------------------------------------------------+
    1 row in set (0.01 sec)

          (2)、SHOW GRANTS FOR CURRENT_USER;

        d、回收权限:

          (1)、REVOKE priv_type,... ON db_name.tbl_name FROM 'user'@'host';

            

          (2)、示例

            1)、假如我们现在tom账号是ALL PRIVILEGES,现在我们REVOKE 掉DELETE和UPDATE权限,然后他会自动在所有权限中减掉这两个权限

              

        e、注意:MariaDB服务进程启动时,会读取mysql库的所有授权表至内存中

          (1)、GRANT或REVOKE命令等执行的权限操作会保存于表中,MariaDB此时一般会自动重读授权表,权限修改会立即生效

          (2)、其它方式实现的权限修改,要想生效,必须手动运行FLUSH PRIVILEGES命令方可。

    三、练习题

  • 相关阅读:
    APPCAN   版本控制SVN
    关于 java中的换行符
    BCompare中文版安装包
    netstat
    springboot mybatis generator
    mysql删除表的方式
    jdbc写入和读取过程
    hadoop全排序和二次排序
    mapreduce之数据倾斜
    hdfs切片的计算方式
  • 原文地址:https://www.cnblogs.com/Presley-lpc/p/12933315.html
Copyright © 2011-2022 走看看