數據庫-數據操作

  • 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 設置編碼