本文知識點
- mysql安裝
- mysql增刪改查
(一)安裝
安裝很簡單網(wǎng)上下載個xampp或者phpstudy即可
安裝完以后一定要找到mysql安裝包下面的bin目錄尔艇,然后在計算機屬性里面添加環(huán)境變量即可
(二) mysql登錄
- 登錄mysql
$ mysql -u root -p
這個時候按下回車他會讓你輸入密碼曹抬。一般情況下密碼是root
這樣就登錄成功了.登錄成功以后拥知,下面就是基本操作指令了
(三) mysql 使用
(1)數(shù)據(jù)庫的操作
- 顯示數(shù)據(jù)庫
$ show databases;
- 使用數(shù)據(jù)庫
$ use 數(shù)據(jù)庫名字;
- 創(chuàng)建數(shù)據(jù)庫
$ create database 數(shù)據(jù)庫名字 charset utf8;
必須設置字符集
- 刪除數(shù)據(jù)庫
$ drop database 數(shù)據(jù)庫名字
- 表能改名厘肮,但是數(shù)據(jù)庫改不了名字 phpadmin能做到
(2)數(shù)據(jù)庫表的通用操作
- 查詢數(shù)據(jù)庫下面的所有表
$ show tables;
- 創(chuàng)建表的操作
$ create table 表名 (
id int,
name varchar(20)
) engine myisam charset utf8;
- 刪除表的操作
$ drop table 表名
- 修改表名
$ rename table 舊名 to 新名
- 清空表數(shù)據(jù) truncate 和 delete最大的區(qū)別就是truncate是重新建一張表。而delete是沿用那張表
$ truncate 表名
- 查看表結構
$ desc 表名
- 備注要是使用命令臺的話,無論執(zhí)行增刪改查等操作一定要先執(zhí)行下面的代碼
這是因為我們的命令臺默認是GBK 而控制臺是utf8 所以告訴命令臺先使用gbk
這樣在使用中文
$ set names gbk
(3)數(shù)據(jù)庫表的增刪改查操作
- 插入數(shù)據(jù)
$ insert into 表名 (字段1,字段2) values ("值1","值2")件豌;
案例解析
$ insert into qingche(id,name) values("1","小明");
- 刪除數(shù)據(jù)
delete from 表名 where 列名 = 值
案例賞析
delete from student where name = "小明";
- 修改表數(shù)據(jù)
update 表名 set 列名=新值 where 列名= 值
- 案例賞析
update student set name = "小紅" where id="1"
- 查詢
要是查詢所有就是
$ select * from 表名
要是查詢某一個列就是
select name(列名) from student(表名)
要是查詢很多個列就是
select name(列名), scort(列名2) from student(表名);
(4)列的5種子查詢
- where 條件查詢
$ select * from student where id>=2;
- 模糊查詢like
$ select * from teacher where name like '%諾基亞%';
- group by 就是組聚合了僵驰。比如 一個字段里面有天津北京等等喷斋。用了group by就是把天津都聚合在一起了
$ select goods_name from goods group by goods_number;
這個就是查詢商品單號下面的商品名稱
- group by 一般配合聚合函數(shù)來使用
聚合函數(shù)
avg() 返回平均值括號里面寫列名
count()返回某列的行數(shù)
max() 返回某列的最大值
min() 返回某列的最小值
sum() 返回某列之和
select count(click_count) from goods group by goods_number;
- having 作用于組 必須和group by 配合使用
having 就是條件類似where但是與where不同的是where作用于表和視圖,having不行
select goods_name,count(click_count) from goods group by goods_number having count(click_count)>3;
- order by 排序 就是當最終結果出來后按照一列的順序排序
desc/asc一個降序一個升序
select goods_name,goods_number from goods order by goods_number;
案例
select goods_name,goods_number from goods order by goods_number desc;
- limit 限制 就是每頁顯示多少條 這樣每頁就顯示10個了
select goods_name,goods_number from goods order by goods_number desc limit 10;
- offset偏移量 ,跳過多少行
select goods_name,goods_number from goods order by goods_number desc limit 10 offset 10;
limit 和offset配合一起來說用分頁
- 左連接 left join b on 條件
左連接 就是兩張表要是某一個字段相同那么可以兩張表的數(shù)據(jù)一起查詢蒜茴。 左連接依據(jù)的就是from后面的表名
比如boy表里面就3條數(shù)據(jù)星爪。girl里面就4條數(shù)據(jù)。那么他結果只有3調數(shù)據(jù)矮男。girl里面的第四條數(shù)據(jù)被舍棄
要是girl對面的boy里的序號里面沒有數(shù)據(jù)那么就會用null填滿
select bname,gname from boy left join girl on boy.hid = girl.hid;
- 內連接就是取交集(了解就好)
(5) 修改表的語法
- 增加列 alter 表名 add 列名 列參數(shù)
alter table girl(表名) add age int not null;
- 刪除列
alter table 表名 drop 列名
- 修改列
Alter table 表名 change 舊列名 新列名 新類型 新參數(shù)
Alter table girl change gname girlname varchar(20);
(6) 列類型
- 整型 int
- 浮點型 float(m,d) m表示的固定位數(shù)移必,d就表示顯示的位數(shù)
decimal(M,D) m是可變長度。而float則是固定了長度
float(10,2) 表示只能存10位數(shù)字毡鉴,顯示2位
- 字符串
char() 固定位數(shù)
varchar() 可變位數(shù)
Text() 文本類型
- 時間
Date 日期 1998/12/31
Time 時間 13:56:23
datetime 時期時間 1998-12-31 23:50:23
timestamp 時間戳
我們一般存儲時間的時候用的都是時間戳崔泵。這樣方便計算
前端轉化時間就是:
var time = new Date(時間戳);