MySQL的增删改查

瘦欲@ 提交于 2019-12-01 11:51:57
增
指定字段名
语法: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;

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!