Mysql数据增删改操作以及复制表小技巧

基本的概念:crud操作,表示是增删改查. c[create] / r[read] / u[update] /d[delete] 。

下面的案例都以该表为基础:

--创建表
create table staff(
id int not null default 1 comment "序列号",
name varchar(5) not null default '保密' comment '姓名',
sex enum('','','保密') not null default '保密' comment '性别',
birthday date comment '生日',
entry_date date comment '入职日期',
station varchar(20) not null default '保密' comment '职位',
salary decimal(10,2) unsigned not null default 0 comment '薪资',
resume text comment '文章'
)charset=utf8 engine=myisam;

insert语句:

  概念:基本的概念就是将数据添加到某个表中

  基本说明:

  (1)   添加数据时,可以一条insert 语句可以添加多少记录

  (2)   在添加时,可以指定字段名称

  案例演示:

--插入数据
insert into `staff` value(6,'老王',1,'1976-9-8','2014-5-18','保洁',3900.00,' ');
insert into `staff` value(10,'小明',1,'1992-7-16','2016-5-18','工程师',13000.00,' ');
--插入的数据可以指定需求的属性 同时插入多条语句
insert into `staff` (id,name,sex,entry_date,station,salary) values
(2,'老张',1,'2006-7-8','副总',50000),
(18,'小李',2,'2016-2-28','文员',4000),
(21,'小刘',2,'2018-9-15','前台',4000);

  insert 细节-使用注意事项:

    (1) 插入的数据应与字段的数据类型相同

    (2) 数据的大小应在字段的规定范围内

    (3)在values中列出的数据位置必须与被加入的列的排列位置相对应

    (4)字符和日期型数据应包含在单引号中

    (5)插入空值[前提是该字段允许为空]

    (6)insert into values (),(),()  形式添加多条记录

    (7)如果是给表中的所有字段添加数据,可以不写前面的字段名称, 如果你只是给部分字段添加值,则必须指定列名(没有指定的列名必须有默认值否则会报错)

    (8)建议我们以后添加数据,都给我把 ''  引起了  如果我们以后在开发中,不知道是否需要将 值 '' 引起来,则''引起来就可以了。

update语句:

  基本概念:update语句就是修改数据的

  说明:

    (1)   update 可以一次性的修改多个字段

    (2)   update 可以通过where子句来挑选哪些记录可以被修改

    (3)   update 修改字段是,可以是表达式(函数)

--将所有员工的salary改为5000
update `staff` set salary = 5000;
--将老张的salary改为15000
update `staff` set salary = 15000 where name = '老张';
--将工程师的salary改为12000
update `staff` set salary = 12000 where station = '工程师';
--将老王的工资在原有的基础上减少1000;
update `staff` set salary = salary - 1000 where name = '老王';
--将小李的工资改为5500station改为专员;
update `staff` set salary = 5500,station = '专员' where name = '小李';

delete语句:

  说明: delete 语句可以删除我们希望删除的记录, 通过where子句来选择你要删除的记录,如果你不写,整个表的记录都全部删除了.

  delete 和 truncate 语句区别 :

    (1)   delete 和 truncate 都可以删除数据.

    (2)   从执行的速度上看 , truncate > delete

    (3)   delete语句可以带where子句,truncate 不能带where, 即truncate 指令只能删除整表的记录

    (4)   delete 会返回删除的记录数,而truncate 返回0

--删除小明的信息
delete from `staff` where name = '小明';
--删除工资高于10000的人员
delete from `staff` where salary > 10000;

小技巧:复制表staff到staff1中

create table `staff1` like `staff`; 
insert into `staff1` select * from `staff`;
原文地址:https://www.cnblogs.com/rickyctbur/p/11188700.html