MySQL-增删改查
- 增
- 删
- 改
- 查
例子表结构
create table message(
id int unsigned auto_increment,
name varchar(20) not null comment '姓名',
phone varchar(20) comment '手机号',
site varchar(20) default '地址不详'comment '地址',
primary key(id)
);
增
向表里添加数据时有两种方法:①指定字段名(列名)②不指定字段名(列名)
不指定字段名时必须保证插入数据的顺序与表中定义的字段顺序相同
insert into…values
格式:insert into 表名 (字段名) values (值);
由于表结构中id已经设置自增,就算添加数据时不添加字段id的值,系统也会自行生成,每个值都是上一个值+1
下面第一条数据没有对id字段添加值,所以也是生效的,不会报错
第二条和第三条就是指定字段名与不指定字段名的命令
添加数据时如果添加的是字符串一定要加单引号
insert into message(name,phone,site) values('钱一','164981541','北京');
insert into message(id,name,phone,site) values('2','孙二','16491285541','上海');
insert into message values('3','张三','17891285541','广州');
insert into…set
格式:insert into 表名 set 字段名=‘值’;
除了上面的values添加数据还可以用set
下面就是只添加一个name的命令,其中表结构中手机设置的可以为空,地址默认的是字符串地址不详
如果使用set只添加手机号的话就会报错,因为name字段设置的是不能为空,不为空的字段是必须要有值的
insert into message set name='李四';
insert into message set name='王五',phone='415185156',site='深圳';
删
格式:delete from 表名 where 字段名=值;
值的类型如果是字符串需要加单引号,where条件语句后面跟表达式,如等于,大于,小于,满足条件的语句都会被删除
删除语句中如果不使用where条件语句的话,将删除所有数据。
delete from message where name='孙二';
delete from message where id=3;
delete from message;
使用delete时候,有一个问题点就是当你删除一条数据时其他的id值(自增)并没有进行重新刷新排序,因为之前做的一个Java项目需要一个这样的一个需求,网上找了很多都没有找到准确的答案,然后就使用的一个效率比较低的方法,先把原表里的主键删除然后重新添加主键id就解决了,这种方法可能比较笨,但也是目前本人知道的一种解法
改
格式:update 表名 set 字段名1=新值 where 字段名2=值;
可以同时修改一个或多个字段,如果要修改多个字段的值使用逗号隔开
修改语句中如果没有where条件语句,将修改整个表中指定字段名的值
update message set name='张三',site='广州' where id=2;
查
格式:select 字段名 from 表名;
*:表示所有字段,也是比较常用的
查询多个字段里的数据使用逗号分隔,可以在语句后面添加where条件语句,可以使用LIMIT控制输出的条数
以下只是select的简单用法,之后会专门写一篇select的笔记
select * from message;
select phone from message;
select name,site from message;
select name,site from message where site='广州';
select name,site from message limit 1;
以上均为个人学习笔记,如有错误请指正,共同学习,谢谢。