• 一、mysql数据库的相关概念、基础查询、条件查询、排序查询


    参考url:https://www.bilibili.com/video/BV12b411K7Zu

    1、为什么学习数据库

      实现数据持久化

      使用完整的管理系统统一管理,易于查询

    2、数据库的相关概念

      DB:数据库(database,存储数据的‘仓库’,它保存了一系列有组织的数据。

      DBMS:数据库管理系统(Database Management System,数据库是通过DBMS创建和操作的容器。

      SQL:结构化查询语言(Structure Query Language):专门用来与数据库通信的语言。

      SQL的优点:

        (1) 不是某个特定数据库供应商转有的语言,几乎所有DBMS都支持SQL

        (2) 简单易学

        (3) 虽然简单,但实际上是一中强有力的语言,灵活使用其语言元素,可以进行非常复杂和高级的数据库操作

      SQL语句主要分为:

        (1)DQL:数据查询语言,用于对数据进行查询

        (2)DML:数据操作语言,对数据进行增加、修改、删除,如insert、update、delete

        (3)TPL:事务处理语言,对事物进行处理,包括begin transaction、commit、rollback

        (4)DCL:数据控制语言,进行授权与权限回收,如grant、revoke

        (5)DDL:数据定义语言,进行数据库、表的管理等,如create、drop

        (6)CCL:指针控制语言,通过控制指针完成表的操作,如declare cursor

      对于web程序员,重点是数据的crud(增删改查),必须熟练编写DQL、DML,能够编写DDL完成数据库、表的操作。

    3、数据库存储数据的特点

      1、将数据放到表中,表再放到库中。

      2、一个数据库中可以有多张表,每个表都有一个名字,用来标识自己,表明具有唯一性。

      3、表具有一些特性,这些特性定义了数据在表中如何存储。

      4、表由列组成,称为字段。所有表都是由一个或多个列组成的。

      5、表中的数据是按行存储的。

    4、MySQL产品的特点

      优点:

        (1) 成本低,开放源代码,一般可以免费试用

        (2) 性能高,执行很快

        (3) 简单,很容易安装和使用

      DBMS分为两类:

        (1) 基于共享文件系统的DBMSAccess

        (2) 基于客户机——服务器的DBMSMySQLOracleSqlServer

    5、MySQL的常见命令

      (1) 查看当前所有的数据库

        show databases;

      (2) 打开指定的库

        Use 库名;

      (3) 查看当前库的所有表

        Show tabels;

      (4) 查看其它库的所有表

        Show tabels from 库名;

      (5) 创建表

        Create tabel 表名(

          列名 列类型;

          列名 列类型;

        )

      (6) 查看表结构

        Desc 表名;

    6、查看服务器版本

      Mysql --version

      Select version();

    7、Mysql的语法规范

      (1) 不区分大小写,但建议关键字大写,表名、列名小写

      (2) 每条命令最好用分号结尾

      (3) 每条命令根据需要,可以进行缩进或换行

      (4) 注释

        1) 单行注释: #注释文字

        2) 单行注释: -- 注释文字(--后面有一个空格)

    8、基础查询

      (1) 语法:

        Select 查询列表 from 表名;

        特点:

        1) 查询列表可以是:表中的字段、常量值、表达式、函数

        2) 查询的结果是一个虚拟的表格

      (2) 查询表中的单个字段:

        Select last_name from employees;

      (3) 查询表中的多个字段:

        Select last_name,salary,email from employees;

      (4) 查询表中所有字段

        Select * from employees;

      (5) 查询常量值:

        Select 100;

        Select ‘john’;

      (6) 查询表达式:

        Select 100*99;

      (7) 查询函数:

        SELECT VERSION();

      (8) 起别名:

        SELECT 100%87 AS 结果;

        SELECT last_name AS FROM employees;

      (9) 去重:

        SELECT DISTINCT department from employees;  

      (10)+号的作用,在mysql中仅仅只能作运算符

        1)其中一方为字符型,则试图将字符型数值转换成数值型

        2)如果转换成功,则继续做加法

        3)如果转换失败,则将字符型数值转换成0

        4)只要其中一方为null,则结果肯定为null

      (11) CONCAT连接

        SELECT CONCAT(‘A’,’B’,’C’) AS 结果;

        SELECT CONCAT(last_name,first_name) AS 姓名 FROM employees;

    9、条件查询

      语法:

        SELECT 查询列表

        FROM 表名  

        WHERE 筛选条件

      分类:

        1) 按条件表达式筛选

          条件运算符:> < = != <> ><=

        2) 按逻辑表达式筛选

          逻辑运算符:用于连接条件表达式 

            &&  ||  !  and or not

        3) 模糊查询

           Like

          (1) 一般和通配符搭配使用

          (2) 通配符:%任意多个字符,包含0个字符

                _任意单个字符

          (3) 支持转义字符

            SELECT last_name FROM employees

            WHERE last_name LIKE ‘_$_%’ ESCAPE ‘$’;

          between and

                 (1) 使用between and 可以提高语句简洁性

          (2) 包含临界值

          (3) 两个临界值不要调换顺序,否则含义相反

          In

          含义:判断某字段的值是否属于in列表中的某一项

          特点:1)使用in提高语句简洁度

             2)in列表的值类型必须一致或兼容

             3)不支持通配符

              SELECT last_name,job_id FROM employees

              WHERE job_id IN (‘IT_PROT’,’AD_VP’,’AD_PRES’);

          Is null

          =或<>不能用于判断null

          Is nullis not null可以判断null

          安全等于 <=>

          Is null仅仅可以判断null值,可读性较高

          <=>既可以判断null值,又可以判断普通的数值,可读性较低

    10、排序查询

      语法:

        SELECT 查询列表

        FROM

        【WHERE 筛选条件】

        ORDER BY 排序列表 【ASC|DESC

      特点:

        1) asc代表的是升序,desc代表的是降序

        2) 如果不写,默认是升序

        3) Order by子句中可以支持单个字段、多个字段、表达式、函数、别名

        4) Order by子句一般是放在查询语句的最后面,limit子句除外

  • 相关阅读:
    Quartz.Net定时器
    Lucene.Net 实现搜索功能
    哈希表 STL map
    买卖股票的最佳时机I II III IV
    [离散化]人潮最多的時段( Interval Partitioning Problem )
    动态规划[入门]3-更难的矩阵取数问题
    动态规划[入门3]-多重背包问题
    动态规划[入门]2-循环数组最大子段和
    catalan卡塔兰数
    逆波兰表达式
  • 原文地址:https://www.cnblogs.com/nuochengze/p/12583700.html
Copyright © 2020-2023  润新知