2026/2/13 10:02:46
网站建设
项目流程
学校网站建设的技术方案,什么网站可以做兼职美工,成都vi设计公司,做p2p网站多少钱一.表操作
MySQL的操作中#xff0c;一些专用的词无论是大写还是小写都是可以通过的。
1.插入数据INSERT [INTO] table_name (列名称…)VALUES (列数据…), (列数据…);[]表示可有可无#xff0c;插入时#xff0c;如果不指定要插入的列#xff0c;则表示默认全…一.表操作MySQL的操作中一些专用的词无论是大写还是小写都是可以通过的。1.插入数据INSERT [INTO] table_name (列名称…)VALUES (列数据…), (列数据…);[]表示可有可无插入时如果不指定要插入的列则表示默认全部列都要插入数据插入数据的顺序必须和列的顺序一致。如果插入单行数据则只需一个()“如果想要多行插入则可以同时追加多个”()。2.更新数据此外由于主键或者唯一键对应的值已经存在而导致插入失败则可以更新数据INSERT INTO 表名称 (列名称…) VALUES (列数据…)ON DUPLICATE KEY UPDATE 列名称新数据…;除这条语句之外还有一条语句名为替换也可以解决主键或唯一键冲突问题REPLACE INTO 表名称(列名称…) VALUES (列数据…);如果没有发生冲突就相当于直接插入如果发生冲突则删除原有数据重新插入新数据。二.查询1.查找数据1整体查找全列查询select * from 表名称;指定列查询select 列名称…from 表名称;查询字段表达式select 列名称… 表达式 from 表名称;例如SELECT id, name, 10 FROM exam_result;±–±-------±—| id | name | 10 |±–±-------±—| 1 | 张三 | 10 || 2 | 李四 | 10 || 3 | 王五 | 10 || 4 | 赵六 | 10 |如果表达式与字段无关则会生成一列表达式数据。SELECT id, name, english 10 FROM exam_result;±–±--------±----------------| id | name | english 10|±–±--------±----------------| 1 |张三 | 66 || 2 |李四 | 87 || 3 |王五 | 100 || 4 |赵六 | 77 |表达式与字段有关生成表达式为english 10即将学生的英语成绩10分的列并显示。SELECT id, name, chinese math english FROM exam_result;还有如上表达式表示显示学生汉数英的成绩之和。SELECT id, name, chinese math english 总分 FROM exam_result;还可以给表达式指定别名即在表达式后追加别名。SELECT DISTINCT 字段 FROM 表名称;通过DISTINCT可以将查询结果去重。2定向查找上边的查找操作都是对一整个列的数据进行查找如果我们想要对列中的特定数据进行查找则可以通过WHERE条件。比较运算符, , , 大于大于等于小于小于等于等于NULL 不安全例如 NULL NULL 的结果是 NULL等于NULL 安全例如 NULL NULL 的结果是 TRUE(1)!, 不等于BETWEEN a0 AND a1范围匹配[a0, a1]如果 a0 value a1返回 TRUE(1)IN (option, …)如果是 option 中的任意一个返回 TRUE(1)IS NULL是 NULLIS NOT NULL不是 NULLLIKE模糊匹配。% 表示任意多个包括 0 个字符_ 表示任意一个字符逻辑运算符AND多个条件必须都为 TRUE(1)结果才是 TRUE(1)OR任意一个条件为 TRUE(1), 结果为 TRUE(1)NOT条件为 TRUE(1)结果为 FALSE(0)where基本使用select 字段… from 表名称 where 条件;例如查找一张成绩表中英语不及格的学生名单SELECT name, english FROM exam_result WHERE english 60;多个条件可以通过逻辑运算符相互组合。如果现在要查找一个同学但是不记得他的全名只记得他的姓为孙该怎么找到他呢SELECT name FROM exam_result WHERE name LIKE ‘孙%’;SELECT name FROM exam_result WHERE name LIKE ‘孙_’;通过“LIKE”条件 其中‘%’表示该同学的名字可以是任意数量的字符‘_’表示该同学的名字只有一个字。值得注意的是在MySQL中null 、0、和空字符’ 三者互不相干执行相关的查询时应注意。2.排序数据对数据进行排序通常是查找到对应数据后的操作。select 列名称… from 表名称 ORDER BY 列名称 排序方式;– ASC 为升序从小到大– DESC 为降序从大到小– 如果不指明排序方式则默认为 ASC当数据中有null时null视为比任何值都小。此外当出现多字段排序比如查询同学各门成绩依次按 数学降序英语升序语文升序的方式显示查询后的结果并不是说就是按照上述排序方式将单独的科目进行排序而是按照书写优先级先将整体数据按照数学降序排序如果出现数学成绩相等再将其后的英语成绩按照升序排序如果英语成绩也相等则最后排序语文成绩。3.筛选数据当数据量过大时如果直接查询可能会引起诸多不便比如直接就显示到了数据的末尾几行。因此可以通过LIMIT 按行筛选数据的方式来查询对应行的数据信息起始下标为 0从 0 开始筛选 n 条结果SELECT 列名称…FROM 表名称LIMIT n;从 s 开始筛选 n 条结果SELECT 列名称… FROM 表名称LIMIT s, n;从 s 开始筛选 n 条结果比第二种用法更明确建议使用SELECT 列名称… FROM 表名称LIMIT n OFFSET s;因此当我们对未知表进行查询时最好加一条 LIMIT 1避免因为表中数据过大查询全表数据导致数据库卡死。4.更新数据数据更新必须配合where使用因为你不可能将一整列的数据全部更新一般都是对特定行的数据进行更新。UPDATE 表名称 SET 列名称 新数据[, column expr …] [WHERE …] [ORDER BY …] [LIMIT …]可以同时对某一行的多个数据进行更新也可以对更新后的数据进行排序筛选等操作。值得注意的是当需要对某数据进行加减运算时在MySQL中不支持 “” 等操作必须采用“新数据 原数据 改变值”的方式。5.删除数据DELETE FROM table_name [WHERE …] [ORDER BY …] [LIMIT …]删除数据时可以使用where来指定要删除的数据如果不使用where则默认为删除整张表的全部数据。值得注意的是删除数据不会影响表的各种结构定义就仅仅是删除插入的数据诸如表字段的类型以及表的各种约束条件等都不会受到影响。特别要注意的是delete删除数据不会对自增长****AUTO_INCREMENT产生影响比如说原本自增长已经到了5此时删除全部数据在进行插入自增长依然会为6。6.截断表TRUNCATE [TABLE] table_name;截断表truncate同样是清空表的全部数据与delete不同的是它会将自增长****AUTO_INCREMEN同样清除从AUTO_INCREMEN的初始值从头开始增长。7.聚合函数COUNT([DISTINCT] expr)返回查询到的数据的数量SUM([DISTINCT] expr)返回查询到的数据的总和不是数字没有意义AVG([DISTINCT] expr)返回查询到的数据的平均值不是数字没有意义MAX([DISTINCT] expr)返回查询到的数据的最大值不是数字没有意义MIN([DISTINCT] expr)返回查询到的数据的最小值不是数字没有意义聚合函数可以选择对去重后的数据操作通常和数据查找共同使用例如查找某表总共有多少行SELECT COUNT(*) FROM 表名称;使用 * 做统计不受 NULL 影响。8.数据分组在select中使用group by 子句可以对指定列进行分组查询。select 列名称… from table group by 列名称;所谓分组查询就是对表中某一列中的相同数据组合例如有一张完整的学生表数据其中包含名称为班级号的字段现在要查询每个班级分别有多少学生就可以通过分组查询select class_id count(*)from studentgroup by class_id;having和group by配合使用对group by结果进行过滤作用类似用whereselect 列名称… from table group by 列名称 having 过滤条件;