1、mysql添加记录
--添加记录的语法(可添加单条记录或者多条记录),INTO是可以省略的,字段名也可以省略的,但是如果省略的话,后面对应的value的值就要全部填写 INSERT [INTO] tab_name [(col_name,...)] {VALUE|VALUES} (values...); --添加记录的语法(只可添加一条记录) INSERT tab_name SET 字段名称=字段值,...; --从表中查询记录进行添加 INSERT tab_name SELECT 字段名称 FROM tab1_name [WHERE 条件]
注意:通常情况下,以上语句在使用values插入单行数据的时候效率要比value来得高,但是插入多行数据的时候效率value要比values来得高,set与value|values相比效率要来得高,但是set是mysql的扩展,对于其他数据库是不存在的,所以可移值性比较低,并且set一次只能添加一条数据。
举例:
--测试用表 CREATE TABLE IF NOT EXISTS test( id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT COMMENT '用户ID', name VARCHAR(20) NOT NULL COMMENT '用户名', sex ENUM('0','1','2') NOT NULL DEFAULT '0' COMMENT '性别0保密,1男,2女' )ENGINE=INNODB CHARSET=UTF8; --指定值 INSERT INTO test (name,sex) VALUES ('AA','0'); --不指定值,那么所对应的所有的值要全部写出来 INSERT test VALUES (NULL,'BB','1'); --插入多条记录,中间用逗号隔开,注意中英文状下的逗号 INSERT test (name,sex) VALUE ('CC','2'),('DD','1'),('EE','0'),('FF','2'); --应用set来添加数据 INSERT test SET name="GG",sex="2"; --进行批量插入 INSERT user (name,sex) SELECT name,sex FROM test WHERE sex="1"
2、修改记录
--更改记录的语法(有点类似INSERT..SET) UPDATE tab_name SET 字段名=字段值,...[WHERE 条件];
注意:如果没有指定where那么整张表的数据都会被更改。
--在id<3的名字后面加上ok,并且把性别改成默认值(默认值可以用DEFAULT来代替) UPDATE test SET name=CONCAT(name,'ok'),sex=DEFAULT WHERE id<=3; --SELECT * FROM test 输出 -- +----+------+-----+ -- | id | name | sex | -- +----+------+-----+ -- | 1 | AAok | 0 | -- | 2 | BBok | 0 | -- | 3 | CCok | 0 | -- | 4 | DD | 2 | -- | 5 | EE | 1 | -- | 6 | FF | 0 | -- | 7 | GG | 2 | -- +----+------+-----+
3、删除记录
--删除记录的语法 DELETE FROM tab_name [WHERE 条件];
注意:如果不添加条件,那么会删除全部记录
--删除所有ID大于3的记录 DELETE FROM test WHERE id>3; --SELECT * FROM test 输出 -- +----+------+-----+ -- | id | name | sex | -- +----+------+-----+ -- | 1 | AAok | 0 | -- | 2 | BBok | 0 | -- | 3 | CCok | 0 | -- +----+------+-----+