1内狗、多表聯(lián)合查詢
查詢沒有被購買過的商品
select goods.name from goods left join user on goods.gid=user.gid where user.id is NULL;
查詢哪類商品是銷量冠軍
select category, count() as c from user join goods on user.gid=goods.gid group by category order by c desc limit 1;
查詢哪個商品是銷量冠軍
select goods.name, goods.price, count() as c from user join goods on user.gid=goods.gid group by goods.name order by c desc limit 1;
分組只能寫分組字段和統(tǒng)計字段,寫其它字段報錯
進入mysql執(zhí)行如下指令
SET @@GLOBAL.sql_mode="STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION";
清空表
truncate table 表名 清空表漠另,id會從1開始
delete from table 清空表格嗅,id從上次記錄的值開始
創(chuàng)建用戶
mysql -h ip地址 -u用戶名 -p
create user 'test'@'ip' identified by '密碼'
2番挺、索引
索引是什么?索引就是個東西屯掖,類似是目錄的東西
數據庫在查詢的時候玄柏,是一條一條挨著查呢。查詢效率太低了贴铜。
如何提高查詢效率粪摘?索引
如果在查詢的時候瀑晒,經常通過某個字段查詢,那就要考慮給這個字段添加索引徘意。
索引的缺點:在插入的時候效率就比較低
索引有
普通索引
唯一索引 要確保唯一性
主鍵索引 是特殊的唯一索引苔悦,但是不能為空
全文索引
3、數據庫導入導出
數據庫里面的表可以導出來椎咧,導出來一般都是sql腳本的東西玖详, data.sql
【注】版本,通過指令導出和通過不同的可視化工具導出勤讽,格式也不一樣竹宋。
mysql自帶的指令:
正常終端模式下
導出:mysqldump -uroot -p 數據庫名>c:\data.sql
導入:mysql -uroot -p 數據庫名<c:\data.sql
注意,導入之前首先創(chuàng)建一個新的數據庫
Navicat導出和導入:
右鍵==》轉儲sql文件
右鍵==》運行sql文件
4地技、python操作數據庫
需要使用到第三方庫:pymysql,在python交互界面輸入 import pymysql 看有沒有報錯秒拔,報錯了就是沒有它莫矗,沒報錯就是有它
安裝之:pip install pymysql
代碼操作之
port只能是整型
5、redis安裝和學習
什么是redis砂缩?是一個基于內存的數據庫作谚,計算機里面,有內存庵芭,有硬盤
文件都在硬盤中存放妹懒,代碼在運行的時候,有一個變量a
內存:讀寫快双吆,但是斷電消失眨唬,不大
硬盤:讀寫慢,但是可以持久化保存好乐,大匾竿,隨便存
什么是NoSQL? not only sql 非關系型數據庫
鍵值對蔚万,根據鍵立馬就可以得到值
redis岭妖、MongoDB
redis官網:redis.io redis.cn
5種數據類型:字符串(string)、列表(list)反璃、集合(set)昵慌、哈希(hash)、有序集合(zset)
redis官網只有l(wèi)inux版本的淮蜈,不支持windows
學習方式:指令交互斋攀,可視化,代碼操作