zoukankan      html  css  js  c++  java
  • MySql基础操作

     

    DDL

    数据库

     -- 创建数据库
     create database 数据库名;
     ​
     -- 删除数据库
     drop database 数据库名;

     
     
     -- 创建表
     CREATE TABLE table_name (column_name column_type)[ENGINE=InnoDB DEFAULT CHARSET=utf8];
     ​
     -- 删除表
     DROP TABLE table_name ;

    
    

    修改Alter

    如果你需要指定新增字段的位置,可以使用MySQL提供的关键字 FIRST (设定位第一列), AFTER 字段名(设定位于某个字段之后)。

    尝试以下 ALTER TABLE 语句, 在执行成功后,使用 SHOW COLUMNS 查看表结构的变化:

     ALTER TABLE testalter_tbl DROP i;
     ALTER TABLE testalter_tbl ADD i INT FIRST;
     ALTER TABLE testalter_tbl DROP i;
     ALTER TABLE testalter_tbl ADD i INT AFTER c;

    FIRST 和 AFTER 关键字可用于 ADD 与 MODIFY 子句,所以如果你想重置数据表字段的位置就需要先使用 DROP 删除字段然后使用 ADD 来添加字段并设置位置.

    修改字段默认值

     
    ALTER TABLE testalter_tbl ALTER i SET DEFAULT 1000;

    修改表名

     ALTER TABLE testalter_tbl RENAME TO alter_tbl;

    复制表

     -- 复制表的元数据信息TEMPORARY
     CREATE TABLE targetTable LIKE sourceTable;
     -- 插入数据
     INSERT INTO targetTable SELECT * FROM sourceTable;

    DML

    插入数据

     -- 复制表的元数据信息TEMPORARY
     CREATE TABLE targetTable LIKE sourceTable;
     -- 插入数据
     INSERT INTO targetTable SELECT * FROM sourceTable;

    修改更新

     UPDATE table_name SET field1=new-value1, field2=new-value2
     [WHERE Clause]
    • 你可以同时更新一个或多个字段。

    • 你可以在 WHERE 子句中指定任何条件。

    • 你可以在一个单独表中同时更新数据。

    删除记录

     DELETE FROM table_name [WHERE Clause]
    • 如果没有指定 WHERE 子句,MySQL 表中的所有记录将被删除。

    • 你可以在 WHERE 子句中指定任何条件

    • 您可以在单个表中一次性删除记录。

    DQL

    查询语句

     SELECT column_name,column_name
     FROM table_name
     [WHERE Clause]
     [LIMIT N][ OFFSET M]
    • 查询语句中你可以使用一个或者多个表,表之间使用逗号(,)分割,并使用WHERE语句来设定查询条件。

    • SELECT 命令可以读取一条或者多条记录。

    • 你可以使用星号(*)来代替其他字段,SELECT语句会返回表的所有字段数据

    • 你可以使用 WHERE 语句来包含任何条件。

    • 你可以使用 LIMIT 属性来设定返回的记录数。

    • 你可以通过OFFSET指定SELECT语句开始查询的数据偏移量。默认情况下偏移量为0。

    条件语句

     SELECT field1, field2,...fieldN FROM table_name1, table_name2...
     [WHERE condition1 [AND [OR]] condition2.....
    • 查询语句中你可以使用一个或者多个表,表之间使用逗号, 分割,并使用WHERE语句来设定查询条件。

    • 你可以在 WHERE 子句中指定任何条件。

    • 你可以使用 AND 或者 OR 指定一个或多个条件。

    • WHERE 子句也可以运用于 SQL 的 DELETE 或者 UPDATE 命令。

    • WHERE 子句类似于程序语言中的 if 条件,根据 MySQL 表中的字段值来读取指定的数据。

    模糊查询

     SELECT field1, field2,...fieldN 
     FROM table_name
     WHERE field1 LIKE condition1 [AND [OR]] filed2 = 'somevalue'
    • 你可以在 WHERE 子句中指定任何条件。

    • 你可以在 WHERE 子句中使用LIKE子句。

    • 你可以使用LIKE子句代替等号 =

    • LIKE 通常与 % 一同使用,类似于一个元字符的搜索。

    • 你可以使用 AND 或者 OR 指定一个或多个条件。

    • 你可以在 DELETE 或 UPDATE 命令中使用 WHERE...LIKE 子句来指定条件。

     结果拼接UNION

     SELECT expression1, expression2, ... expression_n
     FROM tables
     [WHERE conditions]
     UNION [ALL | DISTINCT]
     SELECT expression1, expression2, ... expression_n
     FROM tables
     [WHERE conditions];
    • expression1, expression2, ... expression_n: 要检索的列。

    • tables: 要检索的数据表。

    • WHERE conditions: 可选, 检索条件。

    • DISTINCT: 可选,删除结果集中重复的数据。默认情况下 UNION 操作符已经删除了重复数据,所以 DISTINCT 修饰符对结果没啥影响。

    • ALL: 可选,返回所有结果集,包含重复数据。

    排序

     SELECT field1, field2,...fieldN FROM table_name1, table_name2...
     ORDER BY field1 [ASC [DESC][默认 ASC]], [field2...] [ASC [DESC][默认 ASC]]
    • 你可以使用任何字段来作为排序的条件,从而返回排序后的查询结果。

    • 你可以设定多个字段来排序。

    • 你可以使用 ASC 或 DESC 关键字来设置查询结果是按升序或降序排列。 默认情况下,它是按升序排列。

    • 你可以添加 WHERE...LIKE 子句来设置条件。

    分组

     SELECT column_name, function(column_name)
     FROM table_name
     WHERE column_name operator value
     GROUP BY column_name;

    连接

    • INNER JOIN(内连接,或等值连接):获取两个表中字段匹配关系的记录。(都有的)

    • LEFT JOIN(左连接):获取左表所有记录,即使右表没有对应匹配的记录。

    • RIGHT JOIN(右连接): 与 LEFT JOIN 相反,用于获取右表所有记录,即使左表没有对应匹配的记录。

     
    SELECT a.runoob_id, a.runoob_author, b.runoob_count FROM runoob_tbl a INNER JOIN tcount_tbl b ON a.runoob_author = b.runoob_author;

    NULL值处理

    SELECT 命令及 WHERE 子句来读取数据表中的数据,但是当提供的查询条件字段为 NULL 时,该命令可能就无法正常工作。

    为了处理这种情况,MySQL提供了三大运算符:

    • IS NULL: 当列的值是 NULL,此运算符返回 true。

    • IS NOT NULL: 当列的值不为 NULL, 运算符返回 true。

    • <=>: 比较操作符(不同于 = 运算符),当比较的的两个值相等或者都为 NULL 时返回 true。

    关于 NULL 的条件比较运算是比较特殊的。你不能使用 = NULL 或 != NULL 在列中查找 NULL 值 。

    在 MySQL 中,NULL 值与任何其它值的比较(即使是 NULL)永远返回 NULL,即 NULL = NULL 返回 NULL 。

    MySQL 中处理 NULL 使用 IS NULL 和 IS NOT NULL 运算符。

    注意:

     select * , columnName1+ifnull(columnName2,0) from tableName;

    columnName1,columnName2 为 int 型,当 columnName2 中,有值为 null 时,columnName1+columnName2=null, ifnull(columnName2,0) 把 columnName2 中 null 值转为 0。

    IN语句

    表示字段值在后面列表中选择(IN)或者不在列表中(NOT IN)

    WHERE column IN (value1,value2,...)
    WHERE column NOT IN (value1,value2,...)

    函数

    拼接字符串concat(str1,str2,…)

    返回的结果为拼接好的字符串

    大小写字符串

    upper(str) lower(str)

    截取字符串substr

    substr(str,begin,stop)

  • 相关阅读:
    R语言中gsub使用示例记录
    linux 系统中wget实现并行下载
    R语言中实现将多行数据合并为一行
    python安装包国内镜像加速
    VMware Workstation 与 Device/Credential Guard不兼容
    缩放矩阵, 这里面有关于矩阵的 种种操作 这个要学下 很有用
    ffd 点的控制效果、
    摘抄 : max mel 的一些用法。
    帮朋友写的查找选择的父子骨骼。之前我都是用递归,这个好、
    距离的算法。 下面两个是对等的。
  • 原文地址:https://www.cnblogs.com/DemonQin/p/12892979.html
Copyright © 2011-2022 走看看