文章目錄
1.數據庫的基本概念
- 數據庫的英文單詞: DataBase 簡稱 : DB
- 什麼數據庫?
用於存儲和管理數據的倉庫。 - 數據庫的特點:
1. 持久化存儲數據的。其實數據庫就是一個文件系統
2. 方便存儲和管理數據
3. 使用了統一的方式操作數據庫 – SQL
2.MySQL數據庫軟件
1. 安裝
2. 卸載
- 去mysql的安裝目錄找到my.ini文件
* 複製 datadir=“C:/ProgramData/MySQL/MySQL Server 5.5/Data/” - 卸載MySQL
- 刪除C:/ProgramData目錄下的MySQL文件夾。
卸載鏈接link.
3. 配置
- MySQL服務啓動
- 手動。
- cmd–> services.msc 打開服務的窗口
- 使用管理員打開cmd
net start mysql : 啓動mysql的服務
net stop mysql:關閉mysql服務
- MySQL登錄
1. mysql -uroot -p密碼
2. mysql -hip -uroot -p連接目標的密碼
3. mysql --host=ip --user=root --password=連接目標的密碼 - MySQL退出
1. exit
2. quit
4. MySQL目錄結構
MySQL 的目錄結構 | 描述 |
---|---|
bin<目錄> | 所有 mysql 的可執行文件,如:mysql.exe |
MySQLInstanceConfig.exe | 數據庫的配置嚮導,在安裝時出現的內容 |
data<目錄> | data<目錄> 系統必須的數據庫所在的目錄 |
my.ini 文件 | mysql 的配置文件,一般不建議去修改。 |
c:\ProgramData\MySQL\MySQL Server 5.5\data\ | 我們自己創建的數據庫所在的文件夾 |
5.數據庫管理系統
數據庫管理系統(DataBase Management System,DBMS):指一種操作和管理數據庫的大型軟件,用於建 立、使用和維護數據庫,對數據庫進行統一管理和控制,以保證數據庫的安全性和完整性。用戶通過數據庫管理 系統訪問數據庫中表內的數據
6. 數據庫管理系統、數據庫和表的關係
數據庫管理程序(DBMS)可以管理多個數據庫,一般開發人員會針對每一個應用創建一個數據庫。爲保存應用中實體的數據,一般會在數據庫創建多個表,以保存程序中實體 User 的數據。
3.SQL
1.什麼是SQL?
Structured Query Language:結構化查詢語言
其實就是定義了操作所有關係型數據庫的規則。每一種數據庫操作的方式存在不一樣的地方,稱爲“方言”。
2.SQL 作用
- 是一種所有關係型數據庫的查詢規範,不同的數據庫都支持。
- 通用的數據庫操作語言,可以用在不同的數據庫中。
- 不同的數據庫 SQL 語句有一些區別
3.SQL 語句分類
- Data Definition Language (DDL 數據定義語言) 如:建庫,建表
- Data Manipulation Language(DML 數據操縱語言),如:對錶中的記錄操作增刪改
- Data Query Language(DQL 數據查詢語言),如:對錶中的查詢操作
- Data Control Language(DCL 數據控制語言),如:對用戶權限的設置
4.MySQL 的語法
- 每條語句以分號結尾,如果在 SQLyog 中不是必須加的。
- SQL 中不區分大小寫,關鍵字中認爲大寫和小寫是一樣的
- 3 種註釋:
註釋的語法 | 說明 |
---|---|
–空格 | 單行註釋 |
/* */ 多行註釋 | 多行註釋 |
# | 這是 mysql 特有的註釋方式 |
4.DDL 操作數據庫
1.創建數據庫
- 創建數據庫
CREATE DATABASE 數據庫名;
- 判斷數據庫是否已經存在,不存在則創建數據庫
CREATE DATABASE IF NOT EXISTS 數據庫名;
-創建數據庫並指定字符集
CREATE DATABASE 數據庫名 CHARACTER SET 字符集;
2.查看數據庫
- 查看所有的數據庫
show databases;
- 查看某個數據庫的定義信息
show create database db3;
show create database db1;
3.修改數據庫
- 修改數據庫默認的字符集
ALTER DATABASE 數據庫名 DEFAULT CHARACTER SET 字符集;
4. 刪除數據庫
DROP DATABASE 數據庫名;
5.使用數據庫
- 查看正在使用的數據庫
SELECT DATABASE(); 使用的一個 mysql
- 使用/切換數據庫
USE 數據庫名;
5.DDL 操作表結構
1.查看錶
- 查看某個數據庫中的所有表
SHOW TABLES;
- 查看錶結構
DESC 表名;
- 查看創建表的 SQL 語句
SHOW CREATE TABLE 表名;
- 快速創建一個表結構相同的表
CREATE TABLE 新表名 LIKE 舊錶名;
2.刪除表
- 直接刪除表
DROP TABLE 表名;
- 判斷表是否存在,如果存在則刪除表
DROP TABLE IF EXISTS 表名;
3.修改表結構
- 修改表結構
ALTER TABLE 表名 ADD 列名類型;
- 修改列類型MODIFY
ALTER TABLE 表名 MODIFY 列名新的類型;
- 修改列名CHANGE
ALTER TABLE 表名 CHANGE 舊列名 新列名 類型;
- 刪除列DROP
ALTER TABLE 表名 DROP 列名;
- 修改表名
RENAME TABLE 表名 TO 新表名;
- 修改字符集characterset
ALTER TABLE 表名 characterset 字符集;
6.DML操作表中的數據
用於對錶中的記錄進行增刪改操作
1. 插入記錄
- 插入全部字段
INSERT INTO 表名(字段名1,字段名2,字段名3…)VALUES(值1,值2,值3);
- 插入部分數據
INSERT INTO 表名(字段名1,字段名2,...)VALUES(值1,值2,...);
注:沒有添加數據的字段會使用NULL
insert的注意事項:
- 插入的數據應與字段的數據類型相同
- 數據的大小應在列的規定範圍內,例如:不能將一個長度爲80的字符串加入到長度爲40的列中。
- 在values中列出的數據位置必須與被加入的列的排列位置相對應。在mysql中可以使用value,但不建議使用,功能與values相同。
- 字符和日期型數據應包含在單引號中。MySQL中也可以使用雙引號做爲分隔符。
- 不指定列或使用null,表示插入空值。
2.更新表記錄
- 不帶條件修改數據
UPDATE 表名 SET 段名=值;--修改所有的行
- 帶條件修改數據
UPDATE 名 SET 字段名=值 WHERE 字段名=值;
3.刪除表記錄
- 帶條件刪除數據
DELETE FROM 表名;
- 帶條件刪除數據
DELETE FROM 表名 WHERE 字段名=值;
- 使用 truncate 刪除表中所有記錄
TRUNCATE TABLE 表名;
truncate 和 delete 的區別:
truncate 相當於刪除表的結構,再創建一張表。
7.DQL 查詢表中的數據
1.簡單查詢
- 查詢表所有行和列的數據
SELECT * FROM 表名;
- 查詢指定列
SELECT 字段名 1, 字段名 2, 字段名 3, ... FROM 表名;
- 指定列的別名進行查詢
使用別名的好處: 顯示的時候使用新的名字,並不修改表的結構。
SELECT 字段名 1 AS 別名, 字段名 2 AS 別名... FROM 表名;
2.清除重複值
- 查詢指定列並且結果不出現重複數據
SELECT DISTINCT 字段名 FROM 表名;
- 查詢結果參與運算
- 某列數據和固定值運算
SELECT 列名 1 + 固定值 FROM 表名;
- 某列數據和其他列數據參與運算
SELECT 列名 1 + 列名 2 FROM 表名;
注意: 參與運算的必須是數值類型
3.條件查詢
- 條件查詢的語法
SELECT 字段名 FROM 表名 WHERE 條件;
流程:取出表中的每條數據,滿足條件的記錄就返回,不滿足條件的記錄不返回
- 運算符
比較運算符 | 說明 |
---|---|
>、<、<=、>=、=、<> | <>在 SQL 中表示不等於,在 mysql 中也可以使用!=沒有== |
BETWEEN…AND | 在一個範圍之內,如:between 100 and 200相當於條件在 100 到 200 之間,包頭又包尾 |
IN(集合) | 集合表示多個值,使用逗號分隔 |
LIKE ‘張%’ | 模糊查詢 |
IS NULL | 詢某一列爲 NULL 的值,注:不能寫=NULL |
- 邏輯運算符
邏輯運算符 | 說明 |
---|---|
and 或 && | 與,SQL 中建議使用前者,後者並不通用。 |
or 或 | 或 |
not 或 ! | 非 |
- in 關鍵字
SELECT 字段名 FROM 表名 WHERE 字段 in (數據 1, 數據 2...);
in 裏面的每個數據都會作爲一次條件,只要滿足條件的就會顯示
- like 關鍵字
LIKE 表示模糊查詢
SELECT * FROM 表名 WHERE 字段名 LIKE '通配符字符串';
- MySQL 通配符
通配符 | 說明 |
---|---|
% | 匹配任意多個字符串 |
_ | 匹配一個字符 |