mariadb數據庫常用命令


在數據庫中使用任何命令最好都用分號結尾

用戶管理

        select user();

        #查看當前用戶

        grant all on *.* to root@‘%’identified by '123'

        #給root用戶所有的權限允許第三方登錄(將root改成不存在的用戶,也可以創建並賦予權限)

       grant select,create,update,delete on *.* to 'a'@'%' identified by '輸入密碼';

       #創建用戶a,並給a添加查詢,創建,更新,刪除的權限(在任意主機上)

        grant all privileges on test03.grade to 'aaa'@'%';

       #給aaa賦予test03數據庫的grade表最高權限(在任意主機上)

        show grants for 'aaa';

       #查看aaa用戶的權限(root用戶)

       revoke all on *.* from 'aaa'@'%';

       #收回aaa在任意數據庫的任意表的最高權限

       show grants

       #查看權限

 

忘記mysql的root密碼

        配置文件 /etc/my.conf.d/server.conf

        添加skip-grant-tables

        重啟數據庫 systemctl restart mysql

        進入數據庫 mysql -uroot | mysql -uroot

        進入mysql數據庫中 use mysql;

        修改密碼 update user set password=password('填寫密碼') where user='root';

查看數據庫

     show databases;

     #查看數據庫

     show variables;

     #查看數據庫參數

     show tables;

     #查看數據庫中的表,要先進入數據庫

     select  * from 表名;

     #查看 某個表中的所有數據

     mysqladmin --version

     #查看數據庫版本

     show create database 庫名;

     #查看創建數據庫狀態

      use 庫名

     #使用哪個庫

 

 修改數據庫

       create database test01

       #創建數據庫 test01

      create database test01 character set=utf8;

      #創建用戶並支持中文

      show create database  test01

      #查看test01的字符集

      mysqladmin -u user -p create test01

      #直接在終端創建數據庫,

      drop database test01

      #刪除數據庫

      mysqladmin -u root -p drop test01

      #另外你也可以在終端運行,

      alter database 庫名 default character set=utf8;   

      #修改數據庫默認字符集

 

備份/導出數據庫

  要創建單個數據庫的備份,在終端窗口中運行下列命令,

  mysqldump -u root -p密碼 --databases  test > test.sql

 若要一次性創建多個數據庫的備份則運行:

   mysqldump -u root -p密碼 --databases  db_name1 db_name2 > db_name12_backup.sql

 從備份中恢復數據庫

方法一

 從備份中恢復數據庫,終端運行:

  mysql -u root -p密碼 database_name < db_backup.sql

   但這條命令成功的前提是預先沒有存在同名的數據庫。如果想要恢復數據庫數據到已經存在的數據庫中,則需要用到 mysqlimport 命令:

  mysqlimport -u root -p密碼 database_name < db_backup.sql

方法二

  進入數據庫中確保沒有同名的數據庫,執行:

  source 備份的數據庫名

 

MariaDB 數據類型

   MariaDB數據類型可以分為數字,日期和時間以及字符串值。

    使用數據類型的原則:夠用就行, 盡量使用范圍小的,而不用大的

  • 常用的數據類型
  1. 整數:int, bit   #bit自能存儲0,1
  2. 小數:decimal   #decimal(5,2)  表示一共5位數字小數點后取2位
  3. 字符串:varchar, char #varchar(10) 表示最多可輸入10個字符,char(10)輸入幾個字符也要占10個字符,且最多輸入10個10字符
  4. 日期時間:date, time, datetime
  5. 枚舉類型(enum)
  6. 自增:auto_incremen
  • 約束
  1. 主鍵primary key:物理上存儲的順序,不能重復,不能為空,默認有索引的功能
  2. 非空not null:此字段不能為空
  3. 唯一unique:此字段不允許重復
  4. 默認default:當不填寫此值時會使用默認值,如果填寫則已填寫為准
  5. 外鍵foreign key:對關系字段進行約束,當為關系字段填寫值時,會到關聯的表中查詢此值是否存在,如果存在則填寫成功,如果不存在則填寫失敗並拋出異常

 

 

 表的相關命令

      create table 表名(字段 數據類型和約束可加多個,….可加多個字段用逗號逗號隔開); 

     #創建表 ,表的字段最好使用英文,字段后需要添加數據類型和約束,可添加多種約束

 

查看表

     select now();

     #顯示當前時間

      desc 表名;

     #查看表結構

      show create table 表名;

     #查看表的創建

 

修改表

       alter table 表名 add 列名 類型;

      #修改表-添加字段

       alter table 表名 modify 列名 類型及約束;

       #修改表-修改字段:不重命名版

      alter table 表名 change 原名 新名 類型及約束;

      #修改表-修改字段:重命名版

        alter table 表名 drop 列名;

       #修改表-刪除字段

刪除表

         drop table 表名;

          #刪除表

增表的內容

        insert into 表名 values(..),()…;

          #全列插入,每列都必須寫入內容,寫在括號里,用逗號分隔,(括號外用逗號分隔可一次插入多行) 主鍵字段 可以用0 null default 來站位,表示默認值

 

修改表的內容

        update 表名 set 列1=值1, 列2=值2... where 條件;

         #條件指的是修改那一部分

刪除表的內容

        delete from 表名 where 條件;

物理刪除

        delete from 表名;

        #清空表中的所有的數據

 

邏輯刪除

        #用一條字段來表示 這條信息是否已經不能在使用了, 用alter table給表添加一個 bit類型的字段,或者創建表的時候直接創建

       select * from 表名;  #進行查看

        select * from 表名 where 帶有bit的字段=bit值; #篩選

       #邏輯刪除不是真正的刪除,一般是用通過bit值來篩選需要的數據

 

查看表的內容

        select  字段1 as '別名',字段2 as '別名', …. from 表名;

         # 使用as給字段起別名    

      select 表名.字段1,表名.字段2 from 表名;

      #通過表名字段查詢,可輸入不同的表名

        select 別名.字段1,s別名.字段2,…. from 表名 as 別名;

        # 給表起別名查詢

       select distinct 字段 from 表名;

       #  消除重復行

 

條件查詢
          select * from 表名 where 字段 比較運算符 值;

            # 比較運算符有(=)(<)(>)(<=)(>=)  可以通過and(&&) or(||) 使用多個運算符

     常用的使用方法:

          select * from 表名 where 字段 between 值 and 值;

          select * from 表名 where 字段  比較運算符 or 字段 比較運算符

 

 模糊查詢
                % 替代1個或者多個字符甚至是沒有

                _ 下划線表示一個字符

               select * from 表名 where 字段 like '%表中數據的關鍵字%';

               select * from 表名 where 字段 like '收索幾個字就寫入幾個下划線';

 

范圍查詢
         in (1,3,8)表示在一個非連續的范圍內
          select * from 表名 where 字段 in (第一個值, 第二個值,….);

         #in 后面括號中用逗號分隔開的數字表示單個數字,不代表范圍,可以用逗號分隔添加多個數值,列如(15,25,35,56):表示一個15,一個25,一個35,一個56

 

空判斷

              select * from 表名 where 字段 is null;

              #判斷is null,查看字段為空的信息

              select * from 表名 where 字段 is not null;

              判斷非空is not null,查看字段為不為空的信息

 

排序             
               select * from 表名 where 條件 order by 字段 ascdesc;

               # order by 字段
              # asc從小到大排列,即升序
              # desc從大到小排序,即降序

 

聚合函數

   總數:count(*)   用*統計是最准確的,也可以在括號里加入某個字段,可能會不准確,最好使用*

  最大值:max(字段)

  最小值:min(字段)

  求和:sum(字段)

  平均值:avg(字段)

       select 函數類型 from 表名 where 條件;

       select round(avg(字段),3) from 表名;

       # 保留3位小數

 

分組

 group by
        select 字段 from 表名 group by 字段;

         #對表中某個字段中的內容分組

         group_concat()  按組顯示括號中的內容

         select 字段1,group_concat(字段2) from 表名 where 條件 group by 字段1;

 

分頁
     顯示5頁
    select * from 表名 limit 頁5;

      分頁顯示,每頁顯示2條數據

       select * from 表名 limit 0, 2;

     

連接查詢

    inner join

      select * from 表名1 inner join 表名2;

      #兩個表連接查詢

      select * from 表名1 inner join 表名2 on 表名1.字段=表名2.字段;   

      #連接兩個表的對應字段

      select 表名1.字段, 表名2.字段 from 表名1 inner join 表名2 on 表名1.字段=表名2.字段;

       #按要求顯示連接內容 可以使用別名

 

左關聯   

select * from 表名1 left join 表名2 on 表名1.字段=表名2.字段;

  # 左關聯,以左邊表為基准,條件對應不上的顯示null

 

右關聯

   select * from 表名2 left join 表名1 on 表名1.字段=表名2.字段;

  #右關聯,以后邊為基准,條件對應不上的顯示null

 

自關聯

   在一個表中建立關聯

   列如: select * from 表名 as 別名1 inner join 表名 as 別名2 on 別名1.字段1=別名2.字段2 where 別名1.字段='關鍵數據';

 

視圖

    視圖的用途就是查詢

      create view 視圖名稱 as select語句;

      #定義視圖,建議以v_開頭

      show tables;

      #查看視圖:查看表會將所有的視圖也列出來

      drop view 視圖名稱;

       #刪除視圖

 

事務

        begin或 transaction

        #開啟事務

            commit;

       #將緩存中的數據變更維護到物理表中

        rollback;

      #放棄緩存中變更的數據

 

索引

 創建索引

  方式一:建表時創建索引

create table create_index(
id int primary key,
name varchar(10) unique,
age int,
key (age)
);

方式二:對於已經存在的表,添加索引

如果指定字段是字符串,需要指定長度,建議長度與定義字段時的長度一致
字段類型如果不是字符串,可以不填寫長度部分

create index 索引名稱 on 表名(字段名稱(長度))
例:
create index age_index on create_index(age);

    drop index 索引名稱 on 表名;

    #刪除索引

    show profiles;

    #查看sql執行時間

   set profiling=1;

   #打開sql語句執行時間 零時修改,重啟數據庫失效 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM