一、數(shù)據(jù)庫基本概念
1.1?數(shù)據(jù)庫(Database)是用于存儲(chǔ)和管理數(shù)據(jù)的倉庫,本質(zhì)上是一個(gè)文件系統(tǒng),還是以文件的方式存在服務(wù)器的電腦上的; 所有的關(guān)系型數(shù)據(jù)庫都可以使用通用的 SQL 語句進(jìn)行管理
1.2?mySql的安裝
詳情可私聊我獲取mysql安裝包進(jìn)行安裝
1.3 mySql的卸載:
1. 去mysql的安裝目錄找到my.ini文件復(fù)制 datadir的路徑
2. 卸載MySQL
3. 刪除datadir目錄下的MySQL文件夾。
1.4?MySQL服務(wù)啟動(dòng)和關(guān)閉的三種方法:
1. 手動(dòng)。
2. cmd--> services.msc 打開服務(wù)的窗口
3. 使用管理員打開cmd,輸入以下指令:
net start mysql : 啟動(dòng)mysql的服務(wù)
net stop mysql:關(guān)閉mysql服務(wù)
1.5?mysql登錄和退出:
MySQL登錄:打開cmd,輸入指令:
1. mysql -uroot -p密碼
2. mysql -hip -uroot -p連接目標(biāo)的密碼
3. mysql --host=ip --user=root --password=連接目標(biāo)的密碼
MySQL退出:
1. exit
2. quit
1.6 mysql目錄結(jié)構(gòu)

1.7?sql基本概念:結(jié)構(gòu)化查詢語言,其實(shí)就是定義了操作所有關(guān)系型數(shù)據(jù)庫的規(guī)則。每一種數(shù)據(jù)庫操作的方式存在不一樣的地方,稱為“方言”。
1.8 sql通用語法:
1. SQL 語句可以單行或多行書寫,以分號(hào)結(jié)尾。
2. 可使用空格和縮進(jìn)來增強(qiáng)語句的可讀性。
3. MySQL 數(shù)據(jù)庫的 SQL 語句不區(qū)分大小寫,關(guān)鍵字建議使用大寫。
4. 3 種注釋
單行注釋: -- 注釋內(nèi)容 或 # 注釋內(nèi)容(mysql 特有)
多行注釋: /* 注釋 */
1.9?sql分類
1、DDL(Data Definition Language)數(shù)據(jù)定義語言
用來定義數(shù)據(jù)庫對(duì)象:數(shù)據(jù)庫,表,列等。關(guān)鍵字:create, drop,alter 等
2、DML(Data Manipulation Language)數(shù)據(jù)操作語言
用來對(duì)數(shù)據(jù)庫中表的數(shù)據(jù)進(jìn)行增刪改。關(guān)鍵字:insert, delete, update 等
3、DQL(Data Query Language)數(shù)據(jù)查詢語言
用來查詢數(shù)據(jù)庫中表的記錄(數(shù)據(jù))。關(guān)鍵字:select, where 等
4、DCL(Data Control Language)數(shù)據(jù)控制語言(了解)
用來定義數(shù)據(jù)庫的訪問權(quán)限和安全級(jí)別,及創(chuàng)建用戶。關(guān)鍵字:GRANT, REVOKE 等
二、DDL操作數(shù)據(jù)庫
2.1 操作數(shù)據(jù)庫:CRUD
2.1.1 C(Create):創(chuàng)建
創(chuàng)建數(shù)據(jù)庫:create database 數(shù)據(jù)庫名稱;
創(chuàng)建數(shù)據(jù)庫,判斷不存在,再創(chuàng)建:create database if not exists 數(shù)據(jù)庫名稱;
創(chuàng)建數(shù)據(jù)庫,并指定字符集:create database 數(shù)據(jù)庫名稱 character set 字符集名;
練習(xí): 創(chuàng)建db4數(shù)據(jù)庫,判斷是否存在,并制定字符集為gbk:
create database if not exists db4 character set gbk;
2.1.2 R(Retrieve):查詢
查詢所有數(shù)據(jù)庫的名稱:how databases;
查詢某個(gè)數(shù)據(jù)庫:show create database 數(shù)據(jù)庫名稱;
2.1.3 U(Update):修改
修改數(shù)據(jù)庫的字符集:alter database 數(shù)據(jù)庫名稱 character set 字符集名稱;
2.1.4 D(Delete):刪除
刪除數(shù)據(jù)庫:drop database 數(shù)據(jù)庫名稱;
判斷數(shù)據(jù)庫存在,存在再刪除:drop database if exists 數(shù)據(jù)庫名稱;
2.1.5 使用數(shù)據(jù)庫:
查詢當(dāng)前正在使用的數(shù)據(jù)庫名稱:select database();
使用數(shù)據(jù)庫:use 數(shù)據(jù)庫名稱;
2.1.6?注意事項(xiàng):查看使用數(shù)據(jù)庫的時(shí)候database后面要跟(),以后開發(fā)過程中切忌不要用drop database,會(huì)造成嚴(yán)重的數(shù)據(jù)丟失。
三、DDL操作表
3.1?操作表:CRUD
3.1.1 C(Create):創(chuàng)建
1、語法:
create table 表名(列名1 數(shù)據(jù)類型1,列名2 數(shù)據(jù)類型2,....列名n 數(shù)據(jù)類型n);
注意:最后一列,不需要加逗號(hào)(,)
2、創(chuàng)建表的數(shù)據(jù)類型:
int:整數(shù)類型,age int,
double:小數(shù)類型,score double(5,2)
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è)字符
3.1.2 R(Retrieve)查詢
查詢某個(gè)數(shù)據(jù)庫中所有的表名稱:show tables;
查詢表結(jié)構(gòu):desc 表名;
3.1.3?U(Update)修改
1. 修改表名:alter table 表名 rename to 新的表名;
2. 修改表的字符集:alter table 表名 character set 字符集名稱;
3. 添加一列:alter table 表名 add 列名 數(shù)據(jù)類型;
4. 修改列名稱和數(shù)據(jù)類型:alter table 表名 change 列名 新列別 新數(shù)據(jù)類型;
5. 刪除列:alter table 表名 drop 列名;
3.1.4?D(Delete)刪除
刪除表:drop table 表名;
判斷表存在,存在再刪除:drop table??if exists 表名 ;
五、圖形化界面工具SQLyog
5.1?概述:一款可以用圖形化界面操作mysql的工具。
5.2?安裝:需要軟件的可私聊找我領(lǐng)取
六、DML操作數(shù)據(jù)庫中的表? ??
6.1 DML添加數(shù)據(jù):
?insert into 表名(列名1,列名2,...列名n) values(值1,值2,...值n);
注意:
1. 列名和值要一一對(duì)應(yīng)。
2. 如果表名后,不定義列名,則默認(rèn)給所有列添加值
insert into 表名 values(值1,值2,...值n);
3. 除了數(shù)字類型,其他類型在賦值時(shí)需要使用引號(hào)(單雙都可以)引起來
6.2?DML刪除數(shù)據(jù):
delete from 表名 [where 條件]
注意:
1. 如果不加條件,則刪除表中所有記錄。
2. 如果要?jiǎng)h除所有記錄,推薦使用TRUNCATE TABLE 表名;?效率更高,先刪除表,然后再創(chuàng)建一張一樣的表。
6.3?DML修改數(shù)據(jù):
update 表名 set 列名1 = 值1, 列名2 = 值2,... [where 條件];
注意:
1. 如果不加任何條件,則會(huì)將表中所有記錄全部修改。
七、DQL查詢數(shù)據(jù)庫的表
7.1?基礎(chǔ)查詢:
1.?多個(gè)字段的查詢:
select 字段名1,字段名2... from 表名;
注意:如果查詢所有字段,則可以使用*來替代字段列表。
2. 去除重復(fù):distinct
3. 計(jì)算列
一般可以使用四則運(yùn)算計(jì)算一些列的值。(一般只會(huì)進(jìn)行數(shù)值型的計(jì)算)
ifnull(表達(dá)式1,表達(dá)式2):null參與的運(yùn)算,計(jì)算結(jié)果都為null
表達(dá)式1:哪個(gè)字段需要判斷是否為null
表達(dá)式2:如果該字段為null后的替換值。
4. 起別名:可使用as,也可以直接省略
7.2?條件查詢:
1. where語句后跟條件
2. 運(yùn)算符
?> 、< 、<= 、>= 、= 、<>
BETWEEN...AND
IN( 集合)
LIKE:模糊查詢
占位符:
_:單個(gè)任意字符
%:多個(gè)任意字符
IS NULL
and??或 &&
or??或 ||
not??或 !