數據庫-數據操作
- 2020 年 3 月 27 日
- 筆記
1.7 數據操作
1.7.1 插入數據
語法:insert into 表名 (字段名, 字段名,…) values (值1, 值1,…)
1、插入所有字段
-- 插入所有字段 mysql> insert into stu (id,stuname,sex,`add`) values (1,'tom','男','北京'); Query OK, 1 row affected (0.00 sec) -- 插入部分字段 mysql> insert into stu(id,stuname) values (2,'berry'); -- 插入的字段和表的字段可以順序不一致。但是插入字段名和插入的值一定要一一對應 mysql> insert into stu(sex,`add`,id,stuname) values ('女','上海',3,'ketty'); Query OK, 1 row affected (0.00 sec) -- 插入字段名可以省略 mysql> insert into stu values(4,'rose','女','重慶'); Query OK, 1 row affected (0.00 sec)
小結:
1、插入字段名的順序和數據表中字段名的順序可以不一致 2、插入值的個數、順序必須和插入字段名的個數、順序要一致。 3、如果插入的值的順序和個數與表字段的順序個數一致,插入字段可以省略。
2、插入默認值和空值
mysql> insert into stu values (5,'jake',null,default); Query OK, 1 row affected (0.05 sec)
小結:
default關鍵字用來插入默認值,null用來插入空值.
3、插入多條數據
mysql> insert into stu values (6,'李白','男','四川'),(7,'杜甫','男','湖北'); Query OK, 2 rows affected (0.00 sec) Records: 2 Duplicates: 0 Warnings: 0
1.7.2 更新數據
語法:update 表名 set 字段=值 [where 條件]
-- 將berry性別改為女 mysql> update stu set sex='女' where stuname='berry'; Query OK, 1 row affected (0.06 sec) -- 將編號是1號的學生性別改成女,地址改為上海。 mysql> update stu set sex='女',`add`='上海' where id=1; Query OK, 1 row affected (0.00 sec)
1.7.3 刪除數據
語法:delete from 表名 [where 條件]
-- 刪除1號學生 mysql> delete from stu where id=1; -- 刪除名字是berry的學生 mysql> delete from stu where stuname='berry'; Query OK, 1 row affected (0.00 sec) -- 刪除所有數據 mysql> delete from stu; Query OK, 5 rows affected (0.00 sec)
多學一招:delete from 表和truncate table 表區別?
1、delete from 表:遍歷表記錄,一條一條的刪除 2、truncate table:將原表銷毀,再創建一個同結構的新表。就清空表而言,這種方法效率高。
1.7.4 查詢數據
語法:
select 列名 from 表名
例題
-- 查詢id字段的值 mysql> select id from stu; -- 查詢id,stuname字段的值 mysql> select id,stuname from stu;、 -- 查詢所有字段的值 mysql> select * from stu;
1.7.5 數據傳輸時使用字符集
發現:在插入數據的時候,如果有中文會報錯(或者中文無法插入)
分析:
1、查看客戶端發送的編碼
2、查看服務器接受,返回的編碼
更改接受客戶端指令的編碼
mysql> set character_set_client=gbk; Query OK, 0 rows affected (0.05 sec)
原因:返回編碼是utf8,客戶端是gbk;
測試:成功
可以通過set names一次性設置
小結:
1、設置什麼編碼取決於客戶端的編碼
2、通過set names 設置編碼