一、MySQL數(shù)據(jù)庫軟件
1,、安裝
點(diǎn)擊去往官網(wǎng)社區(qū)版本下載
記錄版本號(hào):5.5.40 64位
2,、卸載
1、程序卸載
2,、刪除C:/ProgramData目錄下的MySQL文件夾
3、配置
MySQL服務(wù)啟動(dòng)
- 手動(dòng)打開服務(wù)窗口(計(jì)算機(jī)管理-->服務(wù)窗口)
- cmd--> services.msc 打開服務(wù)的窗口
- 使用管理員打開cmd
- net start mysql : 啟動(dòng)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 語句可以單行或多行書寫,,以分號(hào)結(jié)尾,。
- 可使用空格和縮進(jìn)來增強(qiáng)語句的可讀性。
- 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;
- 查詢某個(gè)數(shù)據(jù)庫的字符集:查詢某個(gè)數(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
)
注意:最后一列,,不要加逗號(hào)
類型 |
描述 |
int |
整數(shù)類型 (如:age int) |
double |
小數(shù)類型(如:score double(5,2)), 5指整數(shù)位數(shù),,2代表小數(shù)位數(shù) |
date |
日期。只包含年月日,,yyyy-MM-dd |
datetime |
日期,。包含年月日時(shí)分秒 yyyy-MM-dd HH:mm:ss |
timestamp |
時(shí)間戳類型。包含年月日時(shí)分秒 yyyy-MM-dd HH:mm:ss (注:如果將來不給這個(gè)字段賦值,,或賦值為null,,則默認(rèn)使用當(dāng)前的系統(tǒng)時(shí)間,來自動(dòng)賦值) |
varchar |
字符串 (如:name varchar(20), 指姓名最大20個(gè)字符) |
create table 表名 like 被復(fù)制的表名;
查詢
- 查詢某個(gè)數(shù)據(jù)庫中所有的表名稱
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)。
- 如果表名后,,不定義列名,,則默認(rèn)給所有列添加值。
- 除了數(shù)字類型,,其他類型需要使用引號(hào)(單雙都可以)引起來,。
刪除數(shù)據(jù)
delete from 表名 [where 條件];
舉個(gè)例子:刪掉表中score為null的數(shù)據(jù)
delete from stu where score is null;
delete from 表名; ---不推薦使用,,有多少條就會(huì)執(zhí)行多少次刪除,,效率低
truncate table 表名; ---推薦使用,先刪除表,,然后在創(chuàng)建一張一樣的表,,效率高
修改數(shù)據(jù)
update 表名 set 列名1 = 值1, 列名2 = 值2, ... [where 條件]
- 注意:
- 如果不加任何條件,則會(huì)將表中所有記錄全部修改,。
六、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 表名;
注:一般只會(huì)進(jìn)行數(shù)值型的計(jì)算
ifnull(需要判斷的值,替換值):null參與的運(yùn)算,,計(jì)算結(jié)果都為null,。
select 字段名1 as 別名1, 字段名2 as 別名2 ... from 表名;
注:as也可以省略不寫。
3,、條件查詢
select 字段名 from 表名 where 條件;
運(yùn)算符
運(yùn)算符 |
說明 |
例子 |
>、<,、<=,、>=、=,、<> |
<>在SQL中表示不等于,在mysql中也可以使用 !=,, 沒有== |
|
between...and |
在一個(gè)范圍之內(nèi),,包頭又包尾 |
score between 80 and 100; 表示在80到100之間,相當(dāng)于:age>=80 && age<=100 |
in(集合) |
表示多個(gè)值,,使用逗號(hào)分隔 |
id not in(1,3,5); 查詢id不是1或3或5的 |
like |
模糊查詢, 占位符:_:單個(gè)任意字符,,%:多個(gè)任意字符 |
name like '%張%'; 查詢包含張的 |
is null |
查詢一列為null的值,不能寫成 =null |
|
and 或 && |
與,,SQL中建議使用前者,,后者并不通用 |
|
or 或 || |
與,SQL中建議使用前者,,后者并不通用 |
|
not 或 ! |
與,,SQL中建議使用前者,后者并不通用 |
|
4,、排序查詢
order by 排序字段1 排序方式1, 排序字段2 排序方式2...
-
排序方式
-
注意
- 如果有多個(gè)排序條件,,則當(dāng)前邊的條件值一樣時(shí),才會(huì)判斷第二條件
5,、聚合函數(shù)
SQL中的聚合函數(shù) |
作用 |
max(列名) |
求這一列的最大值 |
min(列名) |
求這一列的最小值 |
avg(列名) |
求這一列的平均值 |
count(列名) |
統(tǒng)計(jì)這一列有多少條記錄 |
sum(列名) |
對這一列求總和 |
select 聚合函數(shù)(列名) from 表名;
- 注意
- 聚合函數(shù)的計(jì)算,會(huì)排除null值,。解決:ifnull(列名,,默認(rèn)值)
6,、分組查詢
group by 分組字段 [having 條件]
- where 和 having 的區(qū)別,?
- where 在分組之前進(jìn)行限定,如果不滿足條件,,則不參與分組,。having在分組之后進(jìn)行限定,如果不滿足結(jié)果,,則不會(huì)被查詢出來
- where 后不可以跟聚合函數(shù),,having可以進(jìn)行聚合函數(shù)的判斷。
7,、分頁查詢
limit 開始的索引, 煤業(yè)查詢的條數(shù);
開始的索引 = (當(dāng)前的頁碼 - 1) * 每頁顯示的條數(shù)
|