美文网首页
Mysql必知必会

Mysql必知必会

作者: Patarw | 来源:发表于2020-08-07 21:11 被阅读0次

    本文会介绍一些MYSQL数据库的基本使用语句,参考书籍:MYSQL必知必会

    1、数据库的基本使用

    • 假如我这里有一个mall数据库,可以通过USE来选取数据库
      输入:
    USE mall;
    
    • 如果不知道有哪些数据库的话可以使用命令:
    SHOW DATABASES;
    
    • 要获取到当前选择的数据库内的数据表的列表,可以使用命令:
    SHOW TABLES;
    
    • 如果想看数据表内有哪些列,可以使用命令:
    SHOW COLUMNS FROM cms_help;
    

    或者:

    DESCRIBE cms_help;
    

    两者都可以达到同样的效果

    2、检索数据 (SELECT语句)

    • 1、检索多个列,就拿上面的cms_help表来作为例子把:
    SELECT category_id,icon,title FROM cms_help;
    

    这样就查询出了想要的列的所有数据了

    • 2、如果想检索所有列的话,可以只用通配符( * )来达到:
    SELECT * FROM cms_help;
    

    这样就查询出来所有列的所有数据了

    • 3、检索不同的行,可以使用关键字DISTINCT关键字,该关键字可以指定MYSQL只返回不同的值
     SELECT DISTINCT category_id FROM cms_help;
    

    这样可以查询出不同的category_id,如果重复的话就不会查询出来

    • 4、限制查询结果个数,使用LIMIT语句:

    SELECT category_id FROM cms_help LIMIT 4;

    这样就只会返回前四条结果
    或者:

     SELECT category_id FROM cms_help LIMIT 2,2;
    

    这样就会返回从第二条开始的两条数据,第一个2表示从第二条数据开始但不包括2,第二个2表示查询几条数据

    3、排序检索数据

    • 1、排序数据,通过ORDER BY + 列名来排序数据
    SELECT * FROM cms_help ORDER BY category_id;
    

    现在输出的默认为ASC升序排列,如果想要降序排列可以使用DESC:

    SELECT * FROM cms_help ORDER BY category_id DESC;
    
    • 2、当通过多个列字段来排序数据时,优先排列前一个字段,如果前一个字段中有相同的数据,则通过第二个字段再次排序:
     SELECT * FROM cms_help ORDER BY category_id,show_status;
    

    可以看到,只有当category_id相同时,MYSQL才会去根据show_status去再次排列

    4、过滤数据

    • 1、使用WHERE语句来筛选数据或者查找特定的数据:
     SELECT * FROM cms_help WHERE category_id = 6;
    

    可以看到,category_id 等于6的数据都被查出来了
    同时还能使用WHERE的其他操作符来筛选数据:

    这里只说一下BETWEEN的用法,其他的都挺简单的:

    SELECT * FROM cms_help WHERE category_id BETWEEN 2 AND 4;
    
    • OR和AND操作符,OR表示或者,AND表示并且
       SELECT * FROM cms_help WHERE category_id = 1 OR category_id >3 AND category_id =5;
    

    这样输出的结果时category_id 等于1和等于5的,因为MYSQL是先组合AND然后再组合OR操作符的

    • IN操作符,IN操作符可以用来指定条件集合,集合中的每个元素都可以进行匹配:
    SELECT * FROM cms_help WHERE category_id IN (1,2,4);
    

    如果需要查找的数据比较多的话,就可以使用IN操作符,这样比OR操作符查找起来快多了

    5、使用通配符来进行过滤数据

    • LIKE操作符和百分号(%)组合构成模糊查询
      比如说你想找所有jet开头的产品:
    SELECT * FROM cms_help WHERE name LIKE 'jet%'
    

    或者说你想找所有jet结尾的产品:

    SELECT * FROM cms_help WHERE name LIKE '%jet'
    

    或者说你想找所有包含jet的产品:

    SELECT * FROM cms_help WHERE name LIKE '%jet%'
    

    百分号(%)通配符可以表示任意字符串

    • 分组语句,GROUP BY。
    SELECT category_id,COUNT(*) AS num FROM cms_help GROUP BY category_id;
    

    使用子查询

    子查询是指在一条查询语句中嵌套另一个查询语句,比如说你可以先去另一张表查出目标id,然后再通过目标id在这张表里面查询相应的数据;

    SELECT id FROM cms_help_category;
    
    SELECT * FROM cms_help WHERE id IN (SELECT id FROM cms_help_category);
    

    可以发现在IN内部又嵌套了另一个查询语句

    联结表

    SELECT * FROM cms_help,cms_help_category WHERE cms_help.id = cms_help_category.id;
    
    SELECT category_id FROM cms_help,cms_help_category WHERE cms_help.id = cms_help_category.id;
    

    组合查询

    使用UNION操作符实现多条查询语句

        SELECT * FROM cms_help WHERE id = 6
        UNION 
        SELECT * FROM cms_help WHERE id IN (1,2);
    

    未完持续。。。。。

    相关文章

      网友评论

          本文标题:Mysql必知必会

          本文链接:https://www.haomeiwen.com/subject/rfyqdktx.html