1. 程式人生 > >【資料庫基礎】MySQL從建庫到刪庫跑路簡要筆記(逃。。

【資料庫基礎】MySQL從建庫到刪庫跑路簡要筆記(逃。。

標題純屬開玩笑,這裡主要是為了系統的梳理一下MySQL整個的操作流程。不會往深裡講。

圖形化介面也在用著,不過還是系統的補一下常用的指令操作。
針對環境

Ver 8.42 Distrib 5.7.21, for macos10.13 on x86_64

安裝以及初始化MySQL

安裝MySQL,記錄下MySQL的分配給root的臨時密碼(後續登入以及修改密碼要用)。Start MySQL Server。去~目錄下修改.bash_profile檔案,新增

PATH=$PATH:/usr/local/mysql/bin

然後source ~/.bash_profile


這樣在terminal執行mysql命令就能直接關聯到該目錄了。
如果這種方式重啟後mysql命令失效,以zsh為例,在~/.zshrc檔案中加入 source ~/.bash_profile

另一種方式,通過新增alias來操作。

alias mysql=/usr/local/mysql/bin/mysql
alias mysqladmin=/usr/local/mysql/bin/mysqladmin

這時候如果重啟終端的話alias會失效,想每次開啟終端都可以直接使用的話需如下
1. 將設定的alias寫到~/.bashrc裡面
2. 將source ~/.bashrc 寫到 ~/.bash_profile 裡面

然後
可以開始登陸了

mysql -u 使用者名稱 -p 使用者名稱那裡替換成root或者什麼

之後輸入臨時密碼進入,修改密碼
1. SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpassword');

好的 我們可以開始建庫建表啥的了
語句分號;不能省!

建庫建表啥的

首先show databases; 看看有啥庫
這裡寫圖片描述

  1. create database XX(庫名) ; 建立資料庫
  2. drop database XX(庫名) ; 刪除資料庫

要具體操作表的話,我們需要進入資料庫 use 庫名;


這裡寫圖片描述
然後通過show tables; 來檢視該庫底下的所有表。
通過use 庫名;無需退出就可以切換使用的資料庫。

接下來我們就簡單的建立幾張表。

由於建表的時候可能需要考慮主鍵外來鍵索引引擎等關聯屬性。這裡暫時不做展開,在這裡以最基本的作為展示。

單個欄位作為主鍵

      create table test1 (
      id int(4) primary key auto_increment, 
      name char(20) character set utf8
      ) engine="MyISAM";

幾點注意事項
1. 如果建表的時候不設定主鍵,預設第一個欄位為主鍵,且自動not null
2. character set utf8 為設定name這個欄位的字符集
3. auto_increment 必須和primary key搭配使用。不然會報錯
4. 我這裡環境的預設引擎是InnoDB,如果不設定就是預設引擎。

複合主鍵的

    create table test1 (
      id int(4) auto_increment, 
      name char(20) character set utf8,
      primary key(id,name)
      ) engine="MyISAM";

帶個時間戳的

ALTER TABLE test1 ADD COLUMN 
   time timestamp default current_timestamp;

注意點
1. default current_timestamp 分為兩節看,default代表該欄位有預設值,後面的則是其預設值,為當前的時間戳。
2. 如果建表完成後發現想 增刪改 某些欄位,則通過alter table 表名 具體命令 來完成。
比如


alter table test rename test1; --修改表名
alter table test add column name varchar(10); --新增表列
alter table test drop column name; --刪除表列
alter table test modify address char(10) --修改表列型別
alter table test change address address char(40)
alter table test change column address address1 varchar(30)--修改表列名

建表完成啦,接下來我們為了操作資料,必須得插入資料了~

在這之前我們可以用desc table_name; 命令 來看錶的資訊
這裡寫圖片描述

或者用 show create table table_name
這裡寫圖片描述

這裡主要解釋一下desc命令中 Key/Extra這兩個欄位的含義。

Key: 在mysql中key和index是一樣的意思,這個Key列可能會看到如下的值 PRI(主鍵)、MUL(普通的b-tree索引)、UNI(唯一索引)
Extra: 其他資訊

在插入資料前,我們先delete了我們測試表已有的資料
這裡提前先提一下關於 drop/delete/truncate 三個命令的區別。
1. drop是直接幹掉表,整個表都不在了。
2. delete/truncate是刪除表內的資料,表結構還是完好的。
3. delete/truncate的對比

從安全性來講,我們建議使用 delete 操作。此篇部落格之後的刪除資料指的就是該操作。

delete from 表名 where 1=1; 

插入

最基本的方式

insert into 表名 (col1,col2…) values (value1,value2…);

這種方式 前後引數 無論是 個數還是種類 都應該對應上。

針對我們test1表,就是如下形式

insert into test1(name) values ('yangfan') ; 字串單雙引號都一樣

這裡寫圖片描述

但是我們要插入很多條資料,這樣一條一條就太慢了
我們可以這樣

insert into test1(name) values ('cat'),('dog'),('lamian');

這樣就一下子添加了3條資料。
這裡寫圖片描述

查詢

select * from test1;

DQL過於博大精深,這裡我們不做展開。

刪庫

Delete from Tablename where 條件
Truncate table Tablename
Drop table Tablename  

… Over

參考文章

跳轉區

delete/truncate

truncate table table_name 和delete from table_name 都是刪除表中所有記錄。

區別:
truncate能夠快速清空一個表。並且重置auto_increment的值。而delete只能一行一行的刪除。

但對於不同的型別儲存引擎需要注意的地方是:

A 對於myisam

truncate會重置auto_increment的值為1。而delete後表仍然保持auto_increment。

B 對於innodb

truncate會重置auto_increment的值為1。delete後表仍然保持auto_increment。但是在做delete整個表之後重啟MySQL的話,則重啟後的auto_increment會被置為1。

也就是說,innodb的表本身是無法持久儲存auto_increment。delete表之後auto_increment仍然儲存在記憶體,但是重啟後就丟失了,只能從1開始。實質上重啟後的auto_increment會從 SELECT 1+MAX(ai_col) FROM t 開始。

相關推薦

資料庫基礎MySQL簡要筆記

標題純屬開玩笑,這裡主要是為了系統的梳理一下MySQL整個的操作流程。不會往深裡講。 圖形化介面也在用著,不過還是系統的補一下常用的指令操作。 針對環境 Ver 8.42 Distrib 5.7.21, for macos10.13 on x86

資料庫遠端MySQL資料庫開啟遠端連線方法

Mysql安裝後,預設不能外網直接訪問的,只能本機訪問,但是很多使用者需要外網訪問來備份資料、修改資料或者呼叫資料,mysql如何開啟遠端連線呢?下面就是MySQL資料庫開啟遠端連線方法。 登陸mysql操作命令如下直接複製即可 1.下面的命令是給予任何主機訪問資料的許可權 mysql&

資料庫索引mysql更新資料報錯:Duplicate entry 'XXX' for key 'XXX'

經查:資料庫表索引型別設定問題導致,unique:約束資料庫表中的每一條資料唯一。 補充: 1.UNIQUE(要求列唯一) 和 PRIMARY KEY(主鍵唯一) 約束均為列或列集合提供了唯一性的保證。    PRIMARY KEY (主鍵)擁有自動定義的 UNIQUE

資料庫基礎關係資料庫規範化理論之正規化

因為在寫專案時與同伴關於資料庫到底建多少張表,每張表應包含哪些屬性產生分歧,所以又好好研究了一下關係型資料庫在設計時應該遵守怎樣的規則以提高資料庫效能。 在閱讀本篇文章前讀者須掌握關係資料庫結構基礎及函式依賴與鍵的定義。 可直戳以下目錄空降相關知識點↓↓↓

已解決WPS2018 第三頁開始插入頁首頁碼即前兩頁不要頁首頁碼)

操作流程     1)假設現在每一頁的頁首都是 bw98,如圖一    圖一.       2)點選第三頁的頁首頁碼,在選項卡中選擇《頁首和頁尾》,會發現此時同前節是開啟著的,這意味著第三頁的頁首頁尾和第二頁是一樣的      圖二、《頁首和頁尾》選項卡的同

已解決WPS2018 第三頁開始插入頁眉頁碼即前兩頁不要頁眉頁碼)

enter 開始 選項 修改 info 都是 http 解決 問題 操作流程   1)假設現在每一頁的頁眉都是 bw98,如圖一    圖一.   2)點擊第三頁的頁眉頁碼,在選項卡中選擇《頁眉和頁腳》,會發現此時同前節是開啟著的,這意味著第三頁的頁眉頁腳和第

.Net Core 使用 Nginx 釋出 .Net Core 3.1 專案至LInuxCentos7)

前置部落格(部落格中使用的專案來自於此): 【Docker】 .Net Core 3.1 webapi 整合EF Code First,使用MySql進行業務操作 、配置swagger (三)   環境:.Net Core 3.1 , Centos7.6 工具:連線工具MobaXterm,阿里雲伺服

MySQL2、MySQL數據和表

數值 加鎖 字母 發送 lint 引擎 code font reat 2.MySQL 創建數據庫和表 2.1、創建數據庫 CREATE DATABASE 語句用於在 MySQL 中創建數據庫。 CREATE DATABASE database_name 為了讓 PH

python基礎用字典做一個小型的查詢數據

import oot 字符 odin 參數錯誤 err 輸出 put 異常 例子來源於《python基礎教程》第三版,57p 該例子主要是使用字典的方式,實現一個小型的數據庫,通過查詢字典的鍵值來獲取用戶的信息。 本人修改了部分代碼。 #!/usr/bin/python3

c++基礎json檔案提取資料

前言 標註資料匯出檔案是json格式的,也就是python的dict格式,需要讀取標註結果,可以使用c++或者python,本文使用c++實現的。 JsonCpp簡介 JsonCpp是一種輕量級的資料交換格式,是個跨平臺的開源庫,可以從github和sourceforge上下載原始碼。 JsonCpp

技術分享mysql資料庫binlog的增量訂閱 消費元件 canal

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

資料庫安裝雲主機mysql資料庫安裝教程

1.瀏覽器http://downloads.mysql.com/archives/community/登入mysql官網下載相關mysql版本,這裡咱們安裝常用mysql5.0版本如下 下載好msyql後,直接點選setup或者直接點選.msi檔案開始安裝 這裡咱們選擇custo

MySQL - - 檢視觸發器儲存過程函式事物資料庫資料庫備份

目錄 檢視 觸發器 儲存過程 函式 事物 資料庫鎖 資料庫備份 1 檢視 檢視:是一個虛擬表,其內容由查詢定義。同真實的表一樣,檢視包含一系列帶有名稱的列和行資料 檢視有如下特點; 1 檢視的列可以來自不同的表,是表的抽象和邏輯意義上建立的新關

python基礎常用的內函式 python基礎之內函式

python基礎之內建函式   參考: http://www.runoob.com/python/python-built-in-functions.html -zip() zip函式接受任意多個(包括0個和1個)序列作為引數,返回一個tuple列表 例項1: x = [1,

1、資料庫技術資料庫技術基礎

一、資料庫技術基礎 1、資料庫和資料庫管理系統     資料庫系統:包括資料庫、資料庫管理系統、資料庫的使用者和支撐資料管理系統執行的軟硬體。     模式是資料庫中全體資料的邏輯結構和特徵描述。資料庫系統的三級模式:內模式(物理層)、概念模式(邏輯層)、外模式(使用者層)。  

kingsql分享mysql資料庫的本機遷移

如果mysql資料庫用著用著空間不夠了,那麼應該怎麼辦呢?方法有很多,包含並不侷限於以下方法: 1.可以遷移到另外一套高效能伺服器上2.如果是邏輯卷,可以擴大邏輯卷3.新增新的大容量儲存空間,本機遷移 咱們今天就來演示一下第3種方法比如添加了更大容量的儲存空間,然後mount上了,這個空間是/kingsq

kingsql分享mysql數據的本機遷移

welcome data com mys names mysql數據庫 name 存儲目錄 [1] 如果mysql數據庫用著用著空間不夠了,那麽應該怎麽辦呢?方法有很多,包含並不局限於以下方法: 1.可以遷移到另外一套高性能服務器上2.如果是邏輯卷,可以擴大邏輯卷3.添加新

Python基礎下載python第三方檔案.wheel安裝python第三方

python常見第三方庫在Windows安裝報錯解決方案 最近在Windows下開發,發現很多第三方庫在Windows上的相容性都不是很好,通過谷哥度娘後,發現一個非官方的臨時解決方案, 先貼上地址:Unofficial Windows Binaries for Python Extension Pack

Python基礎下載python第三方文件.wheel安裝python第三方

ria aio 解決方案 pyc rac bug center char sap python常見第三方庫在Windows安裝報錯解決方案 最近在Windows下開發,發現很多第三方庫在Windows上的兼容性都不是很好,通過谷哥度娘後,發現一個非官方的臨時解決方案, 先貼

4、資料庫技術Mac OS安裝MySQL

Mac OS安裝MySQL     在Mac環境下安裝MySQL有很多中選擇,可以去MySQL官網下載相應的安裝自己安裝,也可以使用Homebrew這樣的包管理工具進行安裝。推薦使用Homebrew進行安裝,具體的安裝步驟如下: 1、安裝Homebrew,Homebrew的安裝及簡單