zoukankan      html  css  js  c++  java
  • MySQL教程(十一)—— 操作数据表中的记录

    1  插入记录

    1.1  INSERT

    1 INSERT [INTO] tb1_name[(col_name,...)] {VALUES | VALUE} ({expr | DEFAULT},...),(...),...

    (先创建一张数据表)

    (不指定列,插入一行数据,注意id主键的赋值)

    (查看数据表)

    (再插入一条数据,并查询,可以发现id递增)

    (对于主键,可使用“NULL”或“DEFAULT”对其赋值)

    (若省略列名,则所有的列都要赋值,否则出现错误)

    (对于数值型数据,可以使用表达式赋值)

    (定义列的时候,我们将age设有候选值10)

    (插入数据时,将age写为DEFAULT)

    (查看数据表,发现age已被自动赋值为候选值10)

    同时,可以插入多条数据,只要逗号隔开即可,也可以使用函数

    (查看数据表,第七行的password是‘123’的哈希值)

    1.2  INSERT SET

    1 INSERT [INTO] tb1_name SET col_name={expr | DEFAULT},...

    说明:与第一种方式的区别在于,此方法可以使用子查询(SubQuery)

    注:只能一次性插入一条记录,不能一次性插入多条数据。

    (使用该语句插入数值,并查看数据表)

    1.3  INSERT SELECT

    1 INSERT [INTO] tb1_name [(col_name,...)] SELECT...

    说明:此方法可以将查询结果插入到指定数据表。

    五分钟开始

    2  更新记录(UPDATE)

    2.1  单表更新

    1 UPDATE [LOW_PRIORITY] [IGNORE] tb1_name SET col_name1={expr1|DEFAULT} [,col_name2={expr2|DEFAULT}]...[WHERE where_condition]

    说明:省略WHERE语句将导致所有的数据都要更新。

    (将所有的“age”全部加5)

    (查看数据表验证,与上相比确实加5)

    (改变多列数据且运用表达式,并查看数据表验证)

    (利用WHERE将id为偶数的age加10,并查看数据表)

    2.2  多表更新

    3  删除记录(DELETE)

    3.1  单表删除

    1 DELETE FROM tb1_name [WHERE where_condition]

    说明:省略WHERE语句将导致所有的数据删除。

    (将id=6的那条数据删除,并查看数据表验证)

    (将数据删除后,即时id号不连续,添加数据后仍以最大的id号加1为标准,而并不是去补充删除了的id号)

    3.2  多表删除

    4  查询表达式解析(SELECT)

    4.1  FROM基础语句

    1 SELECT select_expr [,select_expr...]
    2 [
    3     FROM ta1_name
    4     [WHERE where_condition]
    5     [GROUP BY {col_name | position} [ASC | DESC],...]
    6     [HAVING where_condition]
    7     [ORDER BY {col_name | expr | position} [ASC | DESC],...]
    8     [LIMIT {[offset,] row_count | row_count OFFSET offset}]
    9 ]
    • 每一个表达式表示想要的一列,必须有至少一个。
    • 多个列之间以英文逗号分隔。
    • 星号(*)表示所有列。tb1_name.*可以表示命名表的所有列。
    • 查询表达式可以使用 [AS] alias_name为其赋予别名。
    • 别名可用于GROUP BY , ORDRE BY或HAVING子句。

    (查看数据表中有多少列)

    (返回数据表的id和username列,列的顺序是按照程序的顺序“id,username”排列的)

    (tb1_name.*可以表示命名表的所有列,适用于后期学习的数据表连接)

    (可以使用 [AS] alias_name为其赋予别名,AS可以省略但是不建议)

    4.2  WHERE语句进行条件查询

    • 对记录进行过滤,如果没有指定WHERE子句,则显示所有记录。
    • 在WHERE表达式中,可以使用MySQL支持的函数或运算符。

    (将id为偶数的id、username显示)

    (将id大于2的数据输出)

    (将id大于2或者小于1的数据输出,注意OR语句)

    (将id大于2并且password等于123的数据输出,注意AND语句)

    (将username为T开头的数据检索出来)

    (注意与上式的区别:‘%’是任意字符,‘_’是单个字符)

    4.3  GROUP BY对查询结果分组

    (当前数据表中的所有数据)

    (对数据中的“sex”分组,结果为:NULL和0)

    4.4  HAVING设置分组条件

    (分组时,要么HAVING后的指数在SELECT内(第二条语句),要么是聚合函数的形式(第三条语句),否则将会出现错误(第一条语句))

    4.5  ORDER BY对查询结果排序

    (普通:遵循了记录的插入顺序)

    (按照插入的倒序排列)

    (按照age从小大到大排序(默认ASC正序))

    (按照age从大到小排序)

    可以根据多个数据排序,如:

    1 SELECT * FROM users ORDER BY age,id;//对于age相同的值,根据id排序

    4.6  LIMIT限制查询数量

    (第一种语法结构:返回前5条数据)

    (第二种语法结构:返回从5开始的2条数据)

    (相应的,可以多条语句组合使用)

    4.7  附录

    23个MySQL常用查询

    MySQL查询、子查询、连接查询

  • 相关阅读:
    数据库高级链表查询,重点可以多看看
    数据库多表查询,一对一关系,一对多关系,多对多关系
    Django基础
    前端之JavaScript
    前端之Jquery
    CF888E Maximum Subsequence-折半搜索
    HNOI2010 平面图判定
    CEOI 2011Traffic
    LuoguP1710 地铁涨价
    Luogu2059 卡牌游戏-概率DP
  • 原文地址:https://www.cnblogs.com/qijunhui/p/8454327.html
Copyright © 2011-2022 走看看