zoukankan      html  css  js  c++  java
  • MySQL常用语法

     
    一、 SQLECT 语法
    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限制返回行的数量。
    语句中的SELECT和FROM语句是必须的,其他部分是可选的。
     
    栗子:
    SELECT 
      lastname,firstname,jobtitle
    FROM 
      
    employees;
    SELECT * FROM employees;
     
    二、WHERE 语句
    WHERE子句允许根据指定的过滤表达式或条件来指定要选择的行。
    栗子:
    获取雇员中的销售代表;
    SELECT 
      lastname,firstname,jobtitle
    FROM
      employees
    WHERE
      jobtitle = 'Sales Rep';
    MySQL 会优先使用 where 进行匹配,在到 select 匹配。
     
    获取雇员中的销售代表,且办公室代码=1;
    SELECT 
      lastname,firstname,jobtitle
    FROM
      employees
    WHERE
      jobtitle='Sales Rep' AND officeCode = 1;
     
    操作符:
    = 等于,几乎任何数据类型都可用
    <> 或 != 不等于
    < 小于,通常使用数字和日志/时间数据类型
    > 大于,通常使用数字和日志/时间数据类型
    <= 大于或等于
    >= 大于或等于
     
    还有一些有用的运算符可以在WHERE子句中使用来形成复杂的条件,例如:
    • BETWEEN选择在给定范围值内的值。
    • LIKE匹配基于模式匹配的值。
    • IN指定值是否匹配列表中的任何值。
    • IS NULL检查该值是否为NULL。
     
    三、 INSERT 语句
    MySQL INSERT 语句将一行或者多行数据插入列表。
    栗子:
    INSERT INTO 
      tasks(subject,start_date,end_date,description)
    VALUES
      ('Learn MySQL INSERT','2017-11-27','2017-11-27','start learning..');
     
    将tasks表的所有数据复制插入到tasks_bak表
     INSERT INTO tasks_bak SELECT * FROM tasks;
     
    四、 UPDATE 语句
    UPDATE语句来更新表中的现有数据。也可以使用UPDATE语句来更改表中单个行,一组行或所有行的列值。
    栗子:
    更新 Mary 的邮箱。
    UPDATE 
      employees
    SET
      email='mary.new@yiibai.com'
    WHERE
      employeeNumber = 1056;
     
    更新多行数据:
    UPDATE 
      employees
    SET
      email='mary@yiibai.com',lastname='Hill'
    WHERE
      employeeNumber = 1056;
     
    从另一表选择数据插入当前表
    UPDATE customers 
    SET
      salesRepEmployeeNumber = (SELECT
          employeeNumber
        FROM
          employees
        WHERE
          jobtitle='Sales Rep'
        ORDER BY RAND() LIMIT 1)
    WHERE
      salesRepEmployeeNumber IS NULL;
    注释:
    从employees表随机抽取jobtitle=Sales Rep的一个employeeNumber数据,插入到customers的salesRepEmployeeNumber为空的列中。
     
    五、 DELETE语句
     
    DELETE FROM tasks WHERE task_id=3;
    删除后:
     
    六、 创建与删除数据库
    CREATE DATABASE IF NOT EXISTS mytest;
     
    删除数据库 mytest
    DROP DATABASE IF EXISTS mytest;
     
     
    七、 CREATE TABLE 语句
    CREATE TABLE [IF NOT EXISTS] table_name( column_list ) engine=table_type;
    其中engine是指定搜索引擎,不添加则使用默认InnoDB,有MyISAMHEAPEXAMPLECSVARCHIVEMERGEFEDERATEDNDBCLUSTER 可选。
     
    column_list详细语义:
    column_name data_type[size] [NOT NULL|NULL] [DEFAULT value] [AUTO_INCREMENT]
    PRIMARY KEY (col1,col2,...)
    • column_name指定列的名称。每列具有特定数据类型和大小,例如:VARCHAR(255)。
    • NOT NULLNULL表示该列是否接受NULL值。
    • DEFAULT值用于指定列的默认值。
    • AUTO_INCREMENT指示每当将新行插入到表中时,列的值会自动增加。每个表都有一个且只有一个 AUTO_INCREMENT列。
    • PRIMARY KEY 设置主键。
    栗子
    语法:
    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;
     
    八、 ALTER TABLE 语句
    语法:
    ALTER TABLE table_name action1[,action2,…]
    • 首先,在ALTER TABLE子句之后指定要更改的表名称。
    • 其次,列出一组要应用于该表的操作。操作可以是添加新列,添加主键,重命名表等任何操作。 ALTER TABLE语句允许在单个ALTER TABLE语句中应用多个操作,每个操作由逗号(,)分隔。
    栗子:
    ALTER TABLE 
      mytest
    ADD COLUMN
      task_id INT(11) NOT NULL;
    其他语法:
    ALTER TABLE mytest CHANGE COLUMN task_id task_id INT(10) NOT NULL AUTO_INCREMENT;
    ALTER TABLE mytest ADD COLUMN task_id INT(11) NOT NULL;
    ALTER TABLE tasks RENAME TO work_items; 

  • 相关阅读:
    【转】 web前端基础知识-(五)jQuery
    【转】 web前端基础知识-(四)DOM
    【转】 web前端基础知识-(三)JavaScript基本操作
    【转】 web前端基础知识-(二)CSS基本操作
    【转】 web前端基础知识-(一)html基本操作
    Vue的dom更新机制 & Vue的nextTick
    VUE项目中实现PDF预览
    WebView
    Nginx服务器
    前端存储 --- cookie & localStorage & sessionStorage & Web SQL & IndexDB & Cache Storage
  • 原文地址:https://www.cnblogs.com/kaiho/p/7911074.html
Copyright © 2011-2022 走看看