MySQL 表的增-删-改
数据操作分为 增 删 改
首先建表如下:
create table if not exists user (
id TINYINT unsigned auto_increment key,
username varchar(20) NOT NULL UNIQUE,
password char(32) NOT NULL ,
email varchar(50) NOT NULL default '231@qq.com',
age TINYINT unsigned default 18
);
1. 插入数据(记录)
如果没有指定插入的列 那么在VALUES后写完整插入的数据必须和字段对应好,不然插入失败
INSERT INTO user VALUES(1,'King','King','King@qq.com',23);
也可以这样插入数据
INSERT user VALUE(2,'queen','queen','queen@qq.com',56);
指定字段插入记录 注意 我们指定字段插入数据的时候 指定的字段必须和插入的数据对应好,但是不必和数据表中的字段对应好
INSERT user(username,password) VALUES('A','a');
INSERT user(password,username) VALUES('bbb','xx');
INSERT user(username,password,email,age) VALUES('admin','root','asdf@qq.com',12);
插入多条记录
INSERT user VALUES(6,'DDDD','dfdf','Dfdfg@qq.com',34),
(7,'asf','ioho','jsjio@126.com',56);
通过SET关键字插入数据
INSERT [INTO] tbl_name SET 字段名称=值,....;
INSERT INTO user SET id=23,username='test',password='asdf',email='sfaght@qq.com',age=45;
给部分字段插入数据
INSERT user SET username='root',password='toor';
建一个新的表
CREATE TABLE IF NOT EXISTS testUser(
id TINYINT unsigned AUTO_INCREMENT KEY,
username varchar(20) NOT NULL UNIQUE
);
将查询结果插入到表中
INSERT testUser SELECT id,username FROM user;
INSERT testUser SELECT * FROM user;
这样会出错 因为插入的数据和表的字段不能匹配
2、更新表中数据(记录)
将用户表中的所有数据中的age 更新为20
UPDATE user SET age=5;
将年龄邮箱都改变
UPDATE user SET email='123@qq.com',age=45;
更新id=1 的密码和邮箱
UPDATE user SET password="234",email='456@qq.com' where id=1;
把id>=3 的用户的age都减去5
UPDATE user SET age = age - 5 where id >= 3;
把年龄恢复成默认值
UPDATE user SET age=default;
把用户名为admin 的用户的年龄修改为12
UPDATE user SET age=12 where username='admin';
3. 删除表中的数据(记录)
DELETE FROM testUser;
如果我们全部删除了 表中的数据但是并没有重置 auto_increment 的值,所以下次如果没有指定id 那么id的值会一直增长
我们可以用如下查询语句查看auto_increment的值
show create table user;
重置auto_increment的值
ALTER TABLE user auto_increment=1;
删除id为1的用户的记录
DELETE FROM user where id=1;
彻底清空数据表 不能带有where 字句 并会重置自增长auto_increment的值
TRUNCATE TABLE user;