MariaDB 简单入门

MariaDB的程序组成:
C:
mysql:CLI交互式客户端程序;
mysqldump, mysqladmin…
S:
mysqld_safe
mysqld
mysqld_multi

        服务器监听的两种socket地址:
            ip socket: 监听在tcp的3306端口,支持远程通信; 
            unix sock: 监听在sock文件上(/tmp/mysql.sock, /var/lib/mysql/mysql.sock),仅支持本地通信;
                server: localhost, 127.0.0.1

        命令行交互式客户端程序:mysql
            mysql 
                -uUSERNAME: 用户名;默认为root
                -hHOST: 服务器主机; 默认为localhost
                -pPASSWORD:用户的密码;  默认为空密码

                注意:mysql用户账号由两部分组成:'USERNAME'@'HOST'; 其中HOST用于限制此用户可通过哪些主机远程连接mysql服务;
                    支持使用通配符:
                        %: 匹配任意长度的任意字符;
                            172.16.0.0/16, 172.16.%.%
                        _: 匹配任意单个字符;

                命令:
                    客户端命令:本地执行
                        mysql> help
                        每个命令都完整形式和简写格式;
                            status, \s

                    服务端命令:通过mysql协议发往服务器执行并取回结果
                        每个命令都必须命令结束符号;默认为分号;

            关系型数据库的常见组件:
                数据库:database
                表:table
                    行:row
                    列:column
                索引:index
                视图:view
                用户:user
                权限:privilege

                存储过程:procedure
                存储函数:function
                触发器:trigger
                事件调度器:event scheduler

            mysql_secure_installation:安全初始化

        SQL语句:
            DDL: Data Defination Language
                CREATE, DROP, ALTER

            DML: Data Manipulation Language
                INSERT, DELETE, UPDATE, SELECT

                GRANT, REVOKE

            数据库:
                CREATE DATABASE|SCHEMA [IF NOT EXISTS] 'DB_NAME'; 
                DROP DATABASE|SCHEMA [IF EXISTS] 'DB_NAME'; 

                    CHARACTER SET 'charecter set name'
                    COLLATE 'collate name'

                查看支持所有字符集:SHOW CHARACTER SET;
                查看支持所有排序规则:SHOW COLLATIONS;

                获取命令使用帮助:
                    mysql> HELP KEYWORD;

                查看:
                    mysql> SHOW DATABASES; 

            表:
                CREATE TABLE [IF NOT EXISTS] tb_name (col1 datatype 修饰符, col2 datatype 修饰符) ENGINE=''

                查看所有的引擎:SHOW ENGINES;

                查看表:SHOW TABLES [FROM db_name]
                查看表结构:DESC [db_name.]tb_name

                删除表:
                DROP TABLE [IF EXISTS] tb_name;

                数据类型:
                    字符型
                        定长字符型:CHAR(#), BINARY(#)//前者区分大小写, 后者不区分大小写

                        变长字符型: VARCHAR(#), VARBINARY(#)//前者区分大小写, 后者不区分大小写

                        对象存储:
                            TEXT: 不区分大小写                                    
                            BLOB:区分字符大小写
                        内置类型:
                            ENUM
                            SET
                    数值型
                        精确数值型
                            整型: int
                                tinyint: 1byte
                                smallint: 2bytes
                                mediumint: 3bytes
                                int: 4bytes
                                bigint: 8bytes
                            十进制: decimal
                        近似数值型
                            单精度浮点型
                                float
                            双精度浮点型
                                double

                修饰符:
                    NOT NULL:非空约束
                    DEFAULT VALUE: 设定默认值
                    数据基础应用:

    表:
        CREATE TABLE [IF NOT EXISTS] 'tbl_name' (col1 type1, col2 type2, ...) 
            col type1 
            PRIMARY KEY(col1,...)
            INDEX(col1, ...)
            UNIQUE KEY(col1, ...)

            表选项:
                ENGINE [=] engine_name
                ROW_FORMAT [=] {DEFAULT|DYNAMIC|FIXED|COMPRESSED|REDUNDANT|COMPACT}

                SHOW ENGINES;

            获取帮助:
                mysql> HELP CREATE TABLE; 

            查看创建命令:
                SHOW CREATE TABLE tbl_name;

            查看表状态:
                SHOW TABLE STATUS LIKE 'tbl_name'\G

        DROP TABLE [IF EXISTS] 'tbl_name';

        ALTER TABLE 'tbl_name' 
            字段:
                添加字段:add
                    ADD col1 data_type [FIRST|AFTER col_name]
                删除字段:drop
                修改字段:alter, change, modify
            索引:
                添加索引:add
                删除索引: drop
            表选项
                修改:


        查看表上的索引:SHOW INDEXES FROM [db_name.]tbl_name;

    索引:
        索引是特殊数据结构;定义在查找时作为查找条件的字段;

        索引:要有索引名称;

        创建索引:
            CREATE INDEX index_name ON tbl_name (index_col_name,...);

        删除索引:
            DROP INDEX index_name ON tbl_name;

DML: INSERT, DELETE, SELECT, UPDATE

    INSERT INTO:
        INSERT [INTO] tbl_name [(col_name,...)] {VALUES | VALUE} (val1,...),(...),...

    SELECT:
        SELECT col1,col2,... FROM tbl_name [WHERE clause] [ORDER BY 'col_name' [DESC]] [LIMIT [m,]n];
            字段表示法:
                *: 所有字段;
                as:字段别名,col1 AS alias1;

            WHERE clase:
                操作符:
                    >, <, >=, <=, ==, !=
                    BETWEEN ... AND ...
                    LIKE:
                        %:任意长度的任意字符;
                        _:任意单个字符;
                    RLIKE:
                        正则表达式模式匹配;
                    IS NULL
                    IS NOT NULL

                条件逻辑操作:
                    and
                    or
                    not

    DELETE: 
        DELETE FROM tbl_name [WHERE clause] [ORDER BY 'col_name' [DESC]] [LIMIT [m,]n]; 

    UPDATE:
        UPDATE tbl_name SET col1=new_val1, col2=new_val2, ... [WHERE clause] [ORDER BY 'col_name' [DESC]] [LIMIT [m,]n];

用户账号及权限管理:

    用户账号:'user'@'host'
        user: 用户名
        host: 此用户访问mysqld服务时允许通过哪些主机远程创建连接;
            IP、网络地址、主机名、通配符(%和_); 

        禁止检查主机名:
            my.cnf, [mysqld]
            skip_name_resolve = yes

    创建用户账号:
        CREATE USER 'username'@'host' [IDENTIFIED BY 'password'];

    删除用户:
        DROP USER 'username'@'host';

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

        GRANT priv_type,... ON [object_type] db_name.tb_name TO 'user'@'host' [IDENTIFIED BY 'password'] [WITH GRANT OPTION];

            priv_type: ALL [PRIVILEGES]
            db_name.tb_name:
                *.*: 所有库的所表;
                db_name.*: 指定库的所有表;
                db_name.tb_name: 指定库的指定表;
                db_name.routine_name:指定库的存储例程;

    查看指定用户获得的授权:
        SHOW GRANTS FOR 'user'@'host'; 

        SHOW GRANTS FOR CURRENT_USER;

    回收授权:
        REVOKE priv_type, ... ON db_name.tb_name FROM 'user'@'host';

    注意:MariaDB服务进程启动时会读取mysql库中的所有授权表至内存中;
        (1) GRANT或REVOKE等执行权限操作会保存于表中,MariaDB的服务进程会自动重读授权表;
        (2) 对于不能够或不能及时重读授权表的命令,可手动让MariaDB的服务进程重读授权表:
            mysql> FLUSH PRIVILEGES;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值