MYSQL基础操作之单表的增删改查
Posted 殊途
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MYSQL基础操作之单表的增删改查相关的知识,希望对你有一定的参考价值。
个人博客地址:https://www.vastyun.com
一、添加数据。
-- 1.创建表,并插入一定的数据。
1 CREATE TABLE STUDENT( 2 ID INT, 3 USERNAME VARCHAR(20), 4 SERVLET INT, 5 JSP INT, 6 ADDRESS VARCHAR(30) 7 ); 8 INSERT INTO STUDENT VALUES (1,\'张三\',23,84,\'京口区\'); 9 INSERT INTO STUDENT VALUES (2,\'李四\',36,74,\'润州区\'); 10 INSERT INTO STUDENT VALUES (3,\'王五\',74,24,\'京口区\'); 11 INSERT INTO STUDENT VALUES (4,\'赵六\',87,85,\'京口区\'); 12 INSERT INTO STUDENT VALUES (5,\'李七\',63,98,\'大港区\'); 13 INSERT INTO STUDENT VALUES (6,\'郑八\',99,89,null); 14 INSERT INTO STUDENT VALUES (7,\'孙九\',60,84,\'\');
-- 2.插入部分数据
INSERT INTO STUDENT (ID,USERNAME) VALUES(8,\'李十十\');
二、修改数据
--1.根据条件修改数据
UPDATE STUDENT SET SERVLET = 86 WHERE ID =1;
--2.修改多个字段的内容
UPDATE STUDENT SET SERVLET = 65,JSP = 73 WHERE ID = 2;
三、删除数据(暂无演示)
-- 7.删除所有数据
-- 可以带条件删除,只能删除表的数据,不能删除表的约束,即自增长数值接着上次删除的数值增长,删除数据可以回滚。
DELETE FROM STUDENT;
-- 8.带条件删除
DELETE FROM STUDENT WHERE SID = 2;
-- 9.另一种删除方式,输出表中所有数据
-- 不能带条件删除,既可以删除表的数据,也可以删除表的约束,永久删除。
TRUNCATE TABLE STUDENT;
四、单表查询
-- 1.查询所有列
SELECT * FROM STUDENT;
-- 2.查询指定列
SELECT ID ,USERNAME FROM STUDENT;
-- 3.查询时指定别名
-- 在多表查询时经常使用表的别名
SELECT ID AS \'编号\' ,USERNAME AS \'用户名\' FROM STUDENT AS S;
-- 4.A查询时添加常量列
SELECT ID ,USERNAME,\'这是一个班\' AS \'备注\' FROM STUDENT;
-- 5.查询时合并列
-- 查询每个学生的SERVLET和JSP的总成绩
-- 合并列只能合并数值类型的字段。
SELECT ID ,USERNAME ,(SERVLET+JSP) AS \'总成绩\' FROM STUDENT;
-- 6.查询去除重复记录
-- 查询所有JSP成绩可以出现的情况
SELECT DISTINCT ADDRESS FROM STUDENT;
-- 另一种语法
SELECT DISTINCT(ADDRESS) FROM STUDENT;
-- 7.条件查询(WHERE)
-- 7.1逻辑条件 AND OR
-- 查询 SID为2,且姓名为李四的学生
SELECT * FROM STUDENT WHERE ID = 2 AND USERNAME = \'李四\';
-- 7.1.1查询 SID为2,或姓名为张三的学生
SELECT * FROM STUDENT WHERE ID = 2 OR USERNAME = \'张三\';
-- 7.2比较条件 > < >= <= == <> BETWEEN AND
-- 7.2.1查询 SERVLET 成绩大于70分的学生
SELECT * FROM STUDENT WHERE SERVLET > 70;
-- 7.2.2查询 SERVLET 成绩大于60分小于80分的学生
SELECT * FROM STUDENT WHERE SERVLET >60 AND SERVLET < 80;
-- 7.2.3查询 SERVLET 成绩大于等于70小于等于80的学生
SELECT * FROM STUDENT WHERE SERVLET >=70 AND SERVLET <=80;
-- 7.2.4另外一种语法
SELECT * FROM STUDENT WHERE SERVLET BETWEEN 70 AND 80;
-- 7.2.5查询 姓名不等于张三的记录
SELECT * FROM STUDENT WHERE USERNAME <>\'张三\';
-- 7.3判空(null 空字符串) IS NULL IS NOT NULL =\'\' <>\'\'
-- 7.3.1判断NULL
SELECT * FROM STUDENT WHERE ADDRESS IS NULL;
-- 7.3.2判断空字符串
SELECT * FROM STUDENT WHERE ADDRESS =\'\';
-- 7.3.3查询地址为空的记录
SELECT * FROM STUDENT WHERE ADDRESS IS NULL OR ADDRESS = \'\';
-- 7.3.4查询地址不为空的记录
SELECT * FROM STUDENT WHERE ADDRESS IS NOT NULL AND ADDRESS <>\'\';
-- 7.4模糊条件 LIKE
-- 通常使用以下替换的标记:%:表示任意字符;_:表示一个字符
-- 7.4.1查询姓李学生的记录
SELECT * FROM STUDENT WHERE USERNAME LIKE \'李%\';
-- 8.聚合查询
-- 常用的聚合函数:SUM() AVG() MAX() MIN() COUNT()
-- 8.1查询学生SERVLET 总成绩
SELECT SUM(SERVLET) AS \'SERVLET的总成绩\' FROM STUDENT;
-- 8.2查询 学生 SERVLET 的平均分
SELECT AVG(SERVLET) AS \'SERVLET的平均分\' FROM STUDENT;
-- 8.3查询当前 SERVLET 的最高分
SELECT MAX(SERVLET) AS \'最高分\' FROM STUDENT;
-- 8.4查询 SERVLET的最低分
SELECT MIN(SERVLET) AS \'最低分\' FROM STUDENT;
-- 查询当前有多少学生 COUNT(字段)
SELECT COUNT(*) FROM STUDENT;
-- 9.分页查询 LIMIT 起始行,查询几行。主要用于分页。
-- 查询第1,2条记录
SELECT * FROM STUDENT LIMIT 0,2;
-- 10.排序,默认情况下按插入记录的顺序排序。ORDER BY
-- 10.1ASC 正序 DESC 倒序
SELECT * FROM STUDENT ORDER BY ID DESC;
-- 10.2按照SERVLET正序,再JSP倒序
SELECT * FROM STUDENT ORDER BY SERVLET ASC ,JSP DESC;
-- 11.分组查询 GROUP BY
-- 查询每个地区的人数
SELECT ADDRESS,COUNT(*) FROM STUDENT GROUP BY ADDRESS;
-- 12.分组查询后筛选
-- 查询分组后区域人数超过1个人的区域 GROUP BY 后面不能再跟条件where
SELECT ADDRESS ,COUNT(*) FROM STUDENT GROUP BY ADDRESS HAVING COUNT(*)>1;
以上是关于MYSQL基础操作之单表的增删改查的主要内容,如果未能解决你的问题,请参考以下文章