2018.11.28_MySQL基礎_總結
2018.11.28
今日內容
1.資料庫的基本概念
2.MySQL資料庫軟體
1)安裝
2)解除安裝
3)配置
3.SQL
一、資料庫的基本概念
資料庫概念: 用來儲存和管理資料的倉庫,本質上是一個檔案系統
特點
(1)持久化儲存資料
(2)儲存和管理資料
(3)使用統一的方式進行操作(SQL)
常見的資料庫
MySQL:免費的,開放原始碼
Oracle:收費的,不開放原始碼
二、 MySQL資料庫軟體
安裝時注意事項:允許root使用者遠端連線的√最好勾上
解除安裝的步驟:
(1)複製安裝目錄下my.ini中datadir指向的路徑,例如:datadir="C:/ProgramData/MySQL/MySQL Server 5.5/Data/"
(2)停止MySQL服務,解除安裝MySQL
(3)刪除datadir路徑中MySQL資料夾(C:\ProgramData目錄下,是隱藏資料夾)
MySQL服務的啟動和關閉
(1)開始選單搜尋cmd.exe
(2)右鍵cmd.exe,以管理員方式執行
(3)執行 net start mysql 開啟MySQL服務
(4)執行 net stop mysql 停止MySQL服務
MySQL登入和退出
登入
(1)mysql -u使用者名稱 -p密碼
(2)mysql -h地址 -u使用者名稱 -p密碼
(3)mysql --host=地址 --user=使用者名稱 --password=密碼
退出
(1)exit
(2)quit
MySQL的目錄結構
安裝目錄:basedir="D:/MySQL/"
配置檔案 my.ini
資料目錄:datadir="C:/ProgramData/MySQL/MySQL Server 5.5/Data/"
資料庫:資料夾
表:檔案
資料:檔案中的具體內容
三、SQL
概念:Structured Query Language 結構化查詢語言,可以操作所有關係型資料庫
通用語法
(1)SQL語句可以單行或多行書寫,以;號結尾
(2)使用空格和縮排增強語句的可讀性
(3)MySQL中關鍵字不區分大小寫,建議大寫
註釋:
-- 註釋內容:單行註釋,-- 後面必須寫空格
# 註釋內容:單行註釋,# 後面的空格可有可無(MySQL特有)
/*註釋內容*/:多行註釋
SQL分類
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 等
DDL 操作資料庫和表
操作資料庫:CRUD
C(Create)建立
create database 資料庫名稱; -- 建立指定名稱的資料庫
create database 資料庫名稱 character set 字符集名稱; -- 建立指定名稱的資料庫並指定字符集
create database if not exists 資料庫名稱; -- 指定名稱資料庫不存在,則建立
create database if not exists 資料庫名稱 character set 字符集名稱; -- 指定名稱資料庫不存在,則建立,並指定字符集
R(Retrieve)查詢
show databases; -- 查詢所有資料庫的名稱
show create database 資料庫名稱; -- 查詢某個資料庫的建立語句(字符集)
U(Update)修改
alter database 資料庫名稱 character set 字符集名稱; -- 修改指定名稱資料庫的字符集
D(Delete)刪除
drop database 資料庫名稱; -- 刪除指定名稱的資料庫
drop database if exists 資料庫名稱; -- 指定名稱資料庫存在,則刪除
使用資料庫
select database(); -- 查詢當前正在使用的資料庫
use 資料庫名稱; -- 使用指定名稱的資料庫
操作表
C(Create)建立
語法
create table 表名(列名1 資料型別,...列名n 資料型別);
注意事項:最後一列,不用寫逗號
資料型別
int:整數型別
double:小數型別(整體有幾位,小數佔幾位)
date:日期,包含年月日 yyyy-MM-dd
datetime:日期,包含年月日時分秒 yyyy-MM-dd HH-mm-ss
timestamp:時間戳,包含年月日時分秒,如果賦值為null或者不賦值,會自動賦值當前系統時間
varchar:字串,例如:zhangsan 8個字元,張三 2個字元
複製表
create table 表名 like 要複製的表名;
R(Retrieve)查詢
show tables; -- 檢視當前資料庫下所有表的名稱
desc 表名; -- 查詢指定表的結構
U(Update)修改
alter table 表名 rename to 新表名; -- 更改表名
alter table 表名 character set 字符集名稱; -- 修改表的字符集
alter table 表名 add 列名 資料型別; -- 新增一列
alter table 表名 change 列名 新列名 新資料型別; -- 修改一列的列名和資料型別
alter table 表名 modify 列名 新資料型別; -- 修改一列的資料型別
alter table 表名 drop 列名; -- 刪除一列
D(Delete)刪除
drop table 表名; -- 刪除指定名稱的表
drop table if exists 表名; -- 指定名稱的表存在,則刪除
SQLYog的使用
注意事項:使用前必須確保MySQL的服務已經開啟,通過cmd可以進行登入
DML 增刪改表中的資料
新增資料: insert into 表名(列名1,...,列名n) values(值1,...,值n);
注意事項
(1)列名和值必須一一對應
(2)給所有列新增值時,列名可以省略不寫
(3)除數字型別外,其他型別必須適應引號引起來(單引號,雙引號都可以)
修改資料: update 表名 set 列名1=值1,...,列名n=值n [where 條件];
注意事項:如果不加條件,則修改表中所有記錄
刪除資料: delete from 表名 [where 條件];
注意事項:如果不加條件,則刪除表中所有記錄
刪除表中所有記錄,有兩種方式:
delete from 表名:不推薦使用,逐行刪除,效率低
truncate table 表名:推薦使用,先刪除表,再建立新表,效率更高
DQL 查詢表中的資料
語法
select 欄位列表
from 表名列表
where 條件列表
group by 分組欄位
having 分組後的條件
order by 排序的欄位
limit 分頁限定
基礎查詢
select 欄位1,...,欄位n from 表名; -- 查詢多個欄位
select * from 表名; -- 查詢所有欄位
select distinct 欄位名 from 表名; -- 去除重複
計算列
可以使用四則運算計算一些列的值(必須是數值型別的列)
注意事項
(1)null參與的運算,結果都為null
(2)可以使用ifnull處理,ifnull(A,B),A是要判斷的列,B是為null時替換的值
起別名: select 欄位名1 as 別名1,...,欄位名n as 別名n from 表名;(as可以省略不寫)
條件查詢
運算子
(1)基本運算子:> < >= <= = != <>
(2)並且:and,between...and...,&&
(3)或者:or,in(值1,值2,值3),||
(4)是否為null:is null,is not null
模糊查詢: select * from 表名 where 欄位 like 'xxx';
佔位符
_:一個任意字元
%:多個任意字元