重学MySql数据库(十) MySql数据库之表的增删改操作
一. 增加(插入)
1. 语法:
1. insert into 表名(字段名,...) values(值,...); // 推荐使用 2. insert into 表名 set 字段=值,字段=值,...;
2. 特点:
1、要求值的类型和字段的类型要一致或兼容 2、字段的个数和顺序不一定与原始表中的字段个数和顺序一致 但必须保证值和字段一一对应 3、假如表中有可以为null的字段,注意可以通过以下两种方式插入null值 ①字段和值都省略 ②字段写上,值使用null 4、字段和值的个数必须一致 5、字段名可以省略,默认所有列
二. 修改
1. 语法:
1. update 表名 set 字段=值,字段=值 【where 筛选条件】; //级联修改,修改多表。 2. update 表1 别名 left|right|inner join 表2 别名 on 连接条件 set 字段=值,字段=值 【where 筛选条件】;
三. 删除
1. 语法:
1. delete from 表名 【where 筛选条件】【limit 条目数】 // 级联删除,多表删除。 2. delete 别名1,别名2 from 表1 别名 inner|left|right join 表2 别名 on 连接条件 【where 筛选条件】 3. truncate table 表名
2. 二者的区别:
1.truncate删除后,如果再插入,标识列从1开始 delete删除后,如果再插入,标识列从断点开始 2.delete可以添加筛选条件 truncate不可以添加筛选条件 3.truncate效率较高 4.truncate没有返回值 delete可以返回受影响的行数 5.truncate不可以回滚 delete可以回滚
四. 增删改SQL代码演示
#1. 创建表 my_employees USE myemployees; CREATE TABLE my_employees( Id INT(10), First_name VARCHAR(10), Last_name VARCHAR(10), Userid VARCHAR(10), Salary DOUBLE(10,2) ); CREATE TABLE users( id INT, userid VARCHAR(10), department_id INT ); #2. 显示表 my_employees的结构 DESC my_employees; #3. 向 my_employees表中插入下列数据 ID FIRST_NAME LAST_NAME USERID SALARY 1 patel Ralph Rpatel 895 2 Dancs Betty Bdancs 860 3 Biri Ben Bbiri 1100 4 Newman Chad Cnewman 750 5 Ropeburn Audrey Aropebur 1550 #方式一: INSERT INTO my_employees VALUES(1,patel,Ralph,Rpatel,895), (2,Dancs,Betty,Bdancs,860), (3,Biri,Ben,Bbiri,1100), (4,Newman,Chad,Cnewman,750), (5,Ropeburn,Audrey,Aropebur,1550); #方式二: INSERT INTO my_employees SELECT 1,patel,Ralph,Rpatel,895 UNION SELECT 2,Dancs,Betty,Bdancs,860 UNION SELECT 3,Biri,Ben,Bbiri,1100 UNION SELECT 4,Newman,Chad,Cnewman,750 UNION SELECT 5,Ropeburn,Audrey,Aropebur,1550; #4. 向 users表中插入数据 1 Rpatel 10 2 Bdancs 10 3 Bbiri 20 INSERT INTO users VALUES(1,Rpatel,10), (2,Bdancs,10), (3,Bbiri,20); #5.将 3号员工的last_name修改为“drelxer” UPDATE my_employees SET last_name=drelxer WHERE id = 3; #6.将所有工资少于 900 的员工的工资修改为 1000 UPDATE my_employees SET salary=1000 WHERE salary<900; #7.将 userid为 Bbiri的 user表和 my_employees表的记录全部删除 DELETE u,e FROM users u JOIN my_employees e ON u.`userid`=e.`Userid` WHERE u.`userid`=Bbiri; #8.删除所有数据 DELETE FROM my_employees; DELETE FROM users; #9.检查所作的修正 SELECT * FROM my_employees; SELECT * FROM users; #10.清空表my_employees TRUNCATE TABLE my_employees;