一、什么是CRUD?
CRUD既mysql資料庫的增加洗掉修改洗掉,
Insert陳述句 (增加資料)、Update陳述句 (更新資料)、Delete陳述句 (洗掉資料)、Select陳述句(查找資料)
二、Insert陳述句 (增加資料)
使用 INSERT 陳述句向表中插入資料,
INSERT INTO table_name [(column [, column...])] VALUES (value [, value...]);
- 插入的資料應與欄位的資料型別相同,
- 資料的大小應在列的規定范圍內,例如:不能將一個長度為80的字串加入到長度為40的列中,
- 在values中列出的資料位置必須與被加入的列的排列位置相對應,
- 字符和日期型資料應包含在單引號中,
- 插入空值:不指定或insert into table value(null)
- 如果要插入所有欄位可以省寫列串列,直接按表中欄位順序寫值串列
欄位名
欄位型別
id
整形
name
字串型
gender
字串型
birthday
日期型
salary
浮點型
entry_date
日期型
resume
大文本型
Tip:mysql中文亂碼
- mysql有六處使用了字符集,分別為:client 、connection、database、results、server 、system,
- client是客戶端使用的字符集,
- connection是連接資料庫的字符集設定型別,如果程式沒有指明連接資料庫使用的字符集型別就按照服務器端默認的字符集設定,
- database是資料庫服務器中某個庫使用的字符集設定,如果建庫時沒有指明,將使用服務器安裝時指定的字符集設定,
- results是資料庫給客戶端回傳時使用的字符集設定,如果沒有指明,使用服務器默認的字符集,
- server是服務器安裝時指定的默認字符集設定,
- system是資料庫系統使用的字符集設定,(utf-8不可修改)
show variables like'character%'; set names gbk;臨時修改當前CMD視窗和mysql的通信編碼字符集
- 通過修改my.ini 修改字符集編碼
請到mysql安裝目錄下面找到 my.ini檔案 修改default-character-set=utf8 為 default-character-set=gbk 有兩個地方都要改 修改檔案前,先停止mysql服務 ,等修改后再重新啟動 使用dos命令 :net stop mysql 來停止服務 net start mysql 來啟動
三、 Update陳述句 (更新資料)
使用 update陳述句修改表中資料,
UPDATE tbl_name SET col_name1=expr1 [, col_name2=expr2 ...] [WHERE where_definition]UPDATE語法可以用新值更新原有表行中的各列,
SET子句指示要修改哪些列和要給予哪些值,
WHERE子句指定應更新哪些行,如沒有WHERE子句,則更新所有的行,
四、 Delete陳述句 (洗掉資料)
使用 delete陳述句洗掉表中資料,
delete from tbl_name [WHERE where_definition]
- 如果不使用where子句,將洗掉表中所有資料,
- Delete陳述句不能洗掉某一列的值(可使用update)
- update table_name set 欄位名='';
- 使用delete陳述句僅洗掉記錄,不洗掉表本身,如要洗掉表,使用drop table陳述句,
- drop table table_name;
- 同insert和update一樣,從一個表中洗掉記錄將引起其它表的參照完整性問題,在修改資料庫資料時,頭腦中應該始終不要忘記外鍵約束這個潛在的問題,
- 洗掉表中資料也可使用TRUNCATE TABLE 陳述句,它和delete有所不同,參看mysql檔案,
五、Select陳述句(查找資料)
Select陳述句(1)
基本select陳述句 SELECT [DISTINCT] *|{column1, column2. column3..}FROM table; select 指定查詢哪些列的資料, column指定列名, *號代表查詢所有列, from指定查詢哪張表, DISTINCT可選,指顯示結果時,是否剔除重復資料Select陳述句(2)
在select陳述句中可使用運算式對查詢的列進行運算 SELECT * |{column1|expression, column2|expression,..} FROM table; 在select陳述句中可使用as陳述句 SELECT column as 別名 from 表名;Select陳述句(3)
使用where子句,進行過濾查詢,練習: 查詢姓名為XXX的學生成績 查詢英語成績大于90分的同學 查詢總分大于200分的所有同學Select陳述句(4)
在where子句中經常使用的運算子
比較運算子
> < <= >= = <>
大于、小于、大于(小于)等于、不等于
between ...and...
顯示在某一區間的值
in(set)
顯示在in串列中的值,例:in(100,200)
like ‘張pattern’
模糊查詢%_
is null
判斷是否為空
select * from user where id is null
ifnull(原值,替代值)
如果原值為null,則使用代替值
select ifnull(score,0) from exam;
邏輯運算子
and
多個條件同時成立
or
多個條件任一成立
not
不成立,例:where not(salary>100);
Like陳述句中,% 代表零個或多個任意字符,_ 代表一個字符,例first_name like ‘_a%’;Select陳述句(5)
使用order by 子句排序查詢結果, SELECT column1, column2. column3.. FROM table; order by column asc|desc Order by 指定排序的列,排序的列既可是表中的列名,也可以是select 陳述句后指定的列名, Asc 升序(默認)、Desc 降序 ORDER BY 子句應位于SELECT陳述句的結尾,聚集函式-count
count(列名)回傳某一列,行的總數 Select count(*)|count(列名) from tablenam [WHERE where_definition]聚集函式-SUM
Sum函式回傳滿足where條件的行的和 Select sum(列名){,sum(列名)…} from tablename[WHERE where_definition]聚集函式-AVG
AVG函式回傳滿足where條件的一列的平均值 Select avg(列名){,avg(列名)…} from tablename [WHERE where_definition]聚集函式-MAX/MIN
Max/min函式回傳滿足where條件的一列的最大/最小值 Select max(列名)from tablename [WHERE where_definition]Select陳述句(6)分組操作
使用group by 子句對列進行分組 SELECT column1, column2. column3.. FROM table group by column having ...
- 使用having 子句 對分組結果進行過濾
- where和having區別:where在分組前進行條件過濾,having在分組后進行條件過濾,使用where的地方都可以用having替換,但是having可以使用分組函式,而where后不可以使用,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/13339.html
標籤:其他
