1.安裝mysql
安裝mysql
yum -y install mysql mysql-dev mysql-server
啟動(dòng)mysql
service mysqld restart
重啟之后生效
chkconfig mysqld on
2.登錄
設(shè)置密碼
mysqladmin -u 用戶名 password '要修改的密碼'
登錄
mysql -u 用戶 -p//-p:通過(guò)密碼登錄,會(huì)提示你輸入密碼
退出
quit;
3.數(shù)據(jù)庫(kù)操作
查看數(shù)據(jù)庫(kù)
show databases;
創(chuàng)建數(shù)據(jù)庫(kù)
create database XX;
4.鏈接到Navicat
此時(shí)數(shù)據(jù)庫(kù)已經(jīng)安裝完成了,但是此時(shí)只有本機(jī)能訪問(wèn),局域網(wǎng)內(nèi)其他用戶無(wú)法訪問(wèn)到。
切入mysql數(shù)據(jù)庫(kù)
mysql> use mysql;
查詢用戶表信息
mysql> select host,user,password from user;
刪除無(wú)用的用戶
delete from user where password='';
再次查詢,此時(shí)只有一個(gè)用戶了,綁定機(jī)器名是localhost,也就是只有本機(jī)下可以訪問(wèn)到。
將localhost 修改為%(通配)
mysql> update user set host='%';
修改后需要刷新權(quán)限
mysql> flush privileges;
此時(shí)關(guān)閉防火墻后局域網(wǎng)內(nèi)其他用戶也可以訪問(wèn)了
5. 建表
Create table 表名(
字段名 數(shù)據(jù)類型 約束,
字段名 數(shù)據(jù)類型 約束,
……
字段名 數(shù)據(jù)類型 約束
)數(shù)據(jù)庫(kù)引擎 默認(rèn)字符編碼;
6.查詢
Select 字段列表 from 表名;
7.刪除
Delect from 表名//項(xiàng)目中是禁止使用delete語(yǔ)句
Tip:如果使用delete語(yǔ)句且并沒(méi)有見到where一定要注意?。?!
8.條件
where 字段名 關(guān)系運(yùn)算符 值
9.修改
update 表名 字段名 = 字段值,字段名 = 字段值(原則上也要加where條件)
10.添加
insert into 表名(字段列表) values (值列表);
11.數(shù)據(jù)庫(kù)三范式
(1)原子性:列不可再分
(2)必須有主鍵
(3)有關(guān)聯(lián)的時(shí)候用外鍵,不再建立重復(fù)的字段
Tip:但現(xiàn)在許多互聯(lián)網(wǎng)的項(xiàng)目基本都不遵守三范式。
12.完整性約束
(1)主鍵
每一條記錄的一個(gè)身份證號(hào)碼,不重復(fù),主鍵會(huì)有一個(gè)默認(rèn)的索引,知道了主鍵就可以直接鎖定該行數(shù)據(jù)
primary key
雙主鍵:兩個(gè)字段組合作為主鍵單獨(dú)一個(gè)可以重復(fù),組合之后不能重復(fù)
CONSTRAINT 主鍵名 primary key(字段名,字段名)
(2)非空
not null
(3)默認(rèn)值
default 默認(rèn)值
(4)唯一約束
unique
(5)檢查約束
檢查字段的值
mysql檢查約束可以創(chuàng)建,但是沒(méi)有作用
check (條件)
(6)外鍵
foreign key (字段) references (被參照的字段)
tip:因?yàn)閿?shù)據(jù)庫(kù)引擎的關(guān)系,建表時(shí)候應(yīng)設(shè)置引擎,外鍵才起效
engine=innodb default charset=utf8
(7)自增
為了讓數(shù)據(jù)有唯一性,很多情況下,主鍵都是不參與業(yè)務(wù)的
auto_increment
13.分頁(yè)查詢
Limit 后面跟隨兩個(gè)參數(shù):
1從哪開始,下標(biāo)是0
2查詢多少條
select * from student limit 3,2;
14.函數(shù)
自定義函數(shù)
create function 函數(shù)名(參數(shù)列表)
returns 返回值類型
begin
Declare 變量名 數(shù)據(jù)類型;
Set 變量名=變量值;
End
create function fun(cid int)
returns varhar(20)
begin
declare result varchar(20);
set result =(select name from classes where id=cid);
retuen result;
end
rand() 隨機(jī)數(shù)
select rand(1); //返回0~1的隨機(jī)數(shù)
select rand(2); //返回0~2的隨機(jī)數(shù)
sing() 正負(fù):負(fù)數(shù)、0正數(shù)分別返回-1,0,1
sin(x) 求正弦函數(shù)
select sin(radians(30)) //0.5
length(s) 求字符s長(zhǎng)度
15.觸發(fā)器
觸發(fā)事件:insert update delete
觸發(fā)時(shí)間:before after
觸發(fā)器中有兩個(gè)對(duì)象 new old
create trigger delclass
before delete on classes
for each row
begin
delete from student where c_id = old.id;
end
16.存儲(chǔ)過(guò)程
調(diào)用方便,相當(dāng)于在數(shù)據(jù)庫(kù)里寫方法。
