一劲厌、數(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ù)
密碼修改完成
配置
三、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ù)名>生成的腳本文件路徑
現(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
注意,在執(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í)行腳本文件路徑
這種方式無(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)秘遏,直接重新安裝即可