一、序言 1、MySQL簡介 本機安裝的是MySQL5.7資料庫,採用離線安裝的方式,筆者打算把資料庫學懂後再升級為8.0版本的。MySQL其實是一個數據管理系統(DataBase Managment System, DBSM),既包括數據的存儲,又具有有數據的管理功能。MySQL5.7預設的引擎是 ...
一、序言
1、MySQL簡介
本機安裝的是MySQL5.7資料庫,採用離線安裝的方式,筆者打算把資料庫學懂後再升級為8.0版本的。MySQL其實是一個數據管理系統(DataBase Managment System, DBSM),既包括數據的存儲,又具有有數據的管理功能。MySQL5.7預設的引擎是InnoDB,它提供事務安全的存儲機制。InnoDB通過建立行級鎖來保證事務完整性並以Oracle風格的共用鎖來處理Select語句。一般來說,對於MySQL5.0以上的版本,無須指定數據表的存儲機制,因為系統預設使用InnoDB存儲機制。除了InnoDB外,MySQL早期的資料庫引擎是MylSAM,它對事物的支持並不好。SQL(Structured Query Language)是結構化查詢語言,是操作和檢索關係資料庫的標準語言。
2、標準SQL的四種類型
1、DQL(Data Query Language)查詢語句:主要由select關鍵字完成,查詢語句是SQL語句中最複雜、功能最豐富的語句。
2、DML(Data Manipulation Language,數據操作語言)語句:主要由insert、update和delete三個關鍵字完成。
3、DDL(Data Definition Language,數據定義語言)語句:主要由create、alter、drop和truncate四個關鍵字完成。
4、DCL(Data Control Language,數據控制語言)語句:主要由grant和revoke兩個關鍵字來完成。
3、啟動、停止MySQL
由於是離線安裝,因此並不支持在CMD命令行輸入“ net start mysql ”這種啟動方式,而是需要去MySQL的bin目錄下找到mysqld.exe程式來運行啟動資料庫;同理,也不支持“ net stop mysql ”這種停止服務的方式,呃,怎麼在bin目錄里用exe程式來停服我沒用過,在寫這篇筆記時專門查過這個問題,但沒找到答案,所以,我一般都是直接去任務管理器里結束mysql任務來停服。
4、MySQL數據類型
列類型 |
說明 |
tinyint/smallint/mediumint int/bigint |
1位元組/2位元組/3位元組/4位元組/8位元組整數,又可分為有符號和無符號兩種。這些整數類型的區別僅僅是表示的範圍不同。 int預設最多11位, int(2) 必須是2位數字 |
float/double |
單精度、雙精度浮點類型 |
decimal/dec |
精確小數類型,相對於float和double不會產生精度丟失的問題 decimal(6,2) |
date |
日期類型,不能保存時間,當把Java中的Date對象保存到date列時,時間部分丟失 |
time |
時間類型,不能保存日期,當把Java中的Date對象保存到date列時,日期部分丟失 |
datetime |
日期、時間類型 |
timestamp |
時間戳類型 不能沒有值. 預設是系統當前時間. yyyy-MM-dd |
year |
年類型,僅僅保存時間的年份 |
char |
定長字元串類型 char(10) 必須是10個字元的字元串 |
varchar |
可變長度字元串類型 **** varchar(10) 最多10個字元 |
binary |
定長二進位字元串類型,它以二進位形式保存字元串 |
varbinary |
可變長度的二進位字元串類型,它以二進位形式保存字元串 |
tinyblob/blob/ mediumtblob/longblob |
1位元組/2位元組/3位元組/4位元組的二進位大對象,可以用於存儲圖片,音樂等二進位數據,分別可存儲255B/64KB/16MB/4GB大小 |
tinytext/text mediumtext/longtext |
1位元組/2位元組/3位元組/4位元組的文本對象,可以用於存儲超長的字元串,分別可存儲255B/64KB/16MB/4GB大小的文本 |
一、SQL基礎語句
1、資料庫(database)的基本操作
(1)、查詢(顯示)所有資料庫
show databases;
(2)、創建一個名為“ review ”的資料庫
create database review;
(3)、刪除名為“ review ”的資料庫
drop database review;
(4)、如果存在名為“review”的資料庫,則不創建,否則創建名為“ review ”的資料庫
create database if not exists review;
(5)、如果存在名為“review”的資料庫,則刪除它,否則不刪除
drop database if exists review;
(6)、查看當前資料庫下的所有表
show tables;