zoukankan      html  css  js  c++  java
  • Mysql 基础

    1 SELECT语句
    SELECT column_1, column_2, ... FROM table_1 [INNER | LEFT |RIGHT] JOIN table_2 ON conditions WHERE conditions GROUP BY column_1 HAVING group_conditions ORDER BY column_1 LIMIT offset, length;

      

    SELECT语句由以下列表中所述的几个子句组成:

    • SELECT之后是逗号分隔列或星号(*)的列表,表示要返回所有列。
    • FROM指定要查询数据的表或视图。
    • JOIN根据某些连接条件从其他表中获取数据。
    • WHERE过滤结果集中的行。
    • GROUP BY将一组行组合成小分组,并对每个小分组应用聚合函数。
    • HAVING过滤器基于GROUP BY子句定义的小分组。
    • ORDER BY指定用于排序的列的列表。
    • LIMIT限制返回行的数量。

    语句中的SELECTFROM语句是必须的,其他部分是可选的。

    2  update

    UPDATE [LOW_PRIORITY] [IGNORE] table_name 
    SET 
        column_name1 = expr1,
        column_name2 = expr2,
        ...
    WHERE
        condition;
    

      

    在上面UPDATE语句中:

    • 首先,在UPDATE关键字后面指定要更新数据的表名。
    • 其次,SET子句指定要修改的列和新值。要更新多个列,请使用以逗号分隔的列表。以字面值,表达式或子查询的形式在每列的赋值中来提供要设置的值。
    • 第三,使用WHERE子句中的条件指定要更新的行。WHERE子句是可选的。 如果省略WHERE子句,则UPDATE语句将更新表中的所有行。

    请注意,WHERE子句非常重要,所以不应该忘记指定更新的条件。 有时,您可能只想改变一行; 但是,可能会忘记写上WHERE子句,导致意外更新表中的所有行。

    MySQL在UPDATE语句中支持两个修饰符。

    • LOW_PRIORITY修饰符指示UPDATE语句延迟更新,直到没有从表中读取数据的连接。 LOW_PRIORITY对仅使用表级锁定的存储引擎(例如MyISAMMERGEMEMORY)生效。
    • 即使发生错误,IGNORE修饰符也可以使UPDATE语句继续更新行。导致错误(如重复键冲突)的行不会更新。
    DELETE FROM table_name
    ORDER BY c1, c2, ...
    LIMIT row_count;
    

      order by 默认升序排列

    数据库表包含具有特定数据类型(如数字或字符串)的多个列。 MySQL提供更多的数据类型,而不仅仅是数字或字符串。 MySQL中的每种数据类型都可以通过以下特征来确定:

    • 它用来表示数据值。
    • 占用的空间以及值是固定长度还是可变长度。
    • 数据类型的值可以被索引。
    • MySQL如何比较特定数据类型的值。
    数据类型指定值和范围
    char String(0~255)
    varchar String(0~255)
    tinytext String(0~255)
    text String(0~65536)
    blob String(0~65536)
    mediumtext String(0~16777215)
    mediumblob String(0~16777215)
    longblob String(0~4294967295)
    longtext String(0~4294967295)
    tinyint Integer(-128~127)
    smallint Integer(-32768~32767)
    mediumint Integer(-8388608~8388607)
    int Integer(-214847668~214847667)
    bigint Integer(-9223372036854775808~9223372036854775807)
    float decimal(精确到23位小数)
    double decimal(24~54位小数)
    decimal double转储为字符串形式
    date YYYY-MM-DD
    datetime YYYY-MM-DD HH:MM:SS
    timestamp YYYYMMDDHHMMSS
    time HH:MM:SS
    enum 选项值之一
    set 选项值子集
    boolean tinyint(1)

    MySQL数值数据类型

    在MySQL中,您可以找到所有SQL标准数字类型,包括精确数字数据类型和近似数字数据类型,包括整数,定点和浮点数。 此外,MySQL还具有用于存储位值的BIT数据类型。数字类型可以是有符号或无符号,但BIT类型除外。

    下表显示了MySQL中数字类型的总结:

    数字类型描述
    TINYINT 一个很小的整数
    SMALLINT 一个小的整数
    MEDIUMINT 一个中等大小的整数
    INT 一个标准整数
    BIGINT 一个大整数
    DECIMAL 定点数
    FLOAT 单精度浮点数
    DOUBLE 双精度浮点数
    BIT 一个字节字段

    MySQL布尔数据类型

    MySQL没有内置的 BOOLEAN 或 BOOL 数据类型。所以要表示布尔值,MySQL使用最小的整数类型,也就是TINYINT(1)。 换句话说,BOOLEANBOOLTINYINT(1)的同义词。

    MySQL字符串数据类型

    在MySQL中,字符串可以容纳从纯文本到二进制数据(如图像或文件)的任何内容。可以通过使用LIKE运算符,正则表达式和全文搜索,根据模式匹配来比较和搜索字符串。

    下表显示了MySQL中的字符串数据类型:

    字符串类型描述
    char 固定长度的非二进制(字符)字符串
    varchar 可变长度的非二进制字符串
    BINARY 一个固定长度的二进制字符串
    VARBINARY 一个可变长度的二进制字符串
    TINYBLOB 一个非常小的BLOB(二进制大对象)
    BLOB 一个小的BLOB(二进制大对象)
    MEDIUMBLOB 一个中等大小的BLOB(二进制大对象)
    LONGBLOB 一个大的BLOB(二进制大对象)
    TINYTEXT 一个非常小的非二进制字符串
    TEXT 一个小的非二进制字符串
    MEDIUMTEXT 一个中等大小的非二进制字符串
    LONGTEXT 一个很大的非二进制字符串
    ENUM 枚举; 每个列值可以被分配一个枚举成员
    SET 集合; 每个列值可以分配零个或多个SET成员

    MySQL日期和时间数据类型

    MySQL提供日期和时间的类型以及日期和时间的组合。 此外,MySQL还支持时间戳数据类型,用于跟踪表的一行中的更改。如果只想存储没有日期和月份的年份数据,则可以使用YEAR数据类型。

    下表说明了MySQL日期和时间数据类型:

    字符串类型描述
    DATE YYYY-MM-DD格式的日期值
    TIME hh:mm:ss格式的时间值
    DATETIME YYYY-MM-DD hh:mm:ss格式的日期和时间值
    TIMESTAMP YYYY-MM-DD hh:mm:ss格式的时间戳记值
    YEAR YYYYYY格式的年值

    MySQL空间数据类型

    MySQL支持许多包含各种几何和地理值的空间数据类型,如下表所示:

    字符串类型描述
    GEOMETRY 任何类型的空间值
    POINT 一个点(一对X-Y坐标)
    LINESTRING 曲线(一个或多个POINT值)
    POLYGON 多边形
    GEOMETRYCOLLECTION GEOMETRY值的集合
    MULTILINESTRING LINESTRING值的集合
    MULTIPOINT POINT值的集合
    MULTIPOLYGON POLYGON值的集合
  • 相关阅读:
    筱玛的迷阵探险(折半搜索+01字典树)
    递推
    thin mission 2021 10 8
    4级 -- 阅读
    c++——小知识
    stl
    string
    ting mission 2021.9.20
    ting mission 2021.9.27
    欧拉函数
  • 原文地址:https://www.cnblogs.com/dangkai/p/9528289.html
Copyright © 2011-2022 走看看