(INSERT/UPDATE/DELETE/事务)
INSERT:插入,新增
使用insert之前想清楚
1、往哪个表插入数据 : -- >表名
2、往哪些列插入数据: -- 》 列名
3、插入的数据是什么?具体的值 -- 》values
语法:
INSERT INTO 表名(列名1,列名2,...) VALUES(值1,值2,...)
-如果给表中所有的列都插入数据,可以简写为:
INSERT INTO 表名 VALUES(值1,值2,...) ;
例如:给用户信息表插入一个用户信息:用户编号 10089,用户名 sunsun,手机号 13876542345
INSERT INTO user_tab(user_id,phone,user_name) VALUES(10090,13876542345,'sunsun');
给列表中所有选项都插入信息:
INSERT INTO user_tab VALUES(10092,'sunsun23',NULL,13876542345,'null','2022-07-19');
————————————————————————————————————
DELETE 语句
想清楚:
1、删除哪个表中的数据 ? -- 表名
- 删除哪些行的数据? -- 查询条件
语法:DELETE FROM 表名 [WHERE 查询条件];
实例:DELETE FROM user_tab WHERE user_name LIKE '%sun23%';
备注:如果不加查询条件,删除的就是整个表中的数据,工作中,先查询,后删除,并且删除之前要备份
update 更新修改数据
想清楚:
1、修改哪个表中的数据? -- 》表名
2、修改哪个列的数据?把数据改成什么? -- 》 列名,新的值
3、修改哪些行? -- 》 where 查询条件
语法:UPDATE 表名 SET 列名=新的值,列名2=新的值,... WHERE 查询条件;
实例:把用户表中sunsun相关的用户姓名改成 " 孙孙"
UPDATE user_tab SET user_name='孙孙111',phone=NULL WHERE user_name LIKE '%孙孙%';
= 的两种用法:
1、在查询条件中, = 表示精确查询的运算符, = 不可以和 NULL 一起使用;
2、在update 语句中, SET 之后, = 表示赋值,可以和 NULL 一起使用
事务
事务:一组数据操作构成事务,一旦开始执行一条DML 语句,就会自动开启事务,后面的数据操作都进入这个事务,在Oracle 数据库中,事务不会自动结束,需要手动结束 COMMIT ; 在提交之前,操作可以回滚 ROLLBACK 。
但是mysql 中默认事务是自动提交的,并且mysql 中每一个数据操作语句都被当成独立的事务,即每次只需DML语句都会自动提交结束事务,没有回滚的可能。
查看mysql 中事务提交的方式:
show variables like 'autocommit'; -- on 表示自动提交开启,值1,off 表示自动提交关系,值 0
set autocommit=0;
————————————————————————————————————
2.5DDL 语言(creste/allter/drop)
create 语句
创建数据库: CREATE DATABASE 数据库名字;
CREATE DATABASE test0711; 创建名为test0711的数据库
SHOW DATABASES; -- 命令显示数据库情况
USE 数据库名; 切换到某一个数据库,在工具就相当于光标选中
创建表:
CREATE TABLE 表名(列名1 数据类型(size),列名2 数据类型(size), ...DATE);
DESC yp; -- desc 命令,查看表结构,即表中列的情况
Allter
modify 修改列的取值范围,扩大范围
ALTER TABLE t112 MODIFY id2 FLOAT(8,3);
修改列的名字 change
ALTER TABLE t112 CHANGE id2 ididid VARCHAR(20); -- 会影响调用这个表和列的程序,需要同步修改
修改表的名字 rename
ALTER TABLE 表名 RENAME 新的表名
ALTER TABLE t112 RENAME tt112345;
删除列
ALTER TABLE 表名 DROP 列名;
ALTER TABLE tt112345 DROP id1;
DESC tt112345;
Drop
删除表 DROP 语句:DROP TABLE 表名;
DROP TABLE yp; -- 删除表及表中数据
删除数据库;DROP DATABASE 数据库名;
DROP DATABASE test0711; -- 没有授权,不要使用
面试: DROP 和 DELETE 的区别, DELETE 删除的是表中数据,删的时候是一条一条删除,既是不加查询条件,也是这样的原理,对表结构没有影响。
DROP :删除的是表及表数据,且 删除的效率要比 DELETE 高。