天天看點

mysql

sql是Structured Query Language(結構化查詢語言)的縮寫。sql是專為資料庫而建立的操作指令集,是一種功能齊全的資料庫語言。

sql規範

在資料庫中,sql語句不區分大小寫(建議用大寫)。但字元串常量區分大小寫。建議指令大寫,表名庫名小寫

sql語句可單行或多行書寫,以;結尾。關鍵詞不能跨多行或簡寫

用空格和縮進來提高語句的可讀性。字句通常位于獨立行,便于編輯,提高可讀性

注釋:單行注釋:--

多行注釋:/*.....*/

DDL,DML和DCL

下載下傳

https://dev.mysql.com/downloads/mysql/

mysql

安裝

解壓到任意目錄

初始化服務端

mysql

啟動服務端

mysql

用戶端連接配接

mysql

密碼預設為空

檢視内置的檔案夾:show databases;

建立目錄:create database db1;

 設定環境變量

 <code>【右鍵計算機】</code><code>-</code><code>-</code><code>》【屬性】</code><code>-</code><code>-</code><code>》【進階系統設定】</code><code>-</code><code>-</code><code>》【進階】</code><code>-</code><code>-</code><code>》【環境變量】</code><code>-</code><code>-</code><code>》【在第二個内容框中找到 變量名為Path 的一行,輕按兩下】 </code><code>-</code><code>-</code><code>&gt; 【将MySQL的</code><code>bin</code><code>目錄路徑追加到變值值中,用 ; 分割】</code>

window服務

安裝mysql服務

mysql

出現這個情況用管理者身份運作cmd就能解決

cmd路徑:C:\Windows\System32,右鍵管理者身份運作

mysql

服務安裝成功

 如果還不行就結束mysql程序

移除mysql服務

mysql

啟動mysql服務

mysql
mysql

一樣的效果

或者

mysql

停止mysql服務

mysql

檔案夾【資料庫】

    檔案【表】

        資料行【行】

        資料行

 use 檔案夾;     進入這個檔案夾

show tables;    檢視這個檔案夾下的檔案

建立表

create table 表名(id int,name char(10)) engine=innodb default charset=utf8

#innodb引擎, 支援事務,原子性操作,推薦寫上

create table t1(

列名 類型 null,

列名 類型 not null,

列名 類型 not null auto_increment primary key,

id int,

name char(10)

)engine=innodb default charset=utf8;

null:可以為空

not null:不可以為空

auto_increment表示:自增 一個表裡面隻有一個自增列

primary key:不能限制(不能重複且不能為空) 加速查找 一個表裡面隻有一個主鍵

檢視表資訊

desc 表名;   檢視表結構

show colums from 表名;   檢視表結構

show tables;   檢視目前資料庫中的所有表

show create table 表名 \G;    檢視目前資料庫表建表語句,\G能豎着看

修改表結構

增加列(字段)

alter table 表名 add 列名 類型[完整性限制條件]

修改列類型

alter table 表名 modify 列名 類型[完整性限制條件]

修改列名

alter table 表名 change 列名 新列名 類型[完整性限制條件]

删除列

alter table 表名 drop 列名 

修改表名

rename table 表名 to 新表名;

修改該表所用的字元集

alter table 表名 character set utf8

修改自增的值

alter table 表名 auto_increment=10

清空表

delete from 表名 下次id從原來的自增

truncate table 表名   速度快,id從1開始

删除表

drop table 表名

mysql

表記錄的增删改查

增加表記錄

insert into 表名()values()

插入資料,檢視資料

mysql

修改表記錄

删除表記錄

查詢表記錄

簡單查詢

 select * from 表名    檢視表中所有的資料,*表示所有列

 select name,age,id from 表名  檢視表中指定的字段,按列名先後順序顯示

使用where子句,進行過濾查詢

order by排序

group by分組查詢

聚合函數

limit記錄條數限制

正規表達式

外鍵限制

多表查詢

限制條件:

主鍵一張表隻能有一個 

一個主鍵可以由多個列組成

primary key(非空且唯一):能夠唯一區分出目前記錄的字段稱為主鍵,加速查找

unique 唯一

not null 非空

auto_increment:自增,和主鍵搭配着才能用,主鍵必須是數字類型

資料類型:

數字   

tinyint    unsigned加上這個就是無符号

int

bigint

float

double

decimal  精準  decimal(10,5)總位數,小數點後位數

字元串

char   速度快

varchar    節省空間

最大字元255,大于255用test

ps:建立資料表定長列往前放

上傳檔案:

檔案存硬碟

db存路徑

時間類型

datetime 

enum 枚舉

set 集合

資料庫存儲引擎

什麼是存儲引擎

資料庫的表有不同的類型,表的類型不同,會對應不同的存取機制,表類型又稱為存儲引擎

存儲引擎說白了就是如何存儲資料,如何為存儲的資料建立索引和如何更新、查詢資料等技術的實作方法。因為在關系型資料庫中的存儲是以表的形式存儲的,是以存儲引擎也可以稱為表類型(即存儲和操作此表的類型)

mysql資料庫提供了多種存儲引擎,使用者可以根據不同的需求為資料表選擇不同的存儲引擎,使用者也可以根據自己的需要編寫自己的存儲引擎

mysql

mysql支援的存儲引擎

mysql常用的資料引擎

mylsam存儲引擎

由于該引擎不支援事務,也不支援外鍵,是以通路速度較快,是以當對事物完整性沒有要求并以通路為主的應用适合試用該存儲引擎。

innodb存儲引擎(主要使用)

由于該存儲引擎在事務上具有優勢,即支援具有送出、復原及崩潰恢複能力等事務的特性,是以比mylsam存儲引擎占用更多的磁盤空間,是以當需要頻繁的更新、删除等操作,同時還對事務的完整性要求較高,需要實作并發控制,建議選擇。

memory

memory存儲引擎存儲資料的位置是記憶體,是以通路速度最快,但是安全上沒有保障。适合于需要快速的通路或臨時表。

blackhole

黑洞存儲引擎,可以應用與主備複制中的分發主庫

使用存儲引擎

方法1:建表時指定

方法2:在配置檔案時指定預設的存儲引擎

檢視

檢視使用者

mysql

建立使用者:

create user 'alex'@'192.168.1.1' identified by '123123'

create user 'alex'@'192.168.1.%' identified by '123123'      %表示任意

create user 'alex'@'%' identified by '123123'

 授權管理:

show grants for '使用者'@'IP位址'   檢視位址

grant select,insert,update on db1.t1 to 'alex'@'%';  

grant all privileges on db1.* to 'alex'@'%';    除了授權功能其他功能都有,db1資料庫下的所有表

revoke all privileges from db1.* to 'alex'@'%';  取消授權

mysql

再開個終端進入

mysql