MySQL的增删改查
Posted XuMou
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL的增删改查相关的知识,希望对你有一定的参考价值。
增 指定字段名 语法:INSERT INTO 表名(字段名1,字段名2,…)VALUES(值1,值2,…); 举例:INSERT INTO student(id,name,grade) VALUES(1,‘zhangshan‘,98); 不指定字段名 语法:INSERT INTO 表名 VALUES(值11,值2,…); 举例:INSERT INTO student VALUES (2,‘lisi‘,62); 其他写法 语法:INSERT INTO 表名 SET 字段名1=值1[,字段名2=值2,…] 举例:INSERT INTO student SET id=4,name=‘zhaoliu‘,grade=72; 同时添加多条数据 语法:INSERT INTO 表名[(字段名1,字段名2,…)] VALUES (值1,值2,…),(值1,值2,…),…(值1,值2,…) 举例:INSERT INTO student VALUES (5,‘lilei’,99), (6,‘hanmeimei‘,87), (8,‘poly‘,76); 删 删除部分数据 语法:DELETE FROM 表名 [WHERE 条件表达式] 命令:DELETE FROM student WHERE id=7; 删除全部数据 语法:DELETE FROM 表名 命令:DELETE FROM student; 推荐的删除全部数据 语法:TRUNCTE [TABLE ] 表名 举例:TRUNCATE TABLE student 改 更新部分数据 语法:UPDATE 表名 SET 字段名1=值1,[ ,字段名2=值2,…] [ WHERE 条件表达式 ] 命令:UPDATE student SET name=‘caocao’,grade=50 WHERE id=1; 更新全部数据 语法:UPDATE 表名 SET 字段名=值 命令:UPDATE student SET grade=80; 查 查询所有字段 语法:SELECT 字段名1,字段名2,… FROM 表名 (该语法也可以查询部分字段) 语法:SELECT * FROM 表名; 按条件查询 语法:SELECT 字段名1,字段名2,… FROM 表名 WHERE 条件表达式 命令:SELECT id,name FROM student2 WHERE id=4; 带IN关键字的查询 语法:SELECT * | 字段名1,字段名2,… FROM 表名 WHERE 字段名 [ NOT ] IN (元素1,元素2,…) 命令:SELECT * FROM student2 WHERE id IN (1,2,3); 带 BETWEEN AND 关键字的查询 语法:SELECT * | { 字段名1,字段名2,… } FROM 表名 WHERE 字段名 [ NOT ] BETWEEN 值1 AND 值2; 命令:SELECT id,name FROM students WHERE id BETWEEN 2 AND 5; 空值查询 语法:SELECT * | 字段名1,字段名2,… FROM 表名 WHERE 字段名 IS [ NOT ] NULL 命令:SELECT * FROM student2 WHERE gender IS NULL; 带 DISTINCT 关键字的查询 语法:SELECT DISTINCT 字段名 FROM 表名; 命令:SELECT DISTINCT gender FROM student2; 带 LIKE 关键字的查询 语法:SELECT * | 字段名1,字段名2,… FROM 表名 WHERE 字段名 [ NOT ] LIKE ‘匹配字符串’; 注意:%表示匹配任意长度的字符串,_表示匹配单个字符串 命令:SELECT id,name FROM student2 WHERE name LIKE "S%"; 命令:SELECT id,name FROM student2 WHERE name LIKE ‘w%g‘; 命令:SELECT id,name FROM student2 WHERE name NOT LIKE ‘%y%‘; 命令:SELECT * FROM student2 WHERE name LIKE ‘wu_ong‘; 带 AND 关键字的多条件查询 语法:SELECT * | 字段名1,字段名2,… FROM 表名 WHERE 条件表达式1 AND 条件表达式2 [ … AND 条件表达式 n ]; 命令:SELECT id,name FROM student2 WHERE id<5 AND gender=‘女‘; 带 OR 关键字的多条件查询 语法:SELECT * | 字段名1,字段名2,… FROM 表名 WHERE 条件表达式1 OR 条件表达式2 [ … OR 条件表达式 n ]; 命令:SELECT id,name ,gender FROM student2 WHERE id<3 OR gender=‘女‘; AND和OR一起使用时,AND的优先级高于OR 聚合函数 COUNT()函数:统计记录的条数 语法:SELECT COUNT(*) FROM 表名举例: 命令:SELECT COUNT(*) FROM student2; SUM()函数:求出表中某个字段所有值的总和 语法:SELECT SUM(字段名) FROM 表名; 命令:SELECT SUM(grade) FROM student2; AVG()函数:求出表中某个字段所有值的平均值 语法:SELECT AVG(字段名) FROM 表名; 命令:SELECT AVG(grade) FROM student2; MAX()函数:求出表中某个字段所有值的最大值 语法:SELECT MAX(字段名) FROM 表名; 命令:SELECT MAX(grade) FROM student2; MIN()函数:求出表中某个字段所有值的最小值 语法:SELECT MIN(字段名) FROM 表名; 命令:SELECT MIN(grade) FROM student2; 对查询结果进行排序 语法:SELECT 字段名1,字段名2,… FROM 表名 ORDER BY 字段名1 [ ASC | DESC ],字段名2 [ ASC | DESC ] (升序)命令:SELECT * FROM student2 ORDER BY grade; (降序)命令:命令:SELECT * FROM student2 ORDER BY grade DESC; 分组查询 语法:SELECT 字段名1,字段名2,… FROM 表名 GROUP BY 字段名1,字段名2,… [ HAVING 条件表达式 ]; 单独使用 GROUP BY 进行分组 命令:SELECT * FROM student2 GROUP BY gender; GROUP BY 和聚合函数一起使用 命令:SELECT COUNT(*) ,gender FROM student2 GROUP BY gender; GROUP BY 和 HAVING 关键字一起使用 命令:SELECT sum(grade),gender FROM student2 GROUP BY gender HAVING SUM(grade) < 300; 使用 LIMIT 限制查询结果的数量 语法:SELECT 字段名2,字段名2,… FROM 表名 LIMIT [ OFFSET ,] 记录数 (从0开始的4条)命令:SELECT * FROM student LIMIT 4; (从第五条开始的4条)命令:SELECT * FROM student2 ORDER BY grade DESC LIMIT 4,4; 为表和字段取别名 语法:SELECT * FROM 表名 [ AS ] 别名; 命令:SELECT * FROM student2 AS s WHERE s.gender=‘女‘; 为字段取别名 语法:SELECT 字段名 [ AS ] 别名 [ ,字段名 [AS] 别名,…] FROM 表名 ; 命令:SELECT name AS stu_name,gender AS stu_gender FROM student2; mysql的建表语句 #创建表,例子 #所谓的建表就是声明列的过程,所以要首先分析列 create table member( id int unsigned auto_increment primary key, username varchar(20) not null default ‘‘, gender char(1) not null default ‘‘, weight tinyint unsigned not null default 0, birth date not null default ‘0000-00-00‘, salary decimal(8,2) not null default 0.00, lastlogin int unsigned not null default 0 )engine myisam charset utf8;
以上是关于MySQL的增删改查的主要内容,如果未能解决你的问题,请参考以下文章