MySQL數(shù)據(jù)庫(kù)管理 day01
相關(guān)概念問(wèn)題
數(shù)據(jù)庫(kù)介紹? 存儲(chǔ)數(shù)據(jù)的倉(cāng)庫(kù)
公司主營(yíng)業(yè)務(wù):成都網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計(jì)、移動(dòng)網(wǎng)站開(kāi)發(fā)等業(yè)務(wù)。幫助企業(yè)客戶(hù)真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競(jìng)爭(zhēng)能力。成都創(chuàng)新互聯(lián)公司是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開(kāi)放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來(lái)的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶(hù)帶來(lái)驚喜。成都創(chuàng)新互聯(lián)公司推出梁園免費(fèi)做網(wǎng)站回饋大家。
數(shù)據(jù)庫(kù)服務(wù)都那些公司在使用?
購(gòu)物網(wǎng)站 游戲網(wǎng)站 金融網(wǎng)站
數(shù)據(jù)服務(wù)存儲(chǔ)的是什么數(shù)據(jù)?
帳號(hào)信息 對(duì)應(yīng)的數(shù)據(jù)信息
提供數(shù)據(jù)庫(kù)服務(wù)的軟件有那些?
開(kāi)源軟件 mysql 、 MongoDB 、 redis
商業(yè)軟件 oracle 、 db2 、 SQL SERVER
軟件是否跨平臺(tái)? Linux Unix Windows
軟件包的來(lái)源: 官網(wǎng)下載 使用操作系統(tǒng)安裝光盤(pán)自帶軟件包
mysql軟件介紹? mysql mariadb
關(guān)系型數(shù)據(jù)型軟件: 要按照一定組織結(jié)構(gòu)存儲(chǔ)數(shù)據(jù),并且數(shù)據(jù)和數(shù)據(jù)之間可以互相關(guān)聯(lián)操作。
跨平臺(tái) Linux Unix Windows
可移植性強(qiáng)
支持多種語(yǔ)言Python/Java/Perl/PHP
生產(chǎn)環(huán)境中,數(shù)據(jù)服務(wù)和網(wǎng)站服務(wù)一起使用 構(gòu)建網(wǎng)站運(yùn)行平臺(tái)
LNMP LAMP WNMP WAMP
mysql軟件包的封包類(lèi)型: rpm包 源碼包 可以自定義安裝信息
非關(guān)系型數(shù)據(jù)庫(kù)軟件(NOSQL)mongodb 、
redis 、 memcached
1 搭建mysql數(shù)據(jù)庫(kù)服務(wù)器
2 mysql服務(wù)基本使用
3 mysql數(shù)據(jù)類(lèi)型
一、搭建mysql數(shù)據(jù)庫(kù)服務(wù)器 192.168.4.51
裝包
修改配置文件
啟動(dòng)服務(wù)
查看服務(wù)進(jìn)程和端口號(hào)
服務(wù)名 mysqld
服務(wù)的主配置文件 /etc/my.cnf
數(shù)據(jù)目錄 /var/lib/mysql
日志文件 /var/log/mysqld.log
二、數(shù)據(jù)庫(kù)服務(wù)的基本使用
2.1 使用初始密碼在本機(jī)連接數(shù)據(jù)庫(kù)服務(wù)
mysql [-h數(shù)據(jù)庫(kù)服務(wù)器ip地址 -u用戶(hù)名 -p'密碼'
2.2 重置本機(jī)連接密碼 mysql> alter user
root@"localhost" identified by "密碼";
2.3 把數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)庫(kù)服務(wù)器上的過(guò)程?
2.4 sql命令分類(lèi)? DDL DML DTL DCL
2.5 sql命令使用規(guī)則?
2.6 管理數(shù)據(jù)庫(kù)的sql命令 及 庫(kù)名的命名規(guī)則
2.7 管理表的 sql命令
建表的語(yǔ)法格式?
create table 庫(kù)名.表名(
字段名 類(lèi)型(寬度) 約束條件,
字段名 類(lèi)型(寬度) 約束條件,
.....
);
2.8 管理記錄的sql命令
查看
插入
更新
刪除
+++++++++++++++++++++++++
三、mysql數(shù)據(jù)類(lèi)型
3.1 數(shù)值類(lèi)型 (成績(jī) 年齡 工資 )
每種類(lèi)型的存儲(chǔ)數(shù)據(jù)的范圍都是固定
整數(shù)類(lèi)型 (只能存儲(chǔ)整數(shù))
微小整型 小整型 中整型 大整型 極大整型
tinyint smallint MEDIUMINT INT bigint
*****unsigned 使用數(shù)值類(lèi)型有符號(hào)的范圍。
浮點(diǎn)型 (存儲(chǔ)小數(shù))
float(M,N)
double(M,N)
M 設(shè)置總位數(shù)
N 設(shè)置小數(shù)位位數(shù)
正數(shù).小數(shù) 總位數(shù) 整數(shù)位 小數(shù)位
18088.88 7 5 2
3.2 字符類(lèi)型 (商品名稱(chēng) 籍貫 姓名 生產(chǎn)廠家)
char (255) 固定長(zhǎng)度字符類(lèi)型
varchar (65532) 變長(zhǎng)字符類(lèi)型
大文本類(lèi)型 (音頻文件 視頻文件 圖片文件)
blob
text
3.3 日期時(shí)間類(lèi)型
(注冊(cè)時(shí)間 約會(huì)時(shí)間 開(kāi)會(huì)時(shí)間 入職時(shí)間 生日)
年 year YYYY 2018
日期 date YYYYMMDD 20180423
時(shí)間 time HHMMSS 161958
日期時(shí)間 datetime/timestamp
YYYYMMDDHHMMSS 20180423161958
獲取日期時(shí)間給對(duì)應(yīng)的日期時(shí)間類(lèi)型的字段賦值
獲取日期時(shí)間函數(shù)
now() 獲取當(dāng)期系統(tǒng)的時(shí)間
year(日期時(shí)間)獲取指定時(shí)間中的年
month(日期時(shí)間)獲取指定時(shí)間中的月
date(日期時(shí)間)獲取指定時(shí)間中的日期
day(日期時(shí)間)獲取指定時(shí)間中的號(hào)(天)
time(日期時(shí)間)獲取指定時(shí)間中的時(shí)間
可以使用2位數(shù)字給year類(lèi)型的字段賦值,規(guī)律如下:
01-69 20XX
70-99 19XX
3.4 枚舉類(lèi)型(插入記錄 時(shí) 記錄的值 在列舉的范圍內(nèi)選擇)
性別 愛(ài)好 專(zhuān)業(yè)
enum(值列表) 單選
set(值列表) 多選
數(shù)據(jù)類(lèi)型的關(guān)鍵字 存儲(chǔ)范圍 賦值方式 合理使用數(shù)據(jù)類(lèi)型
**劃重點(diǎn)
數(shù)值類(lèi)型的寬度 是顯示寬度,不能夠給字段賦值的大小。字段的值由類(lèi)型決
定。
mysql-day02
一 、字段約束條件
1.1 作用: 限制如何給字段賦值的
1.2 包括內(nèi)容有: NULL Key Default Extra
NULL 是否允許給字段賦null值
null 默認(rèn)允許賦null值
not null 不允許賦null值
key 鍵值類(lèi)型:普通索引 唯一索引 全文索引 主鍵 外 鍵
Default 默認(rèn)值 作用:當(dāng)不被字段賦值時(shí),使用默認(rèn)值給字段賦值
不設(shè)置默認(rèn)值是 系統(tǒng)定義的是null
default 值
Extra 額外設(shè)置 ,字段是否設(shè)置為自動(dòng)增加,默認(rèn)沒(méi)有自動(dòng)增長(zhǎng)功能
二、修改表結(jié)構(gòu)
2.1 修改表結(jié)構(gòu)的命令
mysql> alter table 庫(kù).表 執(zhí)行動(dòng)作 ;
添加新字段 add 字段名 類(lèi)型(寬度) [ 約束條件]
刪除已有字段 drop 字段名
修改已有字段的類(lèi)型寬度及約束條件
*劃重點(diǎn)**修改時(shí)不能與已經(jīng)存儲(chǔ)的數(shù)據(jù)矛盾的話不允許修改
modify 字段名 類(lèi)型(寬度) [ 約束條件]
修改字段名
change 源字段名 新字段名 類(lèi)型(寬度) [ 約束條件]
修改表名
alter table 源表名 rename [to] 新表名;
三、mysql鍵值
設(shè)置在表中字段上的,作用是約束如何給字段賦值。同時(shí)會(huì)給字段做索引。
索引介紹: 樹(shù)狀目錄結(jié)構(gòu) 類(lèi)似與書(shū)的“目錄”
優(yōu)點(diǎn):加快查詢(xún)表記錄的速度
缺點(diǎn) : 會(huì)減慢編輯表記錄的速度,且占用磁盤(pán)的物理存儲(chǔ)空間
(delete insert update)
字典 總頁(yè)面數(shù) 1000頁(yè)
目錄信息
1------100頁(yè) 記錄目錄信息
101---1000頁(yè) 正文
查字典的方法
筆畫(huà)
部首
拼音
修正內(nèi)容時(shí),修改內(nèi)容 添加內(nèi)容 刪除內(nèi)容
stuinfo /var/lib/mysql/db2/stuinfo.*
name age home class
DBA
3.1 鍵值:普通索引 唯一索引 全文索引 主鍵 外 鍵
3.1.1普通索引的使用(index)
使用規(guī)則?
查看
desc 表名;
show index from 表名;
Table: t2
Key_name: aaa
Column_name: age
Index_type: BTREE (二叉樹(shù))
創(chuàng)建
在已有表創(chuàng)建
create index 索引名 on 表名(字段名);
建表是時(shí)創(chuàng)建
create table 表名(
字段列表,
index(字段名),
index(字段名),
);
刪除
drop index 索引名 on 表名;
+++++++++++++++++++++++++++++++
3.1.2主鍵 primary key
(普通主鍵 復(fù)合主鍵 主鍵+auto_increment)
使用規(guī)則?
查看 desc 表; key ----> PRI
創(chuàng)建
在已有表創(chuàng)建 alter table 表 add primary key(字段名);
建表時(shí)創(chuàng)建
create table 表名(
字段列表,
primary key(字段名)
);
創(chuàng)建復(fù)合主鍵的使用:多個(gè)字段一起做主鍵,插入記錄時(shí),只要做主鍵字段的值不同時(shí)重復(fù),就可以插入記錄。(必須一起創(chuàng)建一起刪除,多個(gè)字段的值不允許同時(shí)相同)
desc mysql.db;
desc mysql.user;
主鍵primary key 通常和auto_increment連用。
讓字段的值自動(dòng)增長(zhǎng) i++
數(shù)值類(lèi)型 i=i+1
刪除主鍵 mysql> alter table 表 drop primary key;
++++++++++++++++++++++++++++++++++++++
3.1.3外 鍵(作用 限制如何給字段賦值的)
給當(dāng)前表中字段賦值時(shí),值只能在指定(其他)表的指定字段值的范圍里選擇。
使用規(guī)則?
創(chuàng)建外鍵 foreign key 的命令格式:
create table 表(
字段名列表,
foreign key(字段名) references 表名(字段名)
on update cascade on delete cascade
)engine=innodb;
繳費(fèi)表
use studb;
create table jfb(
jfb_id int(2) zerofill primary key auto_increment,
name char(15),
pay float(7,2)
)engine=innodb;
insert into jfb (name,pay)values("bob",26800);
insert into jfb (name,pay)values("tom",26000);
select * from jfb;
班級(jí)表
create table bjb(
bjb_id int(2) zerofill,
name char(15),
foreign key(bjb_id) references jfb(jfb_id)
on update cascade on delete cascade
)engine=innodb;
insert into bjb values(3,"lucy");
insert into bjb values(1,"bzengjiaob");
insert into bjb values(2,"tom");
select * from bjb;
mysql> update jfb set jfb_id=9 where name="bob";
mysql> delete from jfb where jfb_id=2;
select from jfb;
select from bjb;
查看 mysql> show create table 表名;
刪除外鍵
alter table 表名 drop foreign key 外鍵名;
alter table bjb drop foreign key bjb_ibfk_1;
mysql> delete from jfb where jfb_id=02; 他有同步的作用 班級(jí)表也沒(méi)有這一條
mysql> update jfb set name="xixi"where jfb_id=05; 修改繳費(fèi)表ID是05 把他的名字改成xixi
在已有表創(chuàng)建
mysql> delete from bjb;
mysql> alter table bjb add foreign key(bjb_id) references jfb
(jfb_id) on update cascade on delete cascade;