首页 > 代码库 > 对MySQL的几个入门操作

对MySQL的几个入门操作

  一.最基本的DDL语句

  1.创建数据库

  命令:created  database 数据库名;

  2.使用数据库

  命令:use 数据库名;

  3.删除数据库

  命令:drop database 数据库名

  二.简单的DML操作

  1.增

  命令:insert into 表名 (列名) values (数据); //列名可以是多个,列与列之间用逗号分隔,数据类型和顺序与列名一致;

  2.改

  命令:update 表名 set 列 = 新值 where 条件;//如果不使用where过滤,会修改一整列;

  3.删

  命令:delete from 表名 where 条件 ;//不使用where删除全部,可用日志恢复;

  命令:truncate table 表名;//无法恢复

  4.写在where 之后的条件语句

    a.运算符:

        等于: = 

        不等于: !=/<>

        大于/小于:>/</>=/<=

        逻辑 :与--and;或--or;

        模糊匹配:使用关键字--like ;%表示0个或多个字符;_表示一个字符

        例: ‘%贝%‘表示含有贝字的所有内容;‘_贝_‘表示三个字符贝在中间;注:汉字在数据库需要3个字符表示;

        in(1,2,3)--表示列中有这三个数组的满足条件;

        not inin(1,2,3)--表示列中有这三个数组的不满足条件;

  三.简单的DQL语句

  1.基本语法:select 要查询列 from 表名 where 过滤条件 ouder by 排序;

  其中 :select和from两个关键字是基本语法;where和 ouder by是可选语法;

  2.表名/列 后跟as 再跟别名; //可以给表或列取别名便于在复杂情况下区分;

  3.between 数据 and 数据;表示两个数据之间的数据;

  4.distince 列名 //去除重复

  5.limit 分页;

  6.如果需要排序:ouder by 跟上asc 表示升序(默认是升序);跟上desc表示降序;

  7.聚合函数

    a.count--统计行的数量

    命令:select count(技数规范) from 表名;

    计数规范:*表示所有的行;

         all 列名表示所有的非空行;

         distince 列名 所有的非空不重复行;

    b.sum--获取单列所有数据的总和;

    用法同上,技术规范没有*;

    c.avg--获取单列所有数据的平均值;

    用法同上,技术规范没有*;

    d.max/min--获取单行的最大值/最小值;

  8.数据分组

  语法:select 列A,聚合函数 from 表 where 过滤条件 group by 列A;

  先过滤,然后按照列A对整张表进行分组;分组以后select 所查询的内容只能是列A与聚合函数,否则出现的数据会失去意义(之后查询到每组第一个数据);

  having 专门对分组后的数据进行过滤;

  执行顺序(先后为):from

           where

           group by

           select

           having 

           order by

  9.子查询 --在一个查询中嵌套查询

    a.在select后嵌套

    例:select 列,(子查询) from 表名;

    特点,子查询的结果只能是单行单列

    b.from后嵌套--以子查询的结果为表

    例:select * from (子查询);

    c.where后嵌套--用一个子查询结果作为条件;

    ⑴.使用运算符

    子查询结果为单行单列的情况下;

    ⑵.in/not in

    子查询结果为多行单列的情况;

    ⑶.all 

    满足子查询所有结果,为真

    ⑷.any

    满足子查询其中一个结果,为真;

    ⑸.exists 

    只有子查询结果里由外部需要的就为真;

  10.联接--将多张表联接成一张大表;拿第一张表所有记录与第二张表所有记录相连--表一的列数*表二的列数;

  例:select 列1,列2 from 表1 join 表2 on 联接关系;

    a.内联接

    使用运算符匹配两表的所有行,得到有效行

    from 表1 inner join 表2;from 表1 join 表2;from 表1,表2 where 条件;效果一样

    b.外连接

      left join --左外联,只过滤右边的表,左边全显;

      right join --右外联,只过滤左边的表,右边全显;

    c.自连接--同一张表放在 join两边;

对MySQL的几个入门操作