MySQL 第二篇:增删改查
我把MySQL的內容整理成9篇博客,學完這9篇博客雖不能說能成為大神,但是應付一般中小企業的開發已經足夠了,有疑問或建議的歡迎留言討論。
一、新增數據
1、語法:insert [into] <表名>[列名] values<值列表>
-- Insert into 表名(列名1,列名2) values(值1,值2,); INSERT INTO students (s_id, s_name) VALUES ('J1604025', 'XZG');注意:
- 如果insert語句中不寫字段名,則默認是向表中的所有字段添加值,并且添加值的數量要和表的字段數對應。
- 字符串需要以”或者”“來括起。
- 字段列多值少 會報錯 數據庫對插入的數據是否有效進行了完整性的校驗。
例:
- 某個值是字符,對應的字段是數字,則它會自動轉換成數字插入。
例:
- 要把字符轉換成數字,則字符中必須全部是數字形式的字符。
例:
報錯:Data truncated for column ‘height’ at row 1
- 如果字段設置了not null 則給這張表添加數據時該字段必須插入。或者設置default值。
- 每個數據值的數據類型、精度和小數位數必須與相應的列匹配。
2、講查詢結果插入到一張表中
語法:INSERT [INTO] <表名> [列名] SELECT [源列名] FROM <源表名>;
INSERT INTO 表名 (列名1,列名2) SELECT 源列名1,源列名2 FROM 源表名
- INSERT INTO 表名[列名] select 列名 from 來源表
二、更新數據
語法: UPDATE <表名> set <列名1=更新值1>,<列名2=更新值2> [where 更新條件]
注意:where 子句是判斷語句,用來設定條件,限制只更新匹配的行,如果不帶where子句,則更新所有行數據。
UPDATE students SET sex = '男', age = 30 WHERE s_id = 'J1607016';三、刪除數據
1、語法:delete from <表名> [WHERE]
注意:此語句刪除表中的行,如果不帶where子句,則刪除整個表中的記錄但是表不被刪除。
- delete from <表名>; 刪除表里的所有數據,表結構還在。
- drop table <表名>; 刪除表。表結構不存在。
2、TRUNCATE不會顯示刪除的數據行數,不能夠做篩選。直接進行整表刪除。
TRUNCATE TABLE students_bak注意:delete truncate 刪除表的數據記錄。 drop 是會刪除整個表的數據和結構。
四、查詢
1、語法:SELECT <列名> FROM <表名> [WHERE <查詢表達式>];
1、查詢學生的學號(s_id) ,姓名(s_name)
Select s_id,s_name from students;2、查詢表里的所有列
<1>Select * from students; // 用*表示所有列 <2>select s_id,s_name,age,height,sex,class_id,birthday,s_desc from students; // 把所有列的列舉出來3、給列起別名:select 列名 [as] 別名,列名2 [as] 別名2 from 表名;
Select s_name,s_name as ‘學員姓名’ from students;4、給表起別名: select 表別名.列名 from 表名 表別名;
mysql> select s.s_id,s.s_name from students s;補充:MySQL中使用SQL語言幾點說明
1、屬于一個SQL語句,使用分號(;)結尾,否則mysql認為語句沒有輸入完。
2、箭頭(->)代表SQL語句沒有輸入完。
3、取消SQL語句使用(\c)。
4、SQL語句關鍵字和函數名不區分大小寫(Linux區分,Windows不區分)。
5、使用函數時,函數名和后面的括號之間不能有空格。
說明:表和字段的引用方式有兩種:絕對引用和相對引用
1、絕對引用:數據庫名.表名(.字段名)
mysql> select school.students.s_name from school.students;
2、相對引用:表名.(字段名)
mysql> select students.s_name from school.students;
總結
以上是生活随笔為你收集整理的MySQL 第二篇:增删改查的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [WCF 4.0新特性] 默认终结点
- 下一篇: 【区块链】Truffle 部署 编译 测