• MYSQL整理1(常用)


    常用的mysql语句整理:

    1)查询语句

    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之后是逗号分隔列或星号(*)的列表,表示要返回所有列。
    • FROM指定要查询数据的表或视图。
    • JOIN根据某些连接条件从其他表中获取数据。
    • WHERE过滤结果集中的行。
    • GROUP BY将一组行组合成小分组,并对每个小分组应用聚合函数。
    • HAVING过滤器基于GROUP BY子句定义的小分组。
    • ORDER BY指定用于排序的列的列表。
    • LIMIT限制返回行的数量。
    --- 示例
     mysql> SELECT lastname, firstname, jobtitle FROM employees;
    +-----------+-----------+----------------------+
    | lastname  | firstname | jobtitle             |
    +-----------+-----------+----------------------+
    | Murphy    | Diane     | President            |
    | Patterson | Mary      | VP Sales             |
    | Firrelli  | Jeff      | VP Marketing         |
    | Patterson | William   | Sales Manager (APAC) |
    | Bondur    | Gerard    | Sale Manager (EMEA)  |
    | Bow       | Anthony   | Sales Manager (NA)   |
    | Jennings  | Leslie    | Sales Rep            |
    | Thompson  | Leslie    | Sales Rep            |
    | Firrelli  | Julie     | Sales Rep            |
    | Patterson | Steve     | Sales Rep            |
    | Tseng     | Foon Yue  | Sales Rep            |
    | Vanauf    | George    | Sales Rep            |
    | Bondur    | Loui      | Sales Rep            |
    | Hernandez | Gerard    | Sales Rep            |
    | Castillo  | Pamela    | Sales Rep            |
    | Bott      | Larry     | Sales Rep            |
    | Jones     | Barry     | Sales Rep            |
    | Fixter    | Andy      | Sales Rep            |
    | Marsh     | Peter     | Sales Rep            |
    | King      | Tom       | Sales Rep            |
    | Nishi     | Mami      | Sales Rep            |
    | Kato      | Yoshimi   | Sales Rep            |
    | Gerard    | Martin    | Sales Rep            |
    +-----------+-----------+----------------------+
    23 rows in set
    

    2)插入语句

    INSERT INTO table(column1,column2...)
    VALUES (value1,value2,...);
    

    首先,在INSERT INTO子句之后,在括号内指定表名和逗号分隔列的列表。
    然后,将括号内的相应列的逗号分隔值放在VALUES关键字之后。

    USE testdb;  --- 选择数据库 ---
    --- 创建表 --
    CREATE TABLE IF NOT EXISTS tasks ( 
        task_id INT(11) AUTO_INCREMENT,
        subject VARCHAR(45) DEFAULT NULL,
        start_date DATE DEFAULT NULL,
        end_date DATE DEFAULT NULL,
        description VARCHAR(200) DEFAULT NULL,
        PRIMARY KEY (task_id)
    )ENGINE=InnoDB DEFAULT CHARSET=utf8;
    --- 插入数据 ---
    INSERT INTO tasks(subject,start_date,end_date,description)
    VALUES('Learn MySQL INSERT','2017-07-21','2017-07-22','Start learning..');
    

    3 )修改update语句

    UPDATE [LOW_PRIORITY] [IGNORE] table_name 
    SET 
        column_name1 = expr1,
        column_name2 = expr2,
        ...
    WHERE
        condition;
    
    • 首先,在UPDATE关键字后面指定要更新数据的表名。
    • 其次,SET子句指定要修改的列和新值。要更新多个列,请使用以逗号分隔的列表。以字面值,表达式或子查询的形式在每列的赋值中来提供要设置的值。
    • 第三,使用WHERE子句中的条件指定要更新的行。WHERE子句是可选的。 如果省略WHERE子句,则UPDATE语句将更新表中的所有行。
    --- 修改Murphy的jobtitle ----
    UPDATE employees 
    SET 
        jobtitle = 'Presidents'
    WHERE
        lastname = 'Murphy';
    

    4 )删除表数据

    DELETE FROM table_name
    WHERE condition;
    

    首先,指定删除数据的表(table_name)。
    其次,使用条件来指定要在WHERE子句中删除的行记录。如果行匹配条件,这些行记录将被删除。

    --- 删除firstname为Leslie的员工
    DELETE FROM employees 
    WHERE
        firstname = 'Leslie';
    
    --- 删除employees表中的所有行
    DELETE FROM employees;
    

    在执行上面查询语句后,employees表中的所有行都被删除。

    5 ) 创建与删除数据库

    --- 创建
    CREATE DATABASE [IF NOT EXISTS] database_name;
    
    • CREATE DATABASE语句的后面是要创建的数据库名称。
    • IF NOT EXISTS子句可防止创建数据库服务器中已存在的新数据库的错误。
    --- 查询数据库 ----
    mysql> SHOW DATABASES;
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | mysql              |
    | performance_schema |
    | testdb             |
    | yiibaidb           |
    +--------------------+
    5 rows in set
    

    在使用指定数据库之前,必须通过使用USE语句告诉MySQL要使用哪个数据库。

    --- 使用数据库 ---
    USE database_name;
    
    --- 删除数据库 ---
    DROP DATABASE [IF EXISTS] database_name;
    
    • 与CREATE DATABASE语句类似,IF EXISTS是该语句的可选部分,以防止您删除数据库服务器中不存在的数据库。

    6 )创建与删除数据表

    --- 创建表---
     CREATE TABLE [IF NOT EXISTS] table_name(
            column_list
    ) engine=table_type;
    
    • 首先,指定要在CREATE TABLE子句之后创建的表的名称。表名在数据库中必须是唯一的。 IF NOT EXISTS是语句的可选部分,允许您检查正在创建的表是否已存在于数据库中。 如果是这种情况,MySQL将忽略整个语句,不会创建任何新的表。 强烈建议在每个CREATE TABLE语句中使用IF NOT EXISTS来防止创建已存在的新表而产生错误。

    • 其次,在column_list部分指定表的列表。字段的列用逗号(,)分隔。

    • 第三,需要为engine子句中的表指定存储引擎。可以使用任何存储引擎,如:InnoDB,MyISAM,HEAP,EXAMPLE,CSV,ARCHIVE,MERGE, FEDERATED或NDBCLUSTER。如果不明确声明存储引擎,MySQL将默认使用InnoDB。

    --- 设置主键 ---
    PRIMARY KEY (col1,col2,...);
    
    ---- 示例:创建表tasks----
    CREATE TABLE IF NOT EXISTS tasks (
      task_id INT(11) NOT NULL AUTO_INCREMENT,
      subject VARCHAR(45) DEFAULT NULL,
      start_date DATE DEFAULT NULL,
      end_date DATE DEFAULT NULL,
      description VARCHAR(200) DEFAULT NULL,
      PRIMARY KEY (task_id)
    ) ENGINE=InnoDB;
    
    DROP TABLE  tbl_name;    --- 删除表,或---
    DROP TABLE IF EXISTS tbl_name;
    

    如果要清空表中所有的记录,可以用下面两种方法:

    delete from table1;
    truncate table table1;
    

    如果要删除表中部分记录,只能用delete语句

    delete from table1 where ....
    

    2017年11月21日

  • 相关阅读:
    NPOI开发手记
    jQuery.form开发手记
    jQuery.Flot开发手记
    node.js初探
    Linux私房菜阅读笔记
    c#实现常用排序算法
    Excel自定义函数开发手记
    浅谈知识管理
    Git学习手记
    c# 屏蔽快捷键
  • 原文地址:https://www.cnblogs.com/MR-FANWB/p/7904067.html
Copyright © 2020-2023  润新知