MySQL操作表中数据
MySQL操作表中数据
不善表演
都是转载的,都是转载的,都是转载的,都是转载的,都是转载的,都是转载的,都是转载的,都是转载的,都是转载的,都是转载的,都是转载的,都是转载的,都是转载的,都是转载的,都是转载的,都是转载的,都是转载的,都是转载的,都是转载的,都是转载的,都是转载的,都是转载的,都是转载的,都是转载的,都是转载的,都是转载的,都是转载的,都是转载的,都是转载的,都是转载的,都是转载的,都是转载的,都是转载的,都是转载的,都是转载的,都是转载的,都是转载的,都是转载的,都是转载的,都是转载的,都是转载的,都是转载的,都是转载的,都是转载的,都是转载的,
展开
-
25、Sql语句执行顺序
sql语句定义和执行顺序摘自《MySQL技术内幕:SQL编程》sql语句定义的顺序(1) SELECT (2)DISTINCT<select_list>(3) FROM <left_table>(4) <join_type> JOIN <right_table>(5) ON <join_condition>(6) WHERE <where_condition>(7) GROUP BY <group_转载 2020-10-12 10:28:46 · 95 阅读 · 0 评论 -
24、SQL注入是什么,如何避免SQL注入?
SQL 注入(SQL Injection)是发生在 Web 程序中数据库层的安全漏洞,是网站存在最多也是最简单的漏洞。主要原因是程序对用户输入数据的合法性没有判断和处理,导致攻击者可以在 Web 应用程序中事先定义好的 SQL 语句中添加额外的 SQL 语句,在管理员不知情的情况下实现非法操作,以此来实现欺骗数据库服务器执行非授权的任意查询,从而进一步获取到数据信息。简而言之,SQL 注入就是在用户输入的字符串中加入 SQL 语句,如果在设计不良的程序中忽略了检查,那么这些注入进去的 SQL 语句就会被数原创 2020-10-16 09:58:24 · 717 阅读 · 0 评论 -
23、MySQL如何处理无效数据值
MySQL处理数据的基本原则是“垃圾进来,垃圾出去”,通俗一点说就是你传给 MySQL 什么样的数据,它就会存储什么样的数据。如果在存储数据时没有对它们进行验证,那么在把它们检索出来时得到的就不一定是你所期望的内容。有几种 SQL 模式可以在遇到“非正常”值时抛出错误,如果你对其他数据库管理系统比较熟悉,会发现这种行为和其他的数据库管理系统很像。下面介绍 MySQL 默认情况下如何处理非正常数据和启用各种 SQL 模式时会对数据处理产生哪些影响。默认情况下,MySQL 会按照以下规则来处理越界(即超出原创 2020-10-12 10:29:20 · 1143 阅读 · 0 评论 -
22、UPDATE多表关联更新
MySQL 可以基于多表查询更新数据。对于多表的 UPDATE 操作需要慎重,建议在更新前,先使用 SELECT 语句查询验证更新的数据与自己期望的是否一致。下面我们建两张表,一张表为 product 表,用来存放产品信息,其中有产品价格字段 price;另外一张表是 product_price 表。现要将 product_price 表中的价格字段 price 更新为 product 表中价格字段 price 的 80%。操作前先分别查看两张表的数据,SQL 语句和运行结果如下:mysql>原创 2020-10-12 10:29:14 · 9012 阅读 · 0 评论 -
21、 TRUNCATE:清空表记录
MySQL 提供了 DELETE 和 TRUNCATE 关键字来删除表中的数据。本节主要讲解 TRUNCATE 关键字的使用。TRUNCATE 关键字用于完全清空一个表。其语法格式如下:TRUNCATE [TABLE] 表名其中,TABLE 关键字可省略。例 1新建表 tb_student_course,插入数据并查询,SQL 语句和运行结果如下:mysql> CREATE TABLE `tb_student_course` ( -> `id` int(4) NOT NUL原创 2020-10-16 09:58:01 · 762 阅读 · 0 评论 -
20、DELETE:删除数据
在 MySQL 中,可以使用 DELETE 语句来删除表的一行或者多行数据。删除单个表中的数据使用 DELETE 语句从单个表中删除数据,语法格式为:DELETE FROM <表名> [WHERE 子句] [ORDER BY 子句] [LIMIT 子句]语法说明如下:<表名>:指定要删除数据的表名。ORDER BY 子句:可选项。表示删除时,表中各行将按照子句中指定的顺序进行删除。WHERE 子句:可选项。表示为删除操作限定删除条件,若省略该子句,则代表删除该表中的原创 2020-10-16 09:57:54 · 1490 阅读 · 0 评论 -
19、UPDATE:修改数据(更新数据)
在 MySQL 中,可以使用 UPDATE 语句来修改、更新一个或多个表的数据。UPDATE 语句的基本语法使用 UPDATE 语句修改单个表,语法格式为:UPDATE <表名> SET 字段 1=值 1 [,字段 2=值 2… ] [WHERE 子句 ][ORDER BY 子句] [LIMIT 子句]语法说明如下:<表名>:用于指定要更新的表名称。SET 子句:用于指定表中要修改的列名及其列值。其中,每个指定的列值可以是表达式,也可以是该列对应的默认值。如果指定的原创 2020-10-15 10:47:25 · 6587 阅读 · 0 评论 -
18、INSERT:插入数据(添加数据)
数据库与表创建成功以后,需要向数据库的表中插入数据。在 MySQL 中可以使用 INSERT 语句向数据库已有的表中插入一行或者多行元组数据。基本语法INSERT 语句有两种语法形式,分别是 INSERT…VALUES 语句和 INSERT…SET 语句。1) INSERT…VALUES语句INSERT VALUES 的语法格式为:INSERT INTO <表名> [ <列名1> [ , … <列名n>] ]VALUES (值1) [… , (值n) ];原创 2020-10-15 10:47:19 · 27563 阅读 · 1 评论 -
17、REGEXP:正则表达式,查询和替换符合某个模式(规则)的文本内容
正则表达式主要用来查询和替换符合某个模式(规则)的文本内容。例如,从一个文件中提取电话号码,查找一篇文章中重复的单词、替换文章中的敏感语汇等,这些地方都可以使用正则表达式。正则表达式强大且灵活,常用于非常复杂的查询。MySQL 中,使用 REGEXP 关键字指定正则表达式的字符匹配模式,其基本语法格式如下:属性名 REGEXP '匹配方式'其中,“属性名”表示需要查询的字段名称;“匹配方式”表示以哪种方式来匹配查询。“匹配方式”中有很多的模式匹配字符,它们分别表示不同的意思。下表列出了 REGE原创 2020-10-15 10:47:12 · 1125 阅读 · 0 评论 -
16、子查询改写为表连接
子查询如递归函数一样,有时侯能达到事半功倍的效果,但是其执行效率较低。与表连接相比,子查询比较灵活,方便,形式多样,适合作为查询的筛选条件,而表连接更适合查看多表的数据。一般情况下,子查询会产生笛卡儿积,表连接的效率要高于子查询。因此在编写 SQL 语句时应尽量使用连接查询。表连接(内连接和外连接等)都可以用子查询替换,但反过来却不一定,有的子查询不能用表连接来替换。下面我们介绍哪些子查询的查询命令可以改写为表连接。在检查那些倾向于编写成子查询的查询语句时,可以考虑将子查询替换为表连接,看看连接的效率原创 2020-10-15 10:46:59 · 2336 阅读 · 0 评论 -
15、子查询注意事项
在完成较复杂的数据查询时,经常会使用到子查询,编写子查询语句时,要注意如下事项。1) 子查询语句可以嵌套在 SQL 语句中任何表达式出现的位置在 SELECT 语句中,子查询可以被嵌套在 SELECT 语句的列、表和查询条件中,即 SELECT 子句,FROM 子句、WHERE 子句、GROUP BY 子句和 HAVING 子句。前面已经介绍了 WHERE 子句中嵌套子查询的使用方法,下面是子查询在 SELECT 子句和 FROM 子句中的使用语法。嵌套在 SELECT 语句的 SELECT 子句中原创 2020-10-15 10:46:32 · 1199 阅读 · 0 评论 -
14、子查询
前面我们介绍了如何使用 SELECT、INSERT、UPDATE 和 DELETE 语句对 MySQL 进行简单访问和操作。下面在此基础上开始学习子查询。子查询是 MySQL 中比较常用的查询方法,通过子查询可以实现多表查询。子查询指将一个查询语句嵌套在另一个查询语句中。子查询可以在 SELECT、UPDATE 和 DELETE 语句中使用,而且可以进行多层嵌套。在实际开发时,子查询经常出现在 WHERE 子句中。子查询在 WHERE 中的语法格式如下:WHERE <表达式> <原创 2020-10-15 10:47:06 · 536 阅读 · 0 评论 -
13、 LEFT/RIGHT JOIN:外连接(左连接,右连接)
内连接的查询结果都是符合连接条件的记录,而外连接会先将连接的表分为基表和参考表,再以基表为依据返回满足和不满足条件的记录。外连接可以分为左外连接和右外连接,下面根据实例分别介绍左外连接和右外连接。左连接(表1参考表2)左外连接又称为左连接,使用 LEFT OUTER JOIN 关键字连接两个表,并使用 ON 子句来设置连接条件。左连接的语法格式如下:SELECT <字段名> FROM <表1> LEFT OUTER JOIN <表2> <ON子句>原创 2020-10-16 09:58:11 · 2892 阅读 · 1 评论 -
12、INNER JOIN:内连接
内连接内连接(INNER JOIN)主要通过设置连接条件的方式,来移除查询结果中某些数据行的交叉连接。简单来说,就是利用条件表达式来消除交叉连接的某些数据行。内连接使用 INNER JOIN 关键字连接两张表,并使用 ON 子句来设置连接条件。如果没有连接条件,INNER JOIN 和 CROSS JOIN 在语法上是等同的,两者可以互换。内连接的语法格式如下:SELECT <字段名> FROM <表1> INNER JOIN <表2> [ON子句]语法说明如原创 2020-10-15 10:46:25 · 9290 阅读 · 0 评论 -
11、CROSS JOIN:交叉连接(笛卡尔积)
前面所讲的查询语句都是针对一个表的,但是在关系型数据库中,表与表之间是有联系的,所以在实际应用中,经常使用多表查询。多表查询就是同时查询两个或两个以上的表。在 MySQL 中,多表查询主要有交叉连接、内连接和外连接。交叉连接(CROSS JOIN)一般用来返回连接表的笛卡尔积。本节的末尾介绍了笛卡尔积,不了解笛卡尔积的读者可以先阅读文章末尾部分,然后再继续学习交叉连接。交叉连接的语法格式如下:SELECT <字段名> FROM <表1> CROSS JOIN <表2&原创 2020-10-15 10:46:20 · 4656 阅读 · 0 评论 -
10、 HAVING:过滤分组
在 MySQL 中,可以使用 HAVING 关键字对分组后的数据进行过滤。使用 HAVING 关键字的语法格式如下:HAVING <查询条件>HAVING 关键字和 WHERE 关键字都可以用来过滤数据,且 HAVING 支持 WHERE 关键字中所有的操作符和语法。但是 WHERE 和 HAVING 关键字也存在以下几点差异:一般情况下,WHERE 用于过滤数据行,而 HAVING 用于过滤分组。WHERE 查询条件中不可以使用聚合函数,而 HAVING 查询条件中可以使用聚合原创 2020-10-15 10:46:12 · 1061 阅读 · 0 评论 -
9、使用GROUP BY分组查询
在 MySQL 中,GROUP BY 关键字可以根据一个或多个字段对查询结果进行分组。使用 GROUP BY 关键字的语法格式如下:GROUP BY <字段名>其中,“字段名”表示需要分组的字段名称,多个字段时用逗号隔开。GROUP BY单独使用单独使用 GROUP BY 关键字时,查询结果会只显示每个分组的第一条记录。例 1下面根据 tb_students_info 表中的 sex 字段进行分组查询,SQL 语句和运行结果如下:mysql> SELECT name,s原创 2020-10-15 10:46:06 · 2777 阅读 · 0 评论 -
8、 IS NULL:空值查询
MySQL 提供了 IS NULL 关键字,用来判断字段的值是否为空值(NULL)。空值不同于 0,也不同于空字符串。如果字段的值是空值,则满足查询条件,该记录将被查询出来。如果字段的值不是空值,则不满足查询条件。使用 IS NULL 的基本语法格式如下:IS [NOT] NULL其中,“NOT”是可选参数,表示字段值不是空值时满足条件。例 1下面使用 IS NULL 关键字来查询 tb_students_info 表中 login_date 字段是 NULL 的记录。mysql> S原创 2020-10-14 10:41:22 · 2347 阅读 · 0 评论 -
7、LIKE:模糊查询
在 MySQL 中,LIKE 关键字主要用于搜索匹配字段中的指定内容。其语法格式如下:[NOT] LIKE '字符串'其中:NOT :可选参数,字段中的内容与指定的字符串不匹配时满足条件。字符串:指定用来匹配的字符串。“字符串”可以是一个很完整的字符串,也可以包含通配符。LIKE 关键字支持百分号“%”和下划线“_”通配符。通配符是一种特殊语句,主要用来模糊查询。当不知道真正字符或者懒得输入完整名称时,可以使用通配符来代替一个或多个真正的字符。带有“%”通配符的查询“%”是 My原创 2020-10-14 10:41:12 · 2872 阅读 · 0 评论 -
6、WHERE:条件查询数据
在 MySQL 中,如果需要有条件的从数据表中查询数据,可以使用 WHERE 关键字来指定查询条件。使用 WHERE 关键字的语法格式如下:WHERE 查询条件查询条件可以是:带比较运算符和逻辑运算符的查询条件带 BETWEEN AND 关键字的查询条件带 IS NULL 关键字的查询条件带 IN 关键字的查询条件带 LIKE 关键字的查询条件单一条件的查询语句单一条件指的是在 WHERE 关键字后只有一个查询条件。例 1在 tb_students_info 数据表中查询身高为原创 2020-10-14 10:41:01 · 1213 阅读 · 0 评论 -
5、ORDER BY:对查询结果排序
通过条件查询语句可以查询到符合用户需求的数据,但是查询到的数据一般都是按照数据最初被添加到表中的顺序来显示。为了使查询结果的顺序满足用户的要求,MySQL 提供了 ORDER BY 关键字来对查询结果进行排序。在实际应用中经常需要对查询结果进行排序,比如,在网上购物时,可以将商品按照价格进行排序;在医院的挂号系统中,可以按照挂号的先后顺序进行排序等。ORDER BY 关键字主要用来将查询结果中的数据按照一定的顺序进行排序。其语法格式如下:ORDER BY <字段名> [ASC|DESC]原创 2020-10-14 10:40:54 · 2623 阅读 · 0 评论 -
4、 LIMIT:限制查询结果的条数
当数据表中有上万条数据时,一次性查询出表中的全部数据会降低数据返回的速度,同时给数据库服务器造成很大的压力。这时就可以用 LIMIT 关键字来限制查询结果返回的条数。LIMIT 是 MySQL 中的一个特殊关键字,用于指定查询结果从哪条记录开始显示,一共显示多少条记录。LIMIT 关键字有 3 种使用方式,即指定初始位置、不指定初始位置以及与 OFFSET 组合使用。指定初始位置LIMIT 关键字可以指定查询结果从哪条记录开始显示,显示多少条记录。LIMIT 指定初始位置的基本语法格式如下:LI原创 2020-10-13 10:04:31 · 5364 阅读 · 0 评论 -
3、AS:设置别名
为了查询方便,**MySQL 提供了 AS 关键字来为表和字段指定别名。**本节主要讲解如何为表和字段指定一个别名。为表指定别名当表名很长或者执行一些特殊查询的时候,为了方便操作,可以为表指定一个别名,用这个别名代替表原来的名称。为表指定别名的基本语法格式为:<表名> [AS] <别名>其中各子句的含义如下:<表名>:数据库中存储的数据表的名称。<别名>:查询时指定的表的新名称。AS关键字可以省略,省略后需要将表名和别名用空格隔开。注原创 2020-10-13 10:04:13 · 604 阅读 · 0 评论 -
2、MySQL使用(DISTINCT)过滤重复数据
在 MySQL 中使用 SELECT 语句执行简单的数据查询时,返回的是所有匹配的记录。如果表中的某些字段没有唯一性约束,那么这些字段就可能存在重复值。为了实现查询不重复的数据,MySQL 提供了 DISTINCT 关键字。DISTINCT 关键字的主要作用就是对数据表中一个或多个字段重复的数据进行过滤,只返回其中的一条数据给用户。DISTINCT 关键字的语法格式为:SELECT DISTINCT <字段名> FROM <表名>;其中,“字段名”为需要消除重复记录的字段名原创 2020-10-13 10:04:05 · 817 阅读 · 0 评论 -
1、SELECT:数据表查询语句
在 MySQL 中,可以使用 SELECT 语句来查询数据。查询数据是指从数据库中根据需求,使用不同的查询方式来获取不同的数据,是使用频率最高、最重要的操作。SELECT 的语法格式如下:SELECT{* | <字段列名>}[FROM <表 1>, <表 2>…[WHERE <表达式>[GROUP BY <group by definition>[HAVING <expression> [{<operator>原创 2020-10-13 10:03:55 · 3493 阅读 · 1 评论