JAVA 之 MySql知識(shí)框架

一劲厌、數(shù)據(jù)庫(kù)概述

  • 數(shù)據(jù)庫(kù)(DataBase,DB):指長(zhǎng)期保存在計(jì)算機(jī)的存儲(chǔ)設(shè)備上,按照 一定規(guī)則組織起來(lái)军拟,可以被各種用戶(hù)或應(yīng)用共享的數(shù)據(jù)集合剃执。

  • 數(shù)據(jù)庫(kù)管理系統(tǒng)(DataBase Management System,DBMS):
    指一種操作和管理數(shù)據(jù)庫(kù)的大型軟件懈息,用于建立肾档、使用和維護(hù)數(shù)據(jù)庫(kù),對(duì)數(shù)據(jù)庫(kù)進(jìn)行統(tǒng)一管理和控制辫继,以保證數(shù)據(jù)庫(kù)的安全性和完整性怒见。用戶(hù)通過(guò)數(shù)據(jù)庫(kù)管理系統(tǒng)訪問(wèn)數(shù)據(jù)庫(kù)中的數(shù)據(jù)。

  • 數(shù)據(jù)庫(kù)軟件應(yīng)該為數(shù)據(jù)庫(kù)管理系統(tǒng)姑宽,數(shù)據(jù)庫(kù)是通過(guò)數(shù)據(jù)庫(kù)管理系統(tǒng)創(chuàng)建和操作的遣耍。

  • 數(shù)據(jù)庫(kù):存儲(chǔ)、維護(hù)和管理數(shù)據(jù)的集合低千。

二配阵、數(shù)據(jù)庫(kù)的安裝與配置

* 安裝
    * 參照?qǐng)D解
    * 一路下一步
* 卸載
    1.停止mysql服務(wù)   net stop mysql     啟動(dòng)mysql服務(wù)  net start mysql
    2.卸載mysql
    3.找到mysql 安裝目錄下的 my.ini   datadir="C:/ProgramData/MySQL/MySQL Server 5.5/Data/"
* 運(yùn)行
    * 安裝成功了打開(kāi)cmd  --> mysql -uroot -p你的密碼
    * 修改mysql root用戶(hù)密碼
        1) 停止mysql服務(wù) 運(yùn)行輸入services.msc 停止mysql服務(wù)
            或者 cmd -->  net stop mysql
        2) 在cmd下 輸入 mysqld --skip-grant-tables 啟動(dòng)服務(wù)器 光標(biāo)不動(dòng) (不要關(guān)閉該窗口)
        3) 新打開(kāi)cmd 輸入mysql -u root -p 不需要密碼 
        use mysql;
        update user set password=password('abc') WHERE User='root';
        4) 關(guān)閉兩個(gè)cmd窗口 在任務(wù)管理器結(jié)束mysqld 進(jìn)程 
        5) 在服務(wù)管理頁(yè)面 重啟mysql 服務(wù)
        密碼修改完成

配置

圖片1.png

圖片2.png

圖片3.png

圖片4.png

圖片5.png

圖片6.png

圖片7.png

圖片8.png

圖片9.png

圖片10.png

圖片11.png

三、sql概述

  • SQL:Structure Query Language示血。(結(jié)構(gòu)化查詢(xún)語(yǔ)言)
  • SQL被美國(guó)國(guó)家標(biāo)準(zhǔn)局(ANSI)確定為關(guān)系型數(shù)據(jù)庫(kù)語(yǔ)言的美國(guó)標(biāo)準(zhǔn)棋傍,后來(lái)被國(guó)際化標(biāo)準(zhǔn)組織(ISO)采納為關(guān)系數(shù)據(jù)庫(kù)語(yǔ)言的國(guó)際標(biāo)準(zhǔn)。
    各數(shù)據(jù)庫(kù)廠商都支持ISO的SQL標(biāo)準(zhǔn)难审。普通話(huà)
    各數(shù)據(jù)庫(kù)廠商在標(biāo)準(zhǔn)的基礎(chǔ)上做了自己的擴(kuò)展瘫拣。方言

四、Sql的分類(lèi)

  • DDL(*)(Data Definition Language):數(shù)據(jù)定義語(yǔ)言告喊,用來(lái)定義數(shù)據(jù)庫(kù)對(duì)象:庫(kù)麸拄、表、列等黔姜;
  • DML(**)(Data Manipulation Language):數(shù)據(jù)操作語(yǔ)言拢切,用來(lái)定義數(shù)據(jù)庫(kù)記錄(數(shù)據(jù));
  • DCL(Data Control Language):數(shù)據(jù)控制語(yǔ)言秆吵,用來(lái)定義訪問(wèn)權(quán)限和安全級(jí)別淮椰;
  • DQL(*****)(Data Query Language):數(shù)據(jù)查詢(xún)語(yǔ)言,用來(lái)查詢(xún)記錄(數(shù)據(jù))纳寂。
  • 注意:sql語(yǔ)句以;結(jié)尾

4.1 DDL:操作數(shù)據(jù)庫(kù)主穗、表、列等

使用的關(guān)鍵字:CREATE毙芜、 ALTER忽媒、 DROP

4.1.1操作數(shù)據(jù)庫(kù)

創(chuàng)建

Create database mydb1;
Create database mydb2 character set gbk;
Create database mydb3 character set gbk COLLATE gbk_chinese_ci;

查詢(xún)

查看當(dāng)前數(shù)據(jù)庫(kù)服務(wù)器中的所有數(shù)據(jù)庫(kù)
Show databases;
查看前面創(chuàng)建的mydb2數(shù)據(jù)庫(kù)的定義信息
Show create database mydb2;
刪除前面創(chuàng)建的mydb3數(shù)據(jù)庫(kù)
Drop database mydb3;

修改

查看服務(wù)器中的數(shù)據(jù)庫(kù),并把mydb2的字符集修改為utf8;
alter database mydb2 character set utf8;

刪除

Drop database mydb3;

* 其他:

查看當(dāng)前使用的數(shù)據(jù)庫(kù)
Select database();
切換數(shù)據(jù)庫(kù)
Use mydb2;

4.1.2操作數(shù)據(jù)表

* 語(yǔ)法:
        create table 表名(
            字段1 字段類(lèi)型,
            字段2 字段類(lèi)型,
            ...
            字段n 字段類(lèi)型
        );              
* 常用數(shù)據(jù)類(lèi)型:
        int:整型
        double:浮點(diǎn)型腋粥,例如double(5,2)表示最多5位晦雨,其中必須有2位小數(shù)架曹,即最大值為999.99;
        char:固定長(zhǎng)度字符串類(lèi)型闹瞧;    char(10)     'aaa       '  占10位
        varchar:可變長(zhǎng)度字符串類(lèi)型音瓷; varchar(10)  'aaa'  占3為
        text:字符串類(lèi)型;
        blob:字節(jié)類(lèi)型夹抗;
        date:日期類(lèi)型,格式為:yyyy-MM-dd纵竖;
        time:時(shí)間類(lèi)型漠烧,格式為:hh:mm:ss
        timestamp:時(shí)間戳類(lèi)型 yyyy-MM-dd hh:mm:ss  會(huì)自動(dòng)賦值
        datetime:日期時(shí)間類(lèi)型 yyyy-MM-dd hh:mm:ss
當(dāng)前數(shù)據(jù)庫(kù)中的所有表
SHOW TABLES;
查看表的字段信息
DESC employee;
在上面員工表的基本上增加一個(gè)image列。
ALTER TABLE employee ADD image blob;
修改job列靡砌,使其長(zhǎng)度為60已脓。
ALTER TABLE employee MODIFY job varchar(60);
刪除image列,一次只能刪一列。
ALTER TABLE employee DROP image;
表名改為user通殃。
RENAME TABLE employee TO user;
查看表格的創(chuàng)建細(xì)節(jié)
SHOW CREATE TABLE user;
修改表的字符集為gbk
ALTER TABLE user CHARACTER SET gbk;
列名name修改為username
ALTER TABLE user CHANGE name username varchar(100);
刪除表
DROP TABLE user ;
4.2 DML操作(重要)
  • 查詢(xún)表中的所有數(shù)據(jù)
    SELECT * FROM 表名;
  • DML是對(duì)表中的數(shù)據(jù)進(jìn)行增度液、刪、改的操作画舌。不要與DDL混淆了堕担。
    INSERT 、UPDATE曲聂、 DELETE
  • 小知識(shí): 在mysql中霹购,字符串類(lèi)型和日期類(lèi)型都要用單引號(hào)括起來(lái)∨笠福空值:null
4.3 DQL操作

DQL數(shù)據(jù)查詢(xún)語(yǔ)言 (重要)
數(shù)據(jù)庫(kù)執(zhí)行DQL語(yǔ)句不會(huì)對(duì)數(shù)據(jù)進(jìn)行改變齐疙,而是讓數(shù)據(jù)庫(kù)發(fā)送結(jié)果集給客戶(hù)端。
查詢(xún)返回的結(jié)果集是一張?zhí)摂M表旭咽。

查詢(xún)關(guān)鍵字:SELECT 
語(yǔ)法: SELECT 列名 FROM表名 
【W(wǎng)HERE --> BROUP BY -->HAVING--> ORDER BY】

語(yǔ)法:
SELECT selection_list /*要查詢(xún)的列名稱(chēng)*/
  FROM table_list /*要查詢(xún)的表名稱(chēng)*/
  WHERE condition /*行條件*/
  GROUP BY grouping_columns /*對(duì)結(jié)果分組*/
  HAVING condition /*分組后的行條件*/
  ORDER BY sorting_columns /*對(duì)結(jié)果分組*/
  LIMIT offset_start, row_count /*結(jié)果限定*/
8 LIMIT
LIMIT用來(lái)限定查詢(xún)結(jié)果的起始行贞奋,以及總行數(shù)。

8.1 查詢(xún)5行記錄穷绵,起始行從0開(kāi)始
SELECT * FROM emp LIMIT 0, 5;
注意轿塔,起始行從0開(kāi)始,即第一行開(kāi)始请垛!

8.2 查詢(xún)10行記錄催训,起始行從3開(kāi)始
SELECT * FROM emp LIMIT 3, 10;

8.3 分頁(yè)查詢(xún)
如果一頁(yè)記錄為10條,希望查看第3頁(yè)記錄應(yīng)該怎么查呢宗收?
第一頁(yè)記錄起始行為0漫拭,一共查詢(xún)10行;
第二頁(yè)記錄起始行為10混稽,一共查詢(xún)10行采驻;
第三頁(yè)記錄起始行為20审胚,一共查詢(xún)10行;
8.3 分頁(yè)查詢(xún)
    查詢(xún)語(yǔ)句書(shū)寫(xiě)順序:select – from- where- group by- having- order by-limit
    查詢(xún)語(yǔ)句執(zhí)行順序:from - where -group by - having - select - order by-limit  

五礼旅、數(shù)據(jù)的完整性

作用:保證用戶(hù)輸入的數(shù)據(jù)保存到數(shù)據(jù)庫(kù)中是正確的膳叨。
確保數(shù)據(jù)的完整性 = 在創(chuàng)建表時(shí)給表中添加約束
完整性的分類(lèi):
實(shí)體完整性:
域完整性:
引用完整性:

六、多表查詢(xún)(重要)

多表查詢(xún)有如下幾種:
 合并結(jié)果集痘系;UNION 菲嘴、  UNION ALL
 連接查詢(xún)
 內(nèi)連接  [INNER] JOIN  ON 
 外連接  OUTER JOIN ON
 左外連接 LEFT [OUTER] JOIN
 右外連接 RIGHT [OUTER] JOIN
 全外連接(MySQL不支持)FULL JOIN
 自然連接  NATURAL JOIN (自己查找連接關(guān)系)
 子查詢(xún)

七、MySQL數(shù)據(jù)庫(kù)的備份與恢復(fù)

1 生成SQL腳本 導(dǎo)出數(shù)據(jù)

在控制臺(tái)使用mysqldump命令可以用來(lái)生成指定數(shù)據(jù)庫(kù)的腳本文本汰翠,但要注意龄坪,腳本文本中只包含數(shù)據(jù)庫(kù)的內(nèi)容,而不會(huì)存在創(chuàng)建數(shù)據(jù)庫(kù)的語(yǔ)句复唤!所以在恢復(fù)數(shù)據(jù)時(shí)健田,還需要自已手動(dòng)創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)之后再去恢復(fù)數(shù)據(jù)。
  mysqldump –u用戶(hù)名 –p密碼 數(shù)據(jù)庫(kù)名>生成的腳本文件路徑

1.png

現(xiàn)在可以在C盤(pán)下找到mydb1.sql文件了佛纫!
注意妓局,mysqldump命令是在Windows控制臺(tái)下執(zhí)行,無(wú)需登錄mysql3视睢:门馈!

2 執(zhí)行SQL腳本 恢復(fù)數(shù)據(jù)

前提:必須先創(chuàng)建數(shù)據(jù)庫(kù)名
執(zhí)行SQL腳本需要登錄mysql甥啄,然后進(jìn)入指定數(shù)據(jù)庫(kù)抵拘,才可以執(zhí)行SQL腳本!P突怼僵蛛!
執(zhí)行SQL腳本不只是用來(lái)恢復(fù)數(shù)據(jù)庫(kù),也可以在平時(shí)編寫(xiě)SQL腳本迎变,然后使用執(zhí)行SQL 腳本來(lái)操作數(shù)據(jù)庫(kù)充尉!大家都知道,在黑屏下編寫(xiě)SQL語(yǔ)句時(shí)衣形,就算發(fā)現(xiàn)了錯(cuò)誤驼侠,可能也不能修改了。所以我建議大家使用腳本文件來(lái)編寫(xiě)SQL代碼谆吴,然后執(zhí)行之倒源!
SOURCE C:\mydb1.sql

2.png

注意,在執(zhí)行腳本時(shí)需要先行核查當(dāng)前數(shù)據(jù)庫(kù)中的表是否與腳本文件中的語(yǔ)句有沖突句狼!例如在腳本文件中存在create table a的語(yǔ)句笋熬,而當(dāng)前數(shù)據(jù)庫(kù)中已經(jīng)存在了a表,那么就會(huì)出錯(cuò)腻菇!

還可以通過(guò)下面的方式來(lái)執(zhí)行腳本文件:
mysql -uroot -p123 mydb1<c:\mydb1.sql
mysql –u用戶(hù)名 –p密碼 數(shù)據(jù)庫(kù)<要執(zhí)行腳本文件路徑

3.png

這種方式無(wú)需登錄mysql胳螟!
注意:在CMD下 命令不能加;

八昔馋、MySQL卸載

  • 停止MySQL
  • 1添加刪除程序中卸載MySQL
  • 2到安裝目錄刪除MySQL
  • 3刪除:C:\Documents and Settings\All Users\Application Data\MySQL
    C:\ProgramData\MySQL
  • 4查看注冊(cè)表:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services
    HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services
    HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services
    搜索mysql,找到一律干掉糖耸!
    ============================
    不需要重啟電腦(win xp)秘遏,直接重新安裝即可
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市嘉竟,隨后出現(xiàn)的幾起案子邦危,更是在濱河造成了極大的恐慌,老刑警劉巖舍扰,帶你破解...
    沈念sama閱讀 222,590評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件铡俐,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡妥粟,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,157評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén)吏够,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)勾给,“玉大人,你說(shuō)我怎么就攤上這事锅知〔ゼ保” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 169,301評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵售睹,是天一觀的道長(zhǎng)桩警。 經(jīng)常有香客問(wèn)我,道長(zhǎng)昌妹,這世上最難降的妖魔是什么捶枢? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 60,078評(píng)論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮飞崖,結(jié)果婚禮上烂叔,老公的妹妹穿的比我還像新娘。我一直安慰自己固歪,他們只是感情好蒜鸡,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,082評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著牢裳,像睡著了一般逢防。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上蒲讯,一...
    開(kāi)封第一講書(shū)人閱讀 52,682評(píng)論 1 312
  • 那天忘朝,我揣著相機(jī)與錄音,去河邊找鬼判帮。 笑死辜伟,一個(gè)胖子當(dāng)著我的面吹牛氓侧,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播导狡,決...
    沈念sama閱讀 41,155評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼约巷,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了旱捧?” 一聲冷哼從身側(cè)響起独郎,我...
    開(kāi)封第一講書(shū)人閱讀 40,098評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎枚赡,沒(méi)想到半個(gè)月后氓癌,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,638評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡贫橙,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,701評(píng)論 3 342
  • 正文 我和宋清朗相戀三年贪婉,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片卢肃。...
    茶點(diǎn)故事閱讀 40,852評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡疲迂,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出莫湘,到底是詐尸還是另有隱情尤蒿,我是刑警寧澤,帶...
    沈念sama閱讀 36,520評(píng)論 5 351
  • 正文 年R本政府宣布幅垮,位于F島的核電站腰池,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏忙芒。R本人自食惡果不足惜示弓,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,181評(píng)論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望呵萨。 院中可真熱鬧碟联,春花似錦右核、人聲如沸蛮放。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,674評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)跑杭。三九已至铆帽,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間德谅,已是汗流浹背爹橱。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,788評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留窄做,地道東北人愧驱。 一個(gè)月前我還...
    沈念sama閱讀 49,279評(píng)論 3 379
  • 正文 我出身青樓慰技,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親组砚。 傳聞我的和親對(duì)象是個(gè)殘疾皇子吻商,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,851評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容