• mysql数据库操作


    mysql数据库操作

    用户操作

    mysql用户帐号由两部分组成,如'USERNAME'@'HOST',表示此USERNAME只能从此HOST上远程登录

    • 这里('USERNAME'@'HOST')的HOST用于限制此用户可通过哪些主机远程连接mysql程序,其值可为:
      • IP地址,如:192.168.10.11
      • 通配符
        • %:匹配任意长度的任意字符,常用于设置允许从任何主机登录
        • _:匹配任意单个字符

    创建用户

    1. 语法:CREATE USER 'username'@'host' [IDENTIFIED BY 'password'];
    MariaDB [(none)]> create user admin@localhost identified by '123456';
    Query OK, 0 rows affected (0.00 sec)
    
    1. 使用新创建的用户和密码登录
    [root@localhost ~]# mysql -uadmin -p123456 -hlocalhost
    Welcome to the MariaDB monitor.  Commands end with ; or g.
    Your MariaDB connection id is 14
    Server version: 5.5.68-MariaDB MariaDB Server
    
    Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
    
    Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
    
    MariaDB [(none)]> 
    

    删除数据库用户

    1. 语法:DROP USER 'username'@'host';
    MariaDB [(none)]> drop user admin@localhost;
    Query OK, 0 rows affected (0.00 sec)
    
    • 注意,删除用户只能是管理员用户删除

    查看命令SHOW

    1. 查看支持的所有字符集
    MariaDB [(none)]> show character set;
    +----------+-----------------------------+---------------------+--------+
    | Charset  | Description                 | Default collation   | Maxlen |
    +----------+-----------------------------+---------------------+--------+
    | big5     | Big5 Traditional Chinese    | big5_chinese_ci     |      2 |
    | dec8     | DEC West European           | dec8_swedish_ci     |      1 |
    | cp850    | DOS West European           | cp850_general_ci    |      1 |
    | hp8      | HP West European            | hp8_english_ci      |      1 |
    | koi8r    | KOI8-R Relcom Russian       | koi8r_general_ci    |      1 |
    | latin1   | cp1252 West European        | latin1_swedish_ci   |      1 |
    | latin2   | ISO 8859-2 Central European | latin2_general_ci   |      1 |
    | swe7     | 7bit Swedish                | swe7_swedish_ci     |      1 |
    | ascii    | US ASCII                    | ascii_general_ci    |      1 |
    | ujis     | EUC-JP Japanese             | ujis_japanese_ci    |      3 |
    | sjis     | Shift-JIS Japanese          | sjis_japanese_ci    |      2 |
    | hebrew   | ISO 8859-8 Hebrew           | hebrew_general_ci   |      1 |
    | tis620   | TIS620 Thai                 | tis620_thai_ci      |      1 |
    | euckr    | EUC-KR Korean               | euckr_korean_ci     |      2 |
    | koi8u    | KOI8-U Ukrainian            | koi8u_general_ci    |      1 |
    | gb2312   | GB2312 Simplified Chinese   | gb2312_chinese_ci   |      2 |
    | greek    | ISO 8859-7 Greek            | greek_general_ci    |      1 |
    | cp1250   | Windows Central European    | cp1250_general_ci   |      1 |
    | gbk      | GBK Simplified Chinese      | gbk_chinese_ci      |      2 |
    | latin5   | ISO 8859-9 Turkish          | latin5_turkish_ci   |      1 |
    | armscii8 | ARMSCII-8 Armenian          | armscii8_general_ci |      1 |
    | utf8     | UTF-8 Unicode               | utf8_general_ci     |      3 |
    | ucs2     | UCS-2 Unicode               | ucs2_general_ci     |      2 |
    | cp866    | DOS Russian                 | cp866_general_ci    |      1 |
    | keybcs2  | DOS Kamenicky Czech-Slovak  | keybcs2_general_ci  |      1 |
    | macce    | Mac Central European        | macce_general_ci    |      1 |
    | macroman | Mac West European           | macroman_general_ci |      1 |
    | cp852    | DOS Central European        | cp852_general_ci    |      1 |
    | latin7   | ISO 8859-13 Baltic          | latin7_general_ci   |      1 |
    | utf8mb4  | UTF-8 Unicode               | utf8mb4_general_ci  |      4 |
    | cp1251   | Windows Cyrillic            | cp1251_general_ci   |      1 |
    | utf16    | UTF-16 Unicode              | utf16_general_ci    |      4 |
    | cp1256   | Windows Arabic              | cp1256_general_ci   |      1 |
    | cp1257   | Windows Baltic              | cp1257_general_ci   |      1 |
    | utf32    | UTF-32 Unicode              | utf32_general_ci    |      4 |
    | binary   | Binary pseudo charset       | binary              |      1 |
    | geostd8  | GEOSTD8 Georgian            | geostd8_general_ci  |      1 |
    | cp932    | SJIS for Windows Japanese   | cp932_japanese_ci   |      2 |
    | eucjpms  | UJIS for Windows Japanese   | eucjpms_japanese_ci |      3 |
    +----------+-----------------------------+---------------------+--------+
    39 rows in set (0.00 sec)
    
    1. 查看当前数据库支持的所有存储引擎
    MariaDB [(none)]> show engines;
    +--------------------+---------+----------------------------------------------------------------------------------+--------------+------+------------+
    | Engine             | Support | Comment                                                                          | Transactions | XA   | Savepoints |
    +--------------------+---------+----------------------------------------------------------------------------------+--------------+------+------------+
    | InnoDB             | DEFAULT | Percona-XtraDB, Supports transactions, row-level locking, and foreign keys       | YES          | YES  | YES        |
    | MRG_MYISAM         | YES     | Collection of identical MyISAM tables                                            | NO           | NO   | NO         |
    | MyISAM             | YES     | Non-transactional engine with good performance and small data footprint          | NO           | NO   | NO         |
    | BLACKHOLE          | YES     | /dev/null storage engine (anything you write to it disappears)                   | NO           | NO   | NO         |
    | PERFORMANCE_SCHEMA | YES     | Performance Schema                                                               | NO           | NO   | NO         |
    | CSV                | YES     | Stores tables as CSV files                                                       | NO           | NO   | NO         |
    | ARCHIVE            | YES     | gzip-compresses tables for a low storage footprint                               | NO           | NO   | NO         |
    | MEMORY             | YES     | Hash based, stored in memory, useful for temporary tables                        | NO           | NO   | NO         |
    | FEDERATED          | YES     | Allows to access tables on other MariaDB servers, supports transactions and more | YES          | NO   | YES        |
    | Aria               | YES     | Crash-safe tables with MyISAM heritage                                           | NO           | NO   | NO         |
    +--------------------+---------+----------------------------------------------------------------------------------+--------------+------+------------+
    10 rows in set (0.00 sec)
    
    1. 进入某数据库而列出其包含的所有表
    MariaDB [(none)]> show tables from mysql;
    +---------------------------+
    | Tables_in_mysql           |
    +---------------------------+
    | columns_priv              |
    | db                        |
    | event                     |
    | func                      |
    | general_log               |
    | help_category             |
    | help_keyword              |
    | help_relation             |
    | help_topic                |
    | host                      |
    | ndb_binlog_index          |
    | plugin                    |
    | proc                      |
    | procs_priv                |
    | proxies_priv              |
    | servers                   |
    | slow_log                  |
    | tables_priv               |
    | time_zone                 |
    | time_zone_leap_second     |
    | time_zone_name            |
    | time_zone_transition      |
    | time_zone_transition_type |
    | user                      |
    +---------------------------+
    24 rows in set (0.00 sec)
    
    1. 查看表结构
    • 语法:DESC [db_name.]table_name;
    MariaDB [mysql]> desc mysql.db;
    +-----------------------+---------------+------+-----+---------+-------+
    | Field                 | Type          | Null | Key | Default | Extra |
    +-----------------------+---------------+------+-----+---------+-------+
    | Host                  | char(60)      | NO   | PRI |         |       |
    | Db                    | char(64)      | NO   | PRI |         |       |
    | User                  | char(16)      | NO   | PRI |         |       |
    | Select_priv           | enum('N','Y') | NO   |     | N       |       |
    | Insert_priv           | enum('N','Y') | NO   |     | N       |       |
    | Update_priv           | enum('N','Y') | NO   |     | N       |       |
    | Delete_priv           | enum('N','Y') | NO   |     | N       |       |
    | Create_priv           | enum('N','Y') | NO   |     | N       |       |
    | Drop_priv             | enum('N','Y') | NO   |     | N       |       |
    | Grant_priv            | enum('N','Y') | NO   |     | N       |       |
    | References_priv       | enum('N','Y') | NO   |     | N       |       |
    | Index_priv            | enum('N','Y') | NO   |     | N       |       |
    | Alter_priv            | enum('N','Y') | NO   |     | N       |       |
    | Create_tmp_table_priv | enum('N','Y') | NO   |     | N       |       |
    | Lock_tables_priv      | enum('N','Y') | NO   |     | N       |       |
    | Create_view_priv      | enum('N','Y') | NO   |     | N       |       |
    | Show_view_priv        | enum('N','Y') | NO   |     | N       |       |
    | Create_routine_priv   | enum('N','Y') | NO   |     | N       |       |
    | Alter_routine_priv    | enum('N','Y') | NO   |     | N       |       |
    | Execute_priv          | enum('N','Y') | NO   |     | N       |       |
    | Event_priv            | enum('N','Y') | NO   |     | N       |       |
    | Trigger_priv          | enum('N','Y') | NO   |     | N       |       |
    +-----------------------+---------------+------+-----+---------+-------+
    22 rows in set (0.00 sec)
    
    1. 查看某表的创建命令
    • 语法:SHOW CREATE TABLE table_name;
    MariaDB [mysql]> show create table mysql.func;
    +-------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | Table | Create Table                                                                                                                                                                                                                                                                                                                                                   |
    +-------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | func  | CREATE TABLE `func` (
      `name` char(64) COLLATE utf8_bin NOT NULL DEFAULT '',
      `ret` tinyint(1) NOT NULL DEFAULT '0',
      `dl` char(128) COLLATE utf8_bin NOT NULL DEFAULT '',
      `type` enum('function','aggregate') CHARACTER SET utf8 NOT NULL,
      PRIMARY KEY (`name`)
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='User defined functions' |
    +-------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    1 row in set (0.00 sec)
    
    1. 查看某表的状态
    • 语法:SHOW TABLE STATUS LIKE 'table_name'G
    MariaDB [(none)]> use mysql;
    Database changed
    MariaDB [mysql]> show table status like 'user'G
    *************************** 1. row ***************************
               Name: user
             Engine: MyISAM
            Version: 10
         Row_format: Dynamic
               Rows: 4
     Avg_row_length: 64
        Data_length: 352
    Max_data_length: 281474976710655
       Index_length: 2048
          Data_free: 96
     Auto_increment: NULL
        Create_time: 2021-01-05 14:03:11
        Update_time: 2021-01-05 17:05:54
         Check_time: NULL
          Collation: utf8_bin
           Checksum: NULL
     Create_options: 
            Comment: Users and global privileges
    1 row in set (0.00 sec)
    

    获取帮助

    1. 语法:HELP keyword;
    MariaDB [(none)]> help create table
    Name: 'CREATE TABLE'
    Description:
    Syntax:
    CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name
        (create_definition,...)
        [table_options]
        [partition_options]
    
    Or:
    
    CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name
        [(create_definition,...)]
        [table_options]
        [partition_options]
        select_statement
    
    Or:
    
    CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name
        { LIKE old_tbl_name | (LIKE old_tbl_name) }
    .......
    .......
    .......
    

    SELECT语句

    1. 语法:SELECT column1,column2,... FROM table_name [WHERE clause] [ORDER BY 'column_name' [DESC]] [LIMIT [m,]n];

    2. 字段column表示法

    表示符 代表什么?
    * 所有字段
    as 字段别名,如 col1 AS alias1 当表名很长时用别名代替
    1. 条件判断语句where
    操作类型 常用操作符
    操作符 >,<,>=,<=,=,!=
    BETWEEN column# AND column#
    LIKE:模糊匹配
    RLIKE:基于正则表达式进行模式匹配
    IS NOT NULL:非空
    IS NULL:空
    条件逻辑操作 AND
    OR
    NOT
    mysql> SELECT * FROM admin ORDER BY age;
    +----+-----------+------+
    | id | name      | age  |
    +----+-----------+------+
    |  7 | lisi      | NULL |
    |  1 | tom       |   20 |
    |  6 | zhangshan |   20 |
    |  2 | jerry     |   23 |
    |  3 | laji      |   25 |
    |  5 | zhangshan |   26 |
    |  4 | sean      |   28 |
    +----+-----------+------+
    7 rows in set (0.00 sec)
    
    mysql> SELECT * FROM admin ORDER BY age DESC;
    +----+-----------+------+
    | id | name      | age  |
    +----+-----------+------+
    |  4 | sean      |   28 |
    |  5 | zhangshan |   26 |
    |  3 | laji      |   25 |
    |  2 | jerry     |   23 |
    |  1 | tom       |   20 |
    |  6 | zhangshan |   20 |
    |  7 | lisi      | NULL |
    +----+-----------+------+
    7 rows in set (0.00 sec)
    
    mysql> SELECT * FROM admin ORDER BY age limit 2;
    +----+------+------+
    | id | name | age  |
    +----+------+------+
    |  7 | lisi | NULL |
    |  1 | tom  |   20 |
    +----+------+------+
    2 rows in set (0.00 sec)
    
    mysql> SELECT * FROM admin ORDER BY age limit 1,2;
    +----+-----------+------+
    | id | name      | age  |
    +----+-----------+------+
    |  1 | tom       |   20 |
    |  6 | zhangshan |   20 |
    +----+-----------+------+
    2 rows in set (0.00 sec)
    
    mysql> select * from admin where age is null;
    +----+------+------+
    | id | name | age  |
    +----+------+------+
    |  7 | lisi | NULL |
    +----+------+------+
    1 row in set (0.00 sec)
    
    1. ORDER BY:排序,默认为升序ASC
    ORDER BY语句 意义
    ORDER BY 'column_name' 根据 column_name 进行升序排序
    ORDER BY 'column_name' DESC 根据 column_name 进行降序排序
    ORDER BY 'column_name' LIMIT 2 根据 column_name 进行升序排序,并只取前2个结果
    ORDER BY 'column_name' LIMIT 1,2 根据 column_name 进行升序排序,并且略过第1个结果取后面的2个结果

    update语句

    1. 语法:UPDATE table_name SET column1 = new_value1[,column2 = new_value2,...] [WHERE clause] [ORDER BY 'column_name' [DESC]] [LIMIT [m,]n];
    mysql> select * from admin;
    +----+-----------+------+
    | id | name      | age  |
    +----+-----------+------+
    |  1 | tom       |   20 |
    |  2 | jerry     |   23 |
    |  3 | laji      |   25 |
    |  4 | sean      |   28 |
    |  5 | zhangshan |   26 |
    |  6 | zhangshan |   20 |
    |  7 | lisi      | NULL |
    +----+-----------+------+
    7 rows in set (0.00 sec)
    
    mysql> update admin set age = 30 where name = 'lisi';
    Query OK, 1 row affected (0.00 sec)
    Rows matched: 1  Changed: 1  Warnings: 0
    
    mysql> select * from admin where name = 'lisi';
    +----+------+------+
    | id | name | age  |
    +----+------+------+
    |  7 | lisi |   30 |
    +----+------+------+
    1 row in set (0.00 sec)
    

    delete语句

    1. 语法:DELETE FROM table_name [WHERE clause] [ORDER BY 'column_name' [DESC]] [LIMIT [m,]n];
    mysql> select * from admin;
    +----+-----------+------+
    | id | name      | age  |
    +----+-----------+------+
    |  1 | tom       |   20 |
    |  2 | jerry     |   23 |
    |  3 | laji      |   25 |
    |  4 | sean      |   28 |
    |  5 | zhangshan |   26 |
    |  6 | zhangshan |   20 |
    |  7 | lisi      |   30 |
    +----+-----------+------+
    7 rows in set (0.00 sec)
    
    mysql> delete from admin where id = 7;       //删除某条记录
    Query OK, 1 row affected (0.00 sec)
    
    mysql> select * from wangqing;
    +----+-----------+------+
    | id | name      | age  |
    +----+-----------+------+
    |  1 | tom       |   20 |
    |  2 | jerry     |   23 |
    |  3 | laji      |   25 |
    |  4 | sean      |   28 |
    |  5 | zhangshan |   26 |
    |  6 | zhangshan |   20 |
    +----+-----------+------+
    6 rows in set (0.00 sec)
    
    mysql> delete from admin;        //删除整张表的内容
    Query OK, 6 rows affected (0.00 sec)
    
    mysql> select * from admin;
    Empty set (0.00 sec)
    
    mysql> desc admin;
    +-------+--------------+------+-----+---------+-------+
    | Field | Type         | Null | Key | Default | Extra |
    +-------+--------------+------+-----+---------+-------+
    | id    | int(11)      | NO   |     | NULL    |       |
    | name  | varchar(100) | NO   |     | NULL    |       |
    | age   | tinyint(4)   | YES  |     | NULL    |       |
    +-------+--------------+------+-----+---------+-------+
    3 rows in set (0.00 sec)
    

    truncate语句

    1. truncatedelete 的区别:
    语句类型 特点
    delete DELETE删除表内容时仅删除内容,但会保留表结构
    DELETE语句每次删除一行,并在事务日志中为所删除的每行记录一项
    可以通过回滚事务日志恢复数据
    非常占用空间
    truncate 删除表中所有数据,且无法恢复
    表结构、约束和索引等保持不变,新添加的行计数值重置为初始值
    执行速度比DELETE快,且使用的系统和事务日志资源少
    通过释放存储表数据所用的数据页来删除数据,并且只在事务日志中记录页的释放
    对于有外键约束引用的表,不能使用TRUNCATE TABLE删除数据
    不能用于加入了索引视图的表
    1. 语法:TRUNCATE table_name;
    mysql> select * from admin;
    +----+-----------+------+
    | id | name      | age  |
    +----+-----------+------+
    |  1 | tom       |   20 |
    |  2 | jerry     |   23 |
    |  3 | laji      |   25 |
    |  4 | sean      |   28 |
    |  5 | zhangshan |   26 |
    |  6 | zhangshan |   20 |
    |  7 | lisi      | NULL |
    +----+-----------+------+
    7 rows in set (0.00 sec)
    
    mysql> truncate admin;
    Query OK, 0 rows affected (0.01 sec)
    
    mysql> select * from admin;
    Empty set (0.00 sec)
    
    mysql> desc admin;
    +-------+--------------+------+-----+---------+-------+
    | Field | Type         | Null | Key | Default | Extra |
    +-------+--------------+------+-----+---------+-------+
    | id    | int(11)      | NO   |     | NULL    |       |
    | name  | varchar(100) | NO   |     | NULL    |       |
    | age   | tinyint(4)   | YES  |     | NULL    |       |
    +-------+--------------+------+-----+---------+-------+
    3 rows in set (0.00 sec)
    

  • 相关阅读:
    android开发 退出程序
    armeabi和armeabi-v7a引起的问题
    我的博客
    第二章 应用层(一) 应用层概览
    第一章 计算机网络和因特网
    Linux学习笔记——第一篇——Ubuntu安装与操作
    怒学Python——完结篇——I/O
    怒学Python——第四篇——函数与模块
    怒学Python——第三篇——结构控制
    怒学Python——第二篇——类型与运算
  • 原文地址:https://www.cnblogs.com/itwangqiang/p/14237276.html
Copyright © 2020-2023  润新知