mysql數據庫基本操作方法及常用命令

最近在學習mysql數據庫的基礎知識,看的是黑馬的javaweb的網課,關於mysql的基本命令比較多,在這裏記錄下來,便於日後學習查詢翻閱。
參考:2020黑馬javaweb從入門到精通

前言

我們常說的SQL,其英文全稱爲Structured Query Language(結構化查詢語言),同編程語言一樣,它定義操作所有關係型數據庫的規則。換句話說,關係型數據庫使用SQL語言作爲其查詢語言,但是不同的關係型數據庫的SQL語法有些不同之處,如同中國各地的方言有很多種,但總的來說都是中文。
比較流行的數據庫如下圖:
在這裏插入圖片描述

mysql是關係型數據庫的一種,我學習的是mysql。這裏要知道,在mysql官網www.mysql.com下載的是mysql數據庫服務器,安裝之後要通過dos界面對數據庫進行操作。除此之外還可以安裝一個圖形化的界面sqlyog來進行操作,就類似編程語言的IDE一樣。
另外,在接觸mysql基本命令之前,可以先看看mysql安裝目錄的結構,對其有一個大致認識。這裏提一下數據庫:文件夾表:文件數據:數據。表

一. mysql的配置

1.1MySQL服務啓動

安裝mysql後,一般來說在電腦中mysql的服務都是自動啓動的。除此之外,也可以通過一下三種方式啓動:(這一步僅理解就可以,一般在學習的時候用不着,服務都是一直開着的)
1.手動
2. cmd–> services.msc 打開服務的窗口
3. 使用管理員打開cmd
 net start mysql : 啓動mysql的服務
  net stop mysql:關閉mysql服務

在這裏插入圖片描述

1.2MySQL登錄

  • mysql -u用戶名 -p密碼 (密碼可見)
  • mysql -hip -uroot -p (回車)輸入密碼 (密碼不可見)
  • mysql --host=ip --user=root --password=連接目標的密碼

1.3MySQL退出

  • exit
  • quit

二. sql常用命令

2.1sql語句分類

  • DDL(Data Definition Language)數據定義語言:故名思意,是對邏輯結構進行相關操作,其對象爲:數據庫,表,列等。關鍵字爲:create,drop,alter等。
  • DML(Data Manipulation Language)數據操作語言:同理,是對數據庫的表中的數據的增刪改操作。關鍵字:insert, delete, update 等。
  • DQL(Data Query Language)數據查詢語言:用來查詢數據庫中表的記錄(數據)。關鍵字:select, where 等。
  • DCL(Data Control Language)數據控制語言(瞭解):用來定義數據庫的訪問權限和安全級別,及創建用戶。關鍵字:GRANT, REVOKE 等。

2.2DDL(操作數據庫、表)

2.21 操作數據庫:增,刪,改,查,用

增:

  • create database 數據庫名稱;
  • create database if not exists 數據庫名稱;
  • create database 數據庫名稱 character set 字符集名。

刪:

  • drop database 數據庫名稱;
  • drop database if exists 數據庫名稱;

改:

  • alter database 數據庫名稱 character set 字符集名稱
  • 僅修改名稱:

查:

  • show databases;//查所有的數據庫
  • show create database 數據庫名稱;//查某個數據庫的字符集等。

用:

  • use 數據庫名稱;//使用數據庫
  • select database();//查詢當前正在使用的數據庫名稱,這條比較特殊

2.22 操作表:增,刪,改,查

增:

  • create table 表名(列名1 數據類型1,…,列名n 數據類型n);

  • 數據類型:在這裏插入圖片描述

  • create table 表名 like 被複制的表名;//複製表

刪:

  • drop table 表名;
  • drop table if exists 表名 ;

改:

  • alter table 表名 rename to 新的表名;

  • alter table 表名 character set 字符集名稱;

  • alter table 表名 add 列名 數據類型;//添加一列

  • alter table 表名 change 列名 新列別 新數據類型;
    alter table 表名 modify 列名 新數據類型;

  • alter table 表名 drop 列名;

查:(注意這裏不是查詢表中的記錄,對比2.4節)

  • show tables;//查詢某數據庫所有表名稱。
  • desc 表名;//查詢表結構

2.3DML(表中數據,增刪改)

2.3.1增:

  • insert into 表名(列名1,列名2,…列名n) values(值1,值2,…值n);//注意一一對應

2.3.2刪:

  • delete from 表名 [where 條件]
  • 如果不加條件,則刪除表中所有記錄。想要刪除所有記錄,推薦使用 TRUNCATE TABLE 表名。效率更高 先刪除表,然後再創建一張一樣的表。

2.3.3改:

  • update 表名 set 列名1 = 值1, 列名2 = 值2,… [where 條件];

2.4DQL(查詢表中數據)

select * from 表名;     //這裏纔是查詢表中數據。
語法結構如下:
在這裏插入圖片描述

2.4.1基礎查詢

  • select 字段名1,字段名2… from 表名;//查詢所有字段,可以使用*來替代字段列表。
  • select distinct 字段 from 表名 //去除重複的結果集
  • 計算列 :SELECT name ,math,english,math+english FROM person;
  • as:可省略

2.4.2條件查詢

where 條件;運算符:

  1.   >  <  >=  <=
  2. BETWEEN…AND //在…之間
  3. IN( 集合)
  4. LIKE:模糊查詢。_:單個任意字符。%:多個任意字符。
  5. and 或 &&  or 或 ||   not 或 !
  6. IS NULL

2.4.3排序:

order by

  • select * from 表名 order by 排序字段1 排序方式1,…, 排序字段n 排序方式n;   //排序查詢,ASC:升序默認,DESC:降序。前面的條件優先。

2.4.4聚合函數:

以列爲整體 ,進行相關計算。常用的有:count,max,min,sum,avg。

  • select count(列名) from 表名;排除null值
  • select count(ifnull(列名,替換表達式)) from 表名;不排除null值。

2.4.5分組查詢:

group by 分組字段和聚合函數。

  • SELECT sex ,AVG(math),COUNT(id) FROM person GROUP BY sex;

想要加入分組限制條件,即不滿足條件的不參加分組的話:

  • SELECT sex ,AVG(math),COUNT(id) FROM person WHERE math>30 GROUP BY sex HAVING COUNT(id)>2;
  • where 在分組之前限制,不滿足則不參加分組,having在分組後限制,不滿足則不被查詢出來。where不能跟聚合函數,having可以。
  • as(別名):as也可以省略,可在聚合函數後面起別名,方便觀看:SELECT sex ,AVG(math),COUNT(id) 人數 FROM person WHERE math>30 GROUP BY sex HAVING 人數>2;

2.4.6分頁查詢

語法:limit 開始的索引,每頁查詢的條數;limit是mysql的方言。
類似百度搜索,一頁包含10(瞎說的)個結果,可以點下一頁翻頁。

  • select * from 表名 limit 0,3; //第一頁
  • select * from 表名 limit 3,3; //第二頁

公式:開始的索引=(當前頁碼-1)*每頁顯示的條數,例如百度,每頁顯示的條數和頁碼都是給定的,需要計算的就是開始的索引。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章