一、MySQL數(shù)據(jù)庫軟件
1、安裝
點擊去往官網(wǎng)社區(qū)版本下載
記錄版本號:5.5.40 64位
2、卸載
1、程序卸載
2、刪除C:/ProgramData目錄下的MySQL文件夾
3、配置
MySQL服務(wù)啟動
- 手動打開服務(wù)窗口(計算機管理-->服務(wù)窗口)
- cmd--> services.msc 打開服務(wù)的窗口
- 使用管理員打開cmd
- net start mysql : 啟動mysql的服務(wù)
- net stop mysql:關(guān)閉mysql服務(wù)
MySQL登錄
- mysql -uroot -p密碼
- mysql -hip -uroot -p連接目標(biāo)的密碼
- mysql --host=ip --user=root --password=連接目標(biāo)的密碼
MySQL退出
MySQL目錄結(jié)構(gòu)
- MySQL安裝目錄:basedir="D:/develop/MySQL/"
- MySQL數(shù)據(jù)目錄:datadir="C:/ProgramData/MySQL/MySQL Server 5.5/Data/"
- 數(shù)據(jù)庫 表 數(shù)據(jù)
二、SQL(Structured Query Language)結(jié)構(gòu)化查詢語言
定義了操作所有關(guān)系型數(shù)據(jù)庫的規(guī)則。每一種數(shù)據(jù)庫操作的方式存在不一樣的地方,稱為“方言”
1、SQL通用語法
- SQL 語句可以單行或多行書寫,以分號結(jié)尾。
- 可使用空格和縮進來增強語句的可讀性。
- MySQL 數(shù)據(jù)庫的 SQL 語句不區(qū)分大小寫,關(guān)鍵字建議使用大寫。
- 3 種注釋
- 單行注釋: -- 注釋內(nèi)容 或 # 注釋內(nèi)容(mysql 特有)
- 多行注釋: /* 注釋 */
2、SQL分類
- DDL(Data Definition Language)數(shù)據(jù)定義語言
- 用來定義數(shù)據(jù)庫對象:建庫,建表等。關(guān)鍵字:create, drop,alter 等
- DML(Data Manipulation Language)數(shù)據(jù)操作語言
- 對表中的記錄操作增刪改。關(guān)鍵字:insert, delete, update 等
- DQL(Data Query Language)數(shù)據(jù)查詢語言
- 對表中的查詢操作。關(guān)鍵字:select, where 等
- DCL(Data Control Language)數(shù)據(jù)控制語言(了解)
- 對用戶權(quán)限的設(shè)置。關(guān)鍵字:GRANT, REVOKE 等
三、MySQL圖形化工具
- Navicat (推薦使用)
- SQLyog
- phpMyAdmin
- Workbench
四、DDL:操作數(shù)據(jù)庫、表
CRUD 代表:創(chuàng)建(create)、查詢(Retrieve)、修改(Update)、刪除(Delete)
1、操作數(shù)據(jù)庫
創(chuàng)建
create database 數(shù)據(jù)庫名稱;
- 創(chuàng)建數(shù)據(jù)庫,判斷不存在,再創(chuàng)建
create database if not exists 數(shù)據(jù)庫名稱;
- 創(chuàng)建數(shù)據(jù)庫,并指定字符集,如:gbk、utf8等
create database 數(shù)據(jù)庫名稱 character set 字符集名;
查詢
show databases;
- 查詢某個數(shù)據(jù)庫的字符集:查詢某個數(shù)據(jù)庫的創(chuàng)建語句
show create database 數(shù)據(jù)庫名稱;
修改
alter database 數(shù)據(jù)庫名稱 character set 字符集名稱;
刪除
drop database 數(shù)據(jù)庫名稱;
drop database if exists 數(shù)據(jù)庫名稱;
使用數(shù)據(jù)庫
- 查詢當(dāng)前正在使用的數(shù)據(jù)庫名稱
select database();
use 數(shù)據(jù)庫名稱;
2、操作表
創(chuàng)建
create table 表名(
列名1 數(shù)據(jù)類型1,
列名2 數(shù)據(jù)類型2,
...
列名n 數(shù)據(jù)類型n
)
注意:最后一列,不要加逗號
類型 |
描述 |
int |
整數(shù)類型 (如:age int) |
double |
小數(shù)類型(如:score double(5,2)), 5指整數(shù)位數(shù),2代表小數(shù)位數(shù) |
date |
日期。只包含年月日,yyyy-MM-dd |
datetime |
日期。包含年月日時分秒 yyyy-MM-dd HH:mm:ss |
timestamp |
時間戳類型。包含年月日時分秒 yyyy-MM-dd HH:mm:ss (注:如果將來不給這個字段賦值,或賦值為null,則默認使用當(dāng)前的系統(tǒng)時間,來自動賦值) |
varchar |
字符串 (如:name varchar(20), 指姓名最大20個字符) |
create table 表名 like 被復(fù)制的表名;
查詢
show tables;
desc 表名;
修改
alter table 表名 rename to 新的表名
alter table 表名 character set 字符集名稱;
alter table 表名 add 列名 數(shù)據(jù)類型;
alter table 表名 change 列名 新列名 新數(shù)據(jù)類型;
alter table 表名 modify 列名 新數(shù)據(jù)類型;
alter table 表名 drop 列名;
刪除
drop table 表名;
drop table if exists 表名;
五、DML:增刪改表中數(shù)據(jù)
添加數(shù)據(jù)
insert into 表名 (列名1,列名2,...列名n) values(值1,值2,...值n);
- 注意:
- 列名和值要一一對應(yīng)。
- 如果表名后,不定義列名,則默認給所有列添加值。
- 除了數(shù)字類型,其他類型需要使用引號(單雙都可以)引起來。
刪除數(shù)據(jù)
delete from 表名 [where 條件];
舉個例子:刪掉表中score為null的數(shù)據(jù)
delete from stu where score is null;
delete from 表名; ---不推薦使用,有多少條就會執(zhí)行多少次刪除,效率低
truncate table 表名; ---推薦使用,先刪除表,然后在創(chuàng)建一張一樣的表,效率高
修改數(shù)據(jù)
update 表名 set 列名1 = 值1, 列名2 = 值2, ... [where 條件]
六、DQL:查詢表中的記錄(重要)
1、語法
slelect
字段列表
from
表名列表
where
條件列表
group by
分組字段
having
分組之后的條件
order by
排序
limit
分頁限定
2、基礎(chǔ)查詢
select 字段名1,字段名2... from 表名;
select * from 表名; --查詢所有字段
select distinct 字段名 from 表名;
select 字段名1 + 固定值(或者字段名2) from 表名;
注:一般只會進行數(shù)值型的計算
ifnull(需要判斷的值,替換值):null參與的運算,計算結(jié)果都為null。
select 字段名1 as 別名1, 字段名2 as 別名2 ... from 表名;
注:as也可以省略不寫。
3、條件查詢
select 字段名 from 表名 where 條件;
運算符
運算符 |
說明 |
例子 |
>、<、<=、>=、=、<> |
<>在SQL中表示不等于,在mysql中也可以使用 !=, 沒有== |
|
between...and |
在一個范圍之內(nèi),包頭又包尾 |
score between 80 and 100; 表示在80到100之間,相當(dāng)于:age>=80 && age<=100 |
in(集合) |
表示多個值,使用逗號分隔 |
id not in(1,3,5); 查詢id不是1或3或5的 |
like |
模糊查詢, 占位符:_:單個任意字符,%:多個任意字符 |
name like '%張%'; 查詢包含張的 |
is null |
查詢一列為null的值,不能寫成 =null |
|
and 或 && |
與,SQL中建議使用前者,后者并不通用 |
|
or 或 || |
與,SQL中建議使用前者,后者并不通用 |
|
not 或 ! |
與,SQL中建議使用前者,后者并不通用 |
|
4、排序查詢
order by 排序字段1 排序方式1, 排序字段2 排序方式2...
-
排序方式
-
注意
- 如果有多個排序條件,則當(dāng)前邊的條件值一樣時,才會判斷第二條件
5、聚合函數(shù)
SQL中的聚合函數(shù) |
作用 |
max(列名) |
求這一列的最大值 |
min(列名) |
求這一列的最小值 |
avg(列名) |
求這一列的平均值 |
count(列名) |
統(tǒng)計這一列有多少條記錄 |
sum(列名) |
對這一列求總和 |
select 聚合函數(shù)(列名) from 表名;
- 注意
- 聚合函數(shù)的計算,會排除null值。解決:ifnull(列名,默認值)
6、分組查詢
group by 分組字段 [having 條件]
- where 和 having 的區(qū)別?
- where 在分組之前進行限定,如果不滿足條件,則不參與分組。having在分組之后進行限定,如果不滿足結(jié)果,則不會被查詢出來
- where 后不可以跟聚合函數(shù),having可以進行聚合函數(shù)的判斷。
7、分頁查詢
limit 開始的索引, 煤業(yè)查詢的條數(shù);
開始的索引 = (當(dāng)前的頁碼 - 1) * 每頁顯示的條數(shù)
|