一. insert增数据详解
先新建一个表:
查看表头结构:
⭐tips:为了防止输入中文字符导致乱码,在输入数据之前,可以写 set names gbk;防止乱码。此命令支队当前表有效。
————————————————————————————————————————————————
1.增加
⭐关键语句:insert into
在数据库表中加一行容易,加一列会影响整个列表的形状结构,在加入数据之前,要清楚一下三个问题:
- 往哪张表中添加行?
- 给哪几个列添加值?
- 分别加什么值?
①.在所有列添加数据:
查看表:
②.在部分列添加数据:
?tips:
- 可以看到表中的结果,id一列在没有指定数值的情况下自动增加了步长,这是由于在设定id类型的时候,指定了属性auto_increment,即自增长型,故id列可以自主增长并添加。
- default 意为默认值,在default之后设定的内容即为当没有输入这一列的数值时,默认的填充值。
- 默认值的设定需要留心,对于字符串的初始默认值,可以为“ ”,即空格;对于int类型,初始默认值最好写0,对于整型,如果默认值设定为空格容易造成错误。
如果插入所有列,则可以不用声明待插入的列,也就是说,如果没有说明待插入的列,则默认为是一次插入所有的列,故可以简写为:
?注意:默认全插入值的情况下,列数必须和插入值一一对应,否则将会出错,设定的自动增长和默认值的情况是对于插入部分列而来的。使用输入法时,必须注意是否为半角状态。
一次性加入多行数据:
insert into classx
(sname,company,salary)
values
('Mary','IBM',9888.15),
('Ivan','B.C',8788.24),
('Amy','U.K',5988.24);
——————————————————————————————————————————————————
2.修改
⭐关键语句:update
在修改之前,需要知道的问题为:
- 改哪张表?
- 改哪一列的值?
- 分别改成什么值?
- 在那些行生效?
?tips:where后加的是表达式,若表达式为真,则该行发挥作用。
上例中,where后面的表达式会逐一寻找每一行,当出现让表达式成立的行时,则会在该行生效where之前的修改内容。
又见一例:(将性别为男且工资大于8000的用户的饭补修改为159)
其实,where后面的表达式恒为真时,就会遍历所有行,致所有行的指定列都被修改:
3.删除
一般的删除指的是【删除整行】,因为当删除某个值时,相当于修改操作。
⭐关键语句:delete from
对于删除,要明白的是:
- 要删哪张表的数据?
- 删哪个行?
删除salary大于8800的用户:
删除salary大于6000且性别为女的用户:
若是执行delete from classx; 则整个表都会被删除。
4.查询
⭐关键语句:select…(列)…from…(where表达式…
对于查询,需要明白的是:
- 查哪些表的数据?
- 查哪些列?
- 查那些行?
查询id=6的用户的sname,company,salary from class where id=6;
select * from class;(查询所有行所有列)
部分列,所有行,取所有人的姓名和工资:
查询id>3的所有行:
部分行,部分列,取id<5,取姓名与饭补: