mysql 增删改与简单查询

在执行语句前,先要设置mysql字符集set names utf8;

 

  • 添加数据

INSERT INTO 表名(字段名1,字段名2,…)VALUES(值1,值2,…);

若不指定字段名,则添加的值的顺序应和字段在表中的顺序完全一致

INSERT INTO 表名 VALUES(值11,值2,…);

为指定字段添加数据,即只向部分字段添加值,而其他字段的值为表定义时的默认值。

INSERT INTO 表名(字段1,字段2,…) VALUES(值1,值2,…)

其他写法

INSERT INTO 表名SET 字段名1=值1,字段名2=值2,…;

同时添加多条数据

INSERT INTO 表名 VALUES(值1,值2,…),(值1,值2,…),(值1,值2,…)

  • 删除数据

删除部分数据    DELETE  FROM student  WHERE id=7;

删除全部数据     DELETE FROM 表名

删除全部数据的另一种方法—TRUNCTE [TABLE ] 表名

(1)DELETE 后面可以跟WHERE子句指定删除部分记录,TRUNCATE只能删除整个表的所有记录

(2)使用TRUNCATE语句删除记录后,新添加的记录时,自动增长字段(如本文中student表中的 id 字段)会默认从1开始,而使用DELETE删除记录后,新添加记录时,自动增长字段会从删除时该字段的的最大值加1开始计算(即原来的id最大为5,则会从6开始计算)。所以如果是想彻底删除一个表的记录而且不会影响到重新添加记录,最好使用TRUNCATE来删除整个表的记录

  • 更新指定数据

UPDATE 表名     SET 字段名1=值1, 字段名2=值2,… WHERE 条件表达式

更新全部数据        UPDATE 表名     SET 字段名1=值1

  • 查询数据

查询所有字段    SELECT 字段名1,字段名2,…FROM 表名

 字段顺序可以更改

带关系运算符的查询      SELECT 字段名1,字段名2,…FROM 表名 WHERE 条件表达式

 带 IN 关键字的查询

IN关键字用于判断某个字段的值是否在指定集合中,若在,则该字段所在的记录将会被查询出来.

SELECT * | 字段名1,字段名2,…FROM 表名WHERE 字段名 [ NOT ]  IN (元素1,元素2,…)

NOT IN 与 IN 相反,查询的是不在指定范围内的记录

带 BETWEEN AND  关键字的查询

BETWEEN AND 用于判断某个字段的值是否在指定范围之内,若在,则该字段所在的记录会被查询出来,反之不会。

SELECT * | { 字段名1,字段名2,… FROM  表名  WHERE 字段名 BETWEEN  值1 and 值2;

空值查询

在数据表中有些值可能为空值(NULL),空值不同于0,也不同于空字符串,需要使用 IS NULL 来判断字段的值是否为空值。

SELECT * | 字段名1,字段名2,…FROM 表名  WHERE 字段名 IS [ NOT ] NULL

 带 DISTINCT 关键字的查询

很多表中某些字段的数据存在重复的值,可以使用DISTINCT关键字来过滤重复的值,只保留一个值。

SELECT DISTINCT 字段名 FROM 表名;

 带 LIKE 关键字的查询

SELECT * | 字段名1,字段名2,…FROM 表名 WHERE 字段名 [ NOT LIKE ‘匹配字符串’;

百分号(%)通配符

以z开头

以z开头以n结尾

不含z

下划线(_)通配符

 下划线通配符只匹配单个字符,若要匹配多个字符,需要使用多个下划线通配符。例如,字符串“ cu_ ”匹配以字符串“ cu ”开始,长度为3的字符,如“ cut ”,“ cup ”;字符串“ c__l”匹配在“ c ”和“ l ”之间包含两个字符的字符串,如“ cool ”。需要注意的是,连续的“_”之间不能有空格,例如“M_ _QL”只能匹配“My SQL”,不能匹配“MySQL”。

带 AND 关键字的多条件查询

带 OR 关键字的多条件查询

OR 和 AND 一起使用的时候,AND 的优先级高于 OR,因此二者一起使用时,会先运算 AND 两边的表达式,再运算 OR 两边的表达式。

 

posted @ 2018-08-31 16:27  元气满满01  阅读(178)  评论(0编辑  收藏  举报