mysql語句-DML語句


DML語句

DML是指對數據庫中表記錄的操作,主要包括數據的增刪改查以及更新,下面依次介紹

首先創建一張表::
表名:emp
字段:ename varchar(20),hiredate date ,sal decimal(10,2), deptno int(3)

mysql> create table emp(
    -> ename varchar(20),
    -> hiredate date,
    -> sal decimal(10,2),
    -> deptno int(3));
Query OK, 0 rows affected (0.02 sec)

mysql> desc emp;
+----------+---------------+------+-----+---------+-------+
| Field    | Type          | Null | Key | Default | Extra |
+----------+---------------+------+-----+---------+-------+
| ename    | varchar(20)   | YES  |     | NULL    |       |
| hiredate | date          | YES  |     | NULL    |       |
| sal      | decimal(10,2) | YES  |     | NULL    |       |
| deptno   | int(3)        | YES  |     | NULL    |       |
+----------+---------------+------+-----+---------+-------+
4 rows in set (0.01 sec)

1、insert插入記錄

語法:insert into 表名(可選字段傳值) values(與前面字段對應填值)
不指定字段名時順序一一對應全要傳值。
列如:

insert into emp values('kingfan','2018-10-23','2000',1);
mysql> insert into emp values('kingfan','2018-10-23','2000',1);
Query OK, 1 row affected (0.01 sec)

#使用查詢語句查看添加記錄
mysql> select * from emp;
+---------+------------+---------+--------+
| ename   | hiredate   | sal     | deptno |
+---------+------------+---------+--------+
| kingfan | 2018-10-23 | 2000.00 |      1 |
+---------+------------+---------+--------+
1 row in set (0.00 sec)

mysql還支持多條語句同時插入:

mysql> insert into emp values('rnf','2000-1-1','3000','2'),('edg','2000-1-1','4000',1);
Query OK, 2 rows affected (0.00 sec)
Records: 2  Duplicates: 0  Warnings: 0

mysql> select * from emp;
+---------+------------+---------+--------+
| ename   | hiredate   | sal     | deptno |
+---------+------------+---------+--------+
| kingfan | 2018-10-23 | 2000.00 |      1 |
| rnf     | 2000-01-01 | 3000.00 |      2 |
| edg     | 2000-01-01 | 4000.00 |      1 |
+---------+------------+---------+--------+
3 rows in set (0.00 sec)

注意每條記錄之間要逗號隔開

更新記錄update

對於表中的記錄的值可以通過update命令來修改
語法1: update 表名 set 字段名=修改值 where 字段名=值;where是篩選條根據條件把找到的記錄然后將set后面的字段名設定成指定值。
語法2:update 表名 set 字段名=修改值 where 字段名 like 值;
語法1:將enmae=kingfan的記錄的ename改成Kingfan

mysql> select * from emp;
+---------+------------+---------+--------+
| ename   | hiredate   | sal     | deptno |
+---------+------------+---------+--------+
| kingfan | 2018-10-23 | 2000.00 |      1 |
| rnf     | 2000-01-01 | 3000.00 |      2 |
| edg     | 2000-01-01 | 4000.00 |      1 |
+---------+------------+---------+--------+
3 rows in set (0.00 sec)

mysql> update emp set ename='KingFan' where ename='kingfan';
Query OK, 1 row affected (0.01 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> select * from emp;
+---------+------------+---------+--------+
| ename   | hiredate   | sal     | deptno |
+---------+------------+---------+--------+
| KingFan | 2018-10-23 | 2000.00 |      1 |
| rnf     | 2000-01-01 | 3000.00 |      2 |
| edg     | 2000-01-01 | 4000.00 |      1 |
+---------+------------+---------+--------+
3 rows in set (0.00 sec)

語法2:

mysql> update emp set ename='RNG' where ename like 'rnf';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> select * from emp;
+---------+------------+---------+--------+
| ename   | hiredate   | sal     | deptno |
+---------+------------+---------+--------+
| KingFan | 2018-10-23 | 2000.00 |      1 |
| RNG     | 2000-01-01 | 3000.00 |      2 |
| edg     | 2000-01-01 | 4000.00 |      1 |
+---------+------------+---------+--------+
3 rows in set (0.00 sec)

刪除記錄

語法:delete from 表名 where 條件;
注意:不加where條件是刪除表中所有記錄

delete from emp where ename='KingFan';
mysql> select * from emp;
+---------+------------+---------+--------+
| ename   | hiredate   | sal     | deptno |
+---------+------------+---------+--------+
| KingFan | 2018-10-23 | 2000.00 |      1 |
| RNG     | 2000-01-01 | 3000.00 |      2 |
| edg     | 2000-01-01 | 4000.00 |      1 |
+---------+------------+---------+--------+
3 rows in set (0.00 sec)

mysql> delete from emp where ename='KingFan';
Query OK, 1 row affected (0.01 sec)

mysql> select * from emp;
+-------+------------+---------+--------+
| ename | hiredate   | sal     | deptno |
+-------+------------+---------+--------+
| RNG   | 2000-01-01 | 3000.00 |      2 |
| edg   | 2000-01-01 | 4000.00 |      1 |
+-------+------------+---------+--------+
2 rows in set (0.00 sec)

查詢記錄select

查詢所有記錄

語法select * from 表名

select * from emp
mysql> select * from emp;
+-------+------------+---------+--------+
| ename | hiredate   | sal     | deptno |
+-------+------------+---------+--------+
| rng   | 1993-01-01 | 2000.00 |      1 |
| edg   | 1993-01-01 | 3000.00 |      2 |
+-------+------------+---------+--------+
2 rows in set (0.00 sec)

mysql>

按字段名和條件查詢

mysql> select ename from emp where deptno=1;
+-------+
| ename |
+-------+
| rng   |
+-------+
1 row in set (0.00 sec)

mysql>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM