1. 程式人生 > >mysql學習之旅----基礎學習筆記

mysql學習之旅----基礎學習筆記

資料持久化就是要儲存資料到檔案可以是資料庫,可以是文字等
推薦下載msi的安裝包,可以做許多環境配置的事
查詢select username,age,gender from users;
增加insert into users(username,age,gender) values ('我',28,'男');
表中設定了主鍵就是設定了唯一值,同時要勾選上自動遞增和無符號
新增成功後,要渲染後臺發回來的完整的資料,不要自己造資料,可能會不一致,
還有一種是後端只返回變化的資料,而前端要拼接資料,這種,後端壓力小
select * from todos where title like 'koa%'; 以koa開頭的
select * from todos where title like '%koa'; 以koa結尾的
select * from todos where title not like '%koa'; 不以koa結尾的
select * from todos where title like '%koa%'; 帶koa的--可以做搜尋
select DISTINCT gender,username from user; 去重 DISTINCT不重複

SELECT gender from user GROUP BY gender; 分組
SELECT gender, count(gender) as count from user GROUP BY gender; 分組查詢,顯示男幾條,女幾條  as count 是別名 將count(gender) 顯示為count
條件
select * from user where gender='男'; 查詢所有男的
select * from user where gender='男' and age<20; 小於20的男子
select * from user where age BETWEEN 1 and 30; 年齡在1到30之間的
like 一般需要萬用字元配合
select * from user where username like '_v';  v前面任意一個字元的使用者名稱
select * from user where username like '_v%'; 
select * from user where username in ('nv','w'); like in between 都有之間的意思
正則
select * from user where username REGEXP '\\w' 包含w的使用者名稱
select * from user where username REGEXP '^w' 以w開頭的
select * from user where username REGEXP 'w$' 以w結尾的
select * from user where username REGEXP '^w$' 只有w的
排序
select * from user order by age desc,id ASC; 年齡從大到小,年齡相同的話id從小到大
限制偏移
select * from user limit 2 offset 1;  選兩條資料,偏移一條,從第二條開始
select * from user limit 1,2; 同上,只不過先偏移,再選2條
SELECT * from user where username="W"; 查詢使用者名稱為大寫W的,選的編碼不一樣,結果不一樣
select * from user where ucase(username)=ucase('w'); 查詢使用者名稱,不管是大寫還是小寫,都轉成大寫
大小寫是有坑的
多表查詢
select * from user,message;  將兩張表的資料相乘
select * from user,message where user.id=message.uid; 查詢兩張表中使用者id相同的
select * from user join message on user.id=message.uid; 內連結,結果和上面那條一樣
select * from user left join message on user.id=message.uid; 左連線 左側的表資料都顯示,右側的表只顯示匹配到uid值的
select * from user right join message on user.id=message.uid; 右連線 ,右側全顯示
SELECT USER.id as uid, user.username, USER.age, USER.gender, message.id as message_id, message.content FROM user LEFT JOIN message ON user.id=message.uid;
別名的使用
UPDATE todos set done=0 WHERE id in (6,7); 批量更新 ,將原先6,7done為1的改為0