mysql 的增删改查操作

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   |
-- +----+------+-----+

猜你喜欢

转载自www.cnblogs.com/rickyctbu/p/9998718.html