MySQL基礎和SQL入門【臨時】
1. MySQL基礎和SQL入門
1.1 MySQL資料庫的安裝
1.1.1 安裝
幾個頁面的詳細資訊:
1.1.2 配置環境變數
1.1.3 解除安裝:解除安裝後,並不會刪除配置和資料檔案,需要自行刪除。
1.1.4 啟動與關閉
-
管理->服務->還找到MySQL啟動或停止
-
命令列【管理員身份】
net stop mysql服務名
net startmysql服務名
1.1.5登入
-
啟動
mysql -uroot -p
mysql -hIP地址 -u使用者名稱 -p密碼
-
退出命令
exit
quit
1.1.6 目錄結構
-
安裝目錄
預設:C:\Program Files\MySQL
-
配置資訊 和 資料庫資料
預設:C:\ProgramData\MySQL
Data:中存放資料庫的資料
my.ini 是mysql的配置檔案
-
安裝器和下載的連線驅動
預設:C:\Program Files (x86)\MySQL
1.2 資料庫管理系統
1.2.1 簡介
1. 什麼是資料庫管理系統 ?
資料庫管理系統(DataBase Management System,DBMS):指一種操作和管理維護資料庫的大 型軟體。
MySQL就是一個 資料庫管理系統軟體, 安裝了Mysql的電腦,我們叫它資料庫伺服器.
2. 資料庫管理系統的作用
用於建立、使用和維護資料庫,對資料庫進行統一的管理。
3. 資料庫管理系統、資料庫 和表之間的關係
MySQL中管理著很多資料庫,在實際開發環境中 一個資料庫一般對應了一個的應用,資料庫當中保 存著多張表,每一張表對應著不同的業務,表中儲存著對應業務的資料。
1.2.2 SQL
1. SQL簡介
**1. 什麼是SQL **
結構化查詢語言(Structured Query Language)簡稱SQL,是一種特殊目的的程式語言,是一種資料庫 查詢和程式設計語言,用於存取資料以及查詢、更新和管理關聯式資料庫系統。
2. SQL 的作用
是所有關係型資料庫的統一查詢規範。所有的關係型資料庫都可以使用SQL。但不同資料庫之間的SQL有一些區別。
2. 通用語法
-
SQL語句可以單行 或者 多行書寫,以分號 結尾 ;
-
可以使用空格和縮排來增加語句的可讀性。
-
MySql中使用SQL不區分大小寫,一般關鍵字大寫,資料庫名 表名列名 小寫。
-
註釋方式
- – xxxxx 單行註釋,注意空格不能丟。
- /* xxxxxxx */ 多行註釋
- #xxxxxxx 注意這是MySQL特有的,也是單行註釋
3. SQL的分類
分類 | 說明 |
---|---|
資料定義語言(DDL) | 簡稱DDL(Data Definition Language),用來定義資料庫物件:資料庫,表,列 等。 |
資料操作語言(DML) | 簡稱DML(Data Manipulation Language),用來對資料庫中表的記錄進行更新。 |
資料查詢語言(DQL) | 簡稱DQL(Data Query Language),用來查詢資料庫中表的記錄。 |
資料控制語言(DCL) | 簡稱DCL(Data Control Language),用來定義資料庫的訪問許可權和安全級別, 及建立使用者。(瞭解 |
4. DDL操作
1. CRUD
對資料庫的操作包括:
C create 建立
R retrieve 查詢
U update 修改
D delete 刪除
2. MySQL自帶資料庫
資料庫名 | 介紹 |
---|---|
information_schema | 儲存其他資料庫的資訊 |
mysql | MySQL核心資料庫,儲存使用者資訊和許可權 |
performance_schema | 儲存效能相關資料,監控MySQL的效能 |
sys | 記錄DBA所需要的的一些資訊,方便DBA瞭解資料庫的執行狀況。 |
3. 對資料庫的DDL操作
-- 建立資料庫,預設字符集為 utf8mb4(MySQL8) latin1(MySQL5.7)
create database 資料庫名 [character set utf8];
use 資料庫; -- 切換資料庫
select database(); -- 查詢當前資料庫
show databases; -- 檢視mysql中所有資料庫
show create database 資料庫名; -- 檢視資料庫定義資訊,好像沒啥子用
alter database 資料庫名 character set utf8; -- 將資料庫編碼修改為utf8
drop database 資料庫名; -- 刪除資料庫
4. 對資料表的DDL操作
-- 新增表
create table 表名(
欄位1 型別,
欄位1 型別,
...
);
show tables; -- 檢視當前資料庫 所有表的 表名
desc 表名; -- 檢視錶的 資料結構
drop table [if exists] 表名; -- 刪除表
rename table 舊錶名 to 新表名; -- 修改表名
alter table 表名 character set utf8; -- 修改表的字符集
alter table 表名 add 欄位名 型別; -- 新增欄位
alter table 表名 modify 欄位名 新型別; -- 修改表某欄位的型別
alter table 表名 change 舊列名 新列名 新列型別; -- 修改 列名 及 型別
alter table 表名 drop 列名; -- 刪除表中一列
資料型別:
儲存資料的長度超過char/carchar的長度會怎樣?
都一樣會報錯。
5. DML操作
-- 插入資料
insert into 表名[(欄位1,欄位1,欄位1)] value (值1,值1,值1); -- 欄位與值一一對應,當插入全部欄位時[]中的內容可省
-- 注意:varchar char date型別的值必須使用單引號,或者雙引號 包裹。
update 表名 set 列名=值[, 列名2=值 ...] [where 條件表示式]; -- 修改某列資料的值,當where省略時,修改該列全部資料
delete from 表名 [where 條件表示式]; -- 刪除某行資料,當where省略時,逐條 刪除全部資料
truncate table 表名; -- 刪除表的全部資料,相當於刪表後,重建。效率高。
6. DQL操作
1. 語法
select 列名,列名 from 表名; -- 查詢所有列時,可以使用 * 表示
select 列名 AS 別名, 列名 別名 from 表名; -- 起別名
select distinct 列名 from 表名; -- 去重
select 列名+10 新列名 from 表名; -- 可以對查詢的結果進行運算或呼叫函式
select 列名,列名 from 表名 where 條件表示式; -- 遍歷一遍所有資料,將符合要求的返回
select 列名 from 表名 order by 列名 [ASC / DESC]; -- 按某列進行排序 ASC升序【預設】 DESC 降序
select 列名 from 表名 order by 列表 DESC , 列2 DESC; -- 先按第一個,再按第二個,注意逗號
select 聚合函式(欄位名) from 表名;
select 分組欄位/聚合函式 from 表名 group by 分組欄位 [having 條件] -- 分組
select * from 表名 limit offset , length; -- 限制行數 ** MySQL方言 **
注意:查詢不會對資料庫中的資料進行修改,只是一種顯示資料的方式。
2. 條件表示式
比較運算子:
運算子 | 說明 |
---|---|
> 、 < 、 >= 、 <= 、= 、<> 、 != | 注意:等號就一個;<>等價於 != |
A between X and Y | A的值介於X和Y之間 |
in(集合) | 取值在集合給定的值中,也可以直接給值,如 in(1,2,3) |
like ‘%ABC_’ | 字元創模糊匹配 % 任意多個任意字元 _代表一個任意字元 |
is null is not null | 判斷是否為null,不能用 = null |
邏輯運算子
運算子 | 說明 |
---|---|
and && | 與運算 |
or || | 或運算 |
not | 取反 |
3. 聚合函式
聚合函式 | 作用 |
---|---|
count(欄位) count(*) | 統計行數,null值不計 |
sum(欄位) | 指定列的數值和 |
max(欄位) | 指定列的最大值 |
min(欄位) | 指定列的最小值 |
avg(欄位) | 指定列的平均值 |
4. 分組
SELECT
dept_name,
AVG(salary)
FROM emp WHERE dept_name IS NOT NULL
GROUP BY dept_name HAVING AVG(salary) > 6000 ;
分組的目的就是將資料分成幾類,然後將某一類資料當成整體,獲取其資訊。
所以select之後只能跟 分組條件列 或者 聚合函式,聚合函式的作用就是獲取一組資料的整體資訊。如果跟其他的欄位會返回每組的第一函式資料,沒有實際意義。
如果要對分組後的資料進行篩選,要是用having關鍵字進行限制。having類似與where,但having之後可以跟聚合函式。
5. limit關鍵字
SELECT * FROM emp LIMIT 0 , 5;
-
offset 預設為0;
-
注意了 limit 關鍵字是MySQL的方言。 用途是:實現分頁。
-
起始索引 = (頁面-1)* 每頁行數
相關文章
- SQL入門基礎SQL
- SQL基礎入門SQL
- MySQL 基礎入門MySql
- 1、MySQL和SQL入門MySql
- MySql入門--基礎知識MySql
- Oracle 基礎 ----臨時表和物件表Oracle物件
- sql入門基礎知識分享SQL
- PL/SQL基礎語法入門SQL
- 【基礎知識】基於事物的臨時表和基於會話的臨時表會話
- 入門MySQL——基礎語句篇MySql
- mysql 基礎命令入門學習MySql
- mybatis入門基礎(五)----動態SQLMyBatisSQL
- SQL隱碼攻擊基礎入門SQL
- 資料庫MySQL(帶你零基礎入門MySQL)資料庫MySql
- RabbitMQ基礎入門MQ
- mongodb基礎入門MongoDB
- ZooKeeper 基礎入門
- Elasticsearch 基礎入門Elasticsearch
- Vim 入門:基礎
- Bootstrap基礎入門boot
- Html基礎入門HTML
- ElasticSearch基礎入門Elasticsearch
- HTML 基礎入門HTML
- Dart 基礎入門Dart
- Nginx 基礎入門Nginx
- Kafka基礎入門Kafka
- Redis入門基礎Redis
- Java 入門基礎Java
- Maven入門基礎Maven
- JavaScript入門基礎JavaScript
- Zookeeper基礎入門
- goalng 基礎入門Go
- TypeScript 基礎入門TypeScript
- Mongoose基礎入門Go
- systemtap基礎入門
- sqlServer 基礎入門SQLServer
- 【FastAPI】入門基礎ASTAPI
- shell入門基礎