1. 程式人生 > >2018.11.28_MySQL基礎_總結

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';
佔位符
  _:一個任意字元
  %:多個任意字元