/*
mysql的DML操作
插入数据:
1.选择插入
语法:
insert into 表名 (列名1,列名2,列名3)values(值1,值2,值3);
2.完全插入
insert into 表名 values(值1,值2,值3,值4);
注意:如果主键是自动增长,需要使用default或者null或者0占位
*/
-- 示列向departments表中添加一条数据,部门名称Telemarketing,工作地点ID为5
insert into departments(department_name,location_id) values ('Telemarketing',5);
-- 示列向departments表中添加一条数据,部门名称intermediary,工作地点ID为6使用default占位
insert into departments values (default,'intermediary',6);
-- 示列向departments表中添加一条数据,部门名称sale,工作地点ID为7使用null占位
insert into departments values (null,'sale',7);
-- 示列向departments表中添加一条数据,部门名称maintain,工作地点ID为8使用0占位
insert into departments values(0,'maintain',8);
/*---------------------------------------------------------------------------------------*/
/*
自动增长(auto_increament)
mysql自动增长的要求
1.1个表中只能有一个列为自动增长
2.自动增长的列类型必须是整数类型
3.自动增长只能添加到具备主键或者唯一约束的列上
4.删除主键约束或唯一约束,如果该列拥有自动增长能力,则需要先去掉自动增长然后在删除约束
*/
-- 创建emp2表。包含id该列为主键,包含name,包含seq_num要求该列为具备唯一约束,该列的值为自动增长
create table emp2(
id int primary key,
name varchar(20),
seq_num int unique auto_increment
);
/*
---------------------------------------------------------------------------------------------
*/
/*
mysql的默认值处理:
在mysql中可以使用default为字段设定一个默认值,如果插入数据时未指定该列值,
那么mysql会将默认值添加到该列中
创建表示指定默认值
语法:
create table 表名(
列名1 类型,
列名2 类型 默认值
);
*/
-- 示列创建emp3表该表包含emp_id主键且自动增长,包含name,包含address该列默认值为"未知"
create table emp3(
emp_id int primary key auto_increment,
name varchar(20),
address varchar(10) default '未知'
);
/*
修改表添加列的默认值
语法:
alter table 表名 modify 列名 类型 default 默认值
alter table 表名 add column 列名 类型 default 默认值
*/
-- 示列修改emp3表,添加job_id该列的默认值为0
alter table emp3 add column job_id int default 0;
/*
插入数据时默认值处理
如果在插入数据时并未指定该列的值,那么mysql会将默认值添加
到该列中,如果完全插入需要使用default来占位
*/
-- 示列向emp3表中添加数据,要求address列与job_id列使用默认值作为该列的值
insert into emp3(name) values('admin');
insert into emp3 values(0,'tom',default,default);
/*
---------------------------------------------------------------------------------------
*/
/*
更新数据(update)
语法:
update 表名 set 列名1=值1,列名2=值2...... where 条件
mysql的update特点
1.更新的表不能在set和where中用于子查询。(oracle可以)
2.update后面可以做任意的查询
*/
-- 示列更新emp3表中的id为1的数据,修改address数据为BeiJing
update emp3 set address="BeiJing" where emp_id=1;
-- 示列更新emp3中id为2的数据,将地址修改为与id为1用户相同
-- oracle写法
-- update emp3 set address=(select address from emp3 where emp_id=1) where emp_id=2;
-- mysql写法
update emp3 e,(select address from emp3 where emp_id=1) em set e.address=em.address where emp_id=2;
/*
------------------------------------------------------------------------------------------------------
*/
/*
删除数据(delete)
语法:
delete from 表名 where 条件
注意:如果没有where条件那么将会删除所有数据
*/
-- 示列删除emp3表中emp_id为1的雇员信息。
delete from emp3 where emp_id=1;
/*
使用truncate清空表
语法:
truncate table 表名
*/
-- 示列删除emp3表中的所有数据
truncate table emp3;
/*
delete和truncate的区别
1.truncate是整体删除,delete是逐条删除
2.truncate不写服务器log,delete写服务器log
3.truncate是会重置自增值,相当于自增列会被置为初始值,而delete删除后,自增值仍然会继续累加
*/
mysql的DML操作笔记
最新推荐文章于 2024-10-07 22:13:34 发布