MYSQL 筆記

来源:https://www.cnblogs.com/LEILEO/archive/2019/04/09/10679625.html
-Advertisement-
Play Games

本人是一名學生,正在學習過程中,所以筆記涵蓋的還不是很廣,不過也算基本夠用,希望以後能更加完善。 登陸資料庫 mysql -h 主機名 -u 用戶名 -p > mysql -u root -p 列出資料庫 show databases; 選擇資料庫 use 資料庫名; 查看當前資料庫 select ...


本人是一名學生,正在學習過程中,所以筆記涵蓋的還不是很廣,不過也算基本夠用,希望以後能更加完善。

登陸資料庫

mysql -h 主機名 -u 用戶名 -p

> mysql -u root -p

列出資料庫

show databases;

選擇資料庫

use 資料庫名;

查看當前資料庫

select databases;

查看資料庫定義

show create database 資料庫名;

創建資料庫

create databases 資料庫名;

default 預設約束

collate 字元序

(例 CREATE DATABASE `test` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci)

修改資料庫

alter databases 資料庫名;

刪除資料庫

drop database <資料庫名>;

 

數據備份:

備份一個資料庫:

 mysqldump -u username -p dbname table1 table2 ...> path/backupName.sql

(dbname為資料庫文件名如:word.sql,table1,table2為參數表名,當沒有表名時,將備份整個資料庫,path/to/your/dictionary為你要備份到什麼地方的路徑)

備份多個資料庫

mysqldump -u username -p  --databases  dbname1  dbname2...> path/backupName.sql

備份所有資料庫

 mysqldump -u username -p  --all-databases  > path/backupName.sql

直接複製整個資料庫目錄,簡單粗暴:

show variables like '%datadir%';

數據恢復

 1. mysql -uusername  -p  dbname  < path/to/your/dictionary

  2.進入mysql後選擇資料庫 source 後面直接接路徑

 

 

顯示表

show tables;

顯示數據表的屬性

show columns from 數據表;

查看表的結構

desc 表名;

查看表的定義結構

show create table 表名;

創建數據表

create table table_name (column_name column_type);

預設數據

default

(建表示例:

    create table customers(

       id int not null auto_increment,

       name char(20) not null,

       address char(50) null,

       city char(50) null,

       age int not null,

       love char(50) not null default 'No habbit',

       primary key(id)

     )engine=InnoDB DEFAULT CHARSET=utf8;

     

  #引擎類型,多為engine = InnoDB,如果省略了engine=語句,則使用預設的引擎(MyISAM)

  #預設字元集,DEFAULT CHARSET,一般為utf8或GBK。

)

刪除數據表

drop table table_name ;

重命名數據表

rename table 表名 to 新表名

更新表(alter table 表名)

添加列

alter table 表名 add 列名 數據類型

刪除列

alter table 表名 drop column 列名

修改列名

alter table 表名 change 列名 新列名 數據類型

修改列的數據類型

alter table 表名 modify 列名 數據類型

 

 

自動編號(必須與主鍵組合使用)

AUTO_INCREMENT

主鍵(主鍵保證記錄的唯一性,主鍵自動為NOT NULL)

PRIMARY KEY

外鍵(指定該列記錄屬於主表中的一條記錄,參照另一條數據)

foreign key

(

外鍵:刪除和更新有四種設置方式

(1)cascade:級聯,當父表更新、刪除,子表會同步更新和刪除

(2)set null:置空,當父表更新、刪除的時候,字表會把外鍵欄位變為null,所以這個時候設計表的時候該欄位要允許為null,否則會出錯

(3)restrict:父表在刪除和更新記錄的時候,要在子表中檢查是否有有關該父表要更新和刪除的記錄,如果有,則不允許刪除個更改

(4)no action:和restrict一樣

導入表時外鍵建立不了,查看引擎是否為innodb,(INNODB支持外鍵和事務)

修改表的存儲引擎為INNODB

ALTER TABLE 表名 ENGINE='INNODB'

)

唯一約束(指定某列和幾列組合的數據不能重覆)

UNIQUE

非空約束(指定某列不為NULL)

not null

預設約束

DEFAULT

 

 

插入數據

insert into 表名(列名1,列名2……)values ( 數據1,數據2……)

insert into 表名 values (數據1,數據2……)

批量插入

insert into 表名 values (數據1,數據2……),(數據1,數據2……),(數據1,數據2……)

刪除數據

delete from 表名 [where 條件] (沒有條件則刪除整個表)

truncate table 表名:先刪除表再重建表 (刪除表)

更新數據

update 表名 set 列名=值,列名=值 [where 條件];

查詢數據

select[distinct][*][列名1,列名2] from 表名 where 條件 group by…… having 條件過濾 order by 排序;

去重

distinct

限制結果

limit

完全限製表名

表名+.

排序(order by)

asc:ascend 升序(預設)

desc:descend 降序

分組

group by

合併結果

union

過濾數據

 

WHERE子句

=   等於

<>  不等於

!=  不等於

<   小於

<=  小於等於

>   大於

>=  大於等於

between……and……  指定兩個值之間

is null  為空值

AND  兩個條件同時滿足   OR  滿足其中一條

(AND 和 OR 可以組合使用,AND優先順序高於OR)

IN 指定條件範圍 (例 IN(1002,1003))

Not 否定後跟條件關鍵字 ====> not in,not like...

分組數據

group by 分組數據

having 過濾分組

having和where的區別

   having 與where使用方式類似,在分組之後使用

   where是判斷數據從磁碟讀入記憶體的時候

   having是判斷分組統計之前的所有條件

   having子句中可以使用欄位別名,而where不能使用

   having能夠使用統計函數,但是where不能使用

 

通配符

LIKE 操作符 =====> select prod_id from products where prod_name like '%a-';

% 任意字元出現任意次數

_ 單個字元

正則表達式

REGEXP 操作符

.   任意一個字元

a|b   兩個串之一(或,類同於or)

[a,b,c]  或 (例[123]匹配1或2或3,等同於[1|2|3]的縮寫)

[^……] 非或 不匹配括弧中的內容

[a-b] 範圍區間 (例[1-3] 匹配1到3之間的數 [a-z]匹配任意字元)

BINARY 區分大小寫

\\  特殊字元需要用\\引導 (例如查詢 - 則輸入 \\-)

元字元

\\f 換頁

\\n 換行

\\r 回車

\\t 製表

\\v 縱向製表

字元類

[:alnum:]        文字數字字元

[:alpha:]        文字字元

[:blank:]        空白字元

[:cntrl:]        控制字元

[:digit:]        數字字元

[:graph:]        圖形字元

[:lower:]        小寫文字字元

[:print:]        圖形或空格字元

[:punct:]        標點字元

[:space:]        空格、製表符、新行、和回車

[:upper:]        大寫文字字元

[:xdigit:]       十六進位數字字元

(^)字元

匹配字元串的開始位置,如“^a”表示以字母a開頭的字元串。

($)字元

匹配字元串的結束位置,如“X$”表示以字母X結尾的字元串。

(.)字元

這個字元就是英文下的點,它匹配任何一個字元,包括回車、換行等。

[[:<:]]     詞的開始

[[:>:]]     詞的結尾

重覆字元

(*)字元

星號匹配0個或多個字元,在它之前必須有內容。如:

(+)字元

加號匹配1個或多個字元,在它之前也必須有內容。加號跟星號的用法類似,只是星號允許出現0次,加號則必須至少出現一次。

(?)字元

問號匹配0次或1次。

{} 區間

{n} 指定數目的匹配

{n,} 不少於指定數目的匹配

{n,m} 匹配數目的範圍(m不超過255)

這是一個更全面的方法,它可以實現前面好幾種保留字的功能

a*可以寫成a{0,}

a+可以寫成a{1,}

a?可以寫成a{0,1}

計算欄位

+ 加

- 減

* 乘

/ 除

(select後可以跟計算公式)

Concat() 拼接欄位

(例 mysql> SELECT CONCAT(’My’, ‘S’, ‘QL’);  ---> ‘MySQL’)

函數

聚集函數

AVG()  返回某列的平均值

COUNT()  返回某列的行數

MAX()  返回某列的最大值

MIN()  返回某列的最小值

SUM()  返回某列值之和

 

連接

INNER JOIN(內連接,或等值連接):獲取兩個表中欄位匹配關係的記錄。

LEFT JOIN(左連接):獲取左表所有記錄,即使右表沒有對應匹配的記錄。

RIGHT JOIN(右連接): 與 LEFT JOIN 相反,用於獲取右表所有記錄,即使左表沒有對應匹配的記錄。

 

視圖(視圖是虛擬表,本身不存儲數據,而是按照指定的方式進行查詢。)

-- 1.創建視圖

create view 視圖名 as  sql語句;

--2.刪除視圖

Drop view 視圖名;

--3.修改視圖

ALTER VIEW 視圖名稱 AS SQL語句

 

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 我是19年3月轉向使用Linux進行開發,沒啥特別的理由,就是覺得使用Linux系統是每個程式員必須經歷的吧。 選擇版本 一開始,在網上瞭解到現在流行的Linux發行版有基於Redhat的,還有基於debian的,就簡單瞭解一下而已,太冷門的系統對新手也不友好。 我推薦的版本就Ubuntu和Deep ...
  • 多表查詢: 顯示內連接: select 欄位列表 from 表名1 inner join 表名1 on 條件 * inner 可忽略 select * from student inner join class on student.clas_id=class.id 隱式內連接: 使用where: ...
  • (一)neo4j安裝 neo4j有社區版本和企業版,社區版本是免費的,企業版本是收費的。在linux上安裝如下步驟: 1、將下載的neo4j-enterprise-3.4.0-unix.tar.gz包上傳到linux伺服器,並解壓。 2、設置$NEO4J_HOME也就是解壓圖資料庫安裝包所在的目錄到 ...
  • 本系列筆記是在看完《neo4j權威指南》基礎上做的記錄。方便於自己後面查閱!! 1.圖庫介紹 圖資料庫(Graph Database)是基於圖論實現的一種新型NoSQL資料庫。它的數據存儲結構和數據的查詢方式都是以圖論為基礎的。圖論中圖的基本元素為節點和邊,在圖資料庫中對應的就是節點和關係。在圖數據 ...
  • 1.起因: 需要導入一個sql文件,發現死活導不進去.當執行到這一句時,就有問題.經過一番搜索,原來是我的資料庫版本(原先Mysql版本5.5)低了,而支持該語句的版本應該是至少要5.7.那我索性就去Mysql官網去下載了個最新版本的(8.0.15). 2.過程: 那麼問題來了:有兩個解決方案.1. ...
  • 關於視圖的用法以及作用。 作用一: 提高了重用性,就像一個函數。如果要頻繁獲取user的name和goods的name。就應該使用以下sql語言。示例: select a.name as username, b.name as goodsname from user as a, goods as b ...
  • 背景 從mysql.slow_log 獲取慢查詢日誌很慢,該表是csv表,沒有索引。 想添加索引來加速訪問,而csv引擎不能添加索引(csv引擎存儲是以逗號分割的文本來存儲的),只能改存儲引擎來添加索引了 mysql.slow_log表能改成myisam,不能改成innodb mysql.gener ...
  • 元欄位是ES為每個文檔配置的內置欄位, 主要用於ES內部相關操作. ES有多種類型的元欄位, 在使用和提高性能方面有很強大的地方, 這篇文章列舉常用元欄位的功能和使用方法, 包括_index、_type、_source、_routing等, 歡迎交流吖~ ...
一周排行
    -Advertisement-
    Play Games
  • 前言 本文介紹一款使用 C# 與 WPF 開發的音頻播放器,其界面簡潔大方,操作體驗流暢。該播放器支持多種音頻格式(如 MP4、WMA、OGG、FLAC 等),並具備標記、實時歌詞顯示等功能。 另外,還支持換膚及多語言(中英文)切換。核心音頻處理採用 FFmpeg 組件,獲得了廣泛認可,目前 Git ...
  • OAuth2.0授權驗證-gitee授權碼模式 本文主要介紹如何筆者自己是如何使用gitee提供的OAuth2.0協議完成授權驗證並登錄到自己的系統,完整模式如圖 1、創建應用 打開gitee個人中心->第三方應用->創建應用 創建應用後在我的應用界面,查看已創建應用的Client ID和Clien ...
  • 解決了這個問題:《winForm下,fastReport.net 從.net framework 升級到.net5遇到的錯誤“Operation is not supported on this platform.”》 本文內容轉載自:https://www.fcnsoft.com/Home/Sho ...
  • 國內文章 WPF 從裸 Win 32 的 WM_Pointer 消息獲取觸摸點繪製筆跡 https://www.cnblogs.com/lindexi/p/18390983 本文將告訴大家如何在 WPF 裡面,接收裸 Win 32 的 WM_Pointer 消息,從消息裡面獲取觸摸點信息,使用觸摸點 ...
  • 前言 給大家推薦一個專為新零售快消行業打造了一套高效的進銷存管理系統。 系統不僅具備強大的庫存管理功能,還集成了高性能的輕量級 POS 解決方案,確保頁面載入速度極快,提供良好的用戶體驗。 項目介紹 Dorisoy.POS 是一款基於 .NET 7 和 Angular 4 開發的新零售快消進銷存管理 ...
  • ABP CLI常用的代碼分享 一、確保環境配置正確 安裝.NET CLI: ABP CLI是基於.NET Core或.NET 5/6/7等更高版本構建的,因此首先需要在你的開發環境中安裝.NET CLI。這可以通過訪問Microsoft官網下載並安裝相應版本的.NET SDK來實現。 安裝ABP ...
  • 問題 問題是這樣的:第三方的webapi,需要先調用登陸介面獲取Cookie,訪問其它介面時攜帶Cookie信息。 但使用HttpClient類調用登陸介面,返回的Headers中沒有找到Cookie信息。 分析 首先,使用Postman測試該登陸介面,正常返回Cookie信息,說明是HttpCli ...
  • 國內文章 關於.NET在中國為什麼工資低的分析 https://www.cnblogs.com/thinkingmore/p/18406244 .NET在中國開發者的薪資偏低,主要因市場需求、技術棧選擇和企業文化等因素所致。歷史上,.NET曾因微軟的閉源策略發展受限,儘管後來推出了跨平臺的.NET ...
  • 在WPF開發應用中,動畫不僅可以引起用戶的註意與興趣,而且還使軟體更加便於使用。前面幾篇文章講解了畫筆(Brush),形狀(Shape),幾何圖形(Geometry),變換(Transform)等相關內容,今天繼續講解動畫相關內容和知識點,僅供學習分享使用,如有不足之處,還請指正。 ...
  • 什麼是委托? 委托可以說是把一個方法代入另一個方法執行,相當於指向函數的指針;事件就相當於保存委托的數組; 1.實例化委托的方式: 方式1:通過new創建實例: public delegate void ShowDelegate(); 或者 public delegate string ShowDe ...