• 数据库(一):概述


    了解MYSQL

    数据库
    数据库是一个以某种有组织的方式存储的数据集合。

    数据库中通过 这样的结构化的文件来存储某种特定类型的数据。比如:

    studentID studentName studentAge
    20101101 Li Hua 18
    20101102 Andy 19
    20101103 John 20

    上面是一个统计班级学生信息结构, 一般在一个特定的数据库中。存储着多种多样的 结构(表名应该是唯一标示的)。各个表结构之间能够维持某种连接关系。

    1. 表(table)

    某种特定类型数据的结构化清单

    中的记录:
    表中有 ,每一行代表表中的一条记录,而每一列存储某种特定的信息,上面的班级学生信息表中的第一列表示学生ID信息。

    2. 主键:

    • 主键是表中一列或者一组列标识的,它的值能够唯一的标识表中的每一行,是唯一的,不能为NULL,表中的主键须要满足一下的条件:
    • 随意两行都不具有同样的主键值;
    • 每一行都必须具有一个主键值(主键值不同意为NULL
    • 主键列中的值不同意改动或更新

    3. SQL (structured Query Language)结构化查询语言

    SQL是一种专门用来和数据库打交道的语言,很多数据库管理系统厂商都对SQL语言进行了对应的扩展,比如MySQL,Oracle,SQL Server等等,可是大多数数据库供应商都支持SQL。


    MYSQL的安装与开启

    1. Ubuntu中安装MySql:

    • 仅仅须要在线安装就可以:
      picture1

    • 在安装过程中可能须要为mysql root输入password,须要记住password。利用以下的方式打开MySQL:

      1)检查MySQL的服务是否启动:
      这里写图片描写叙述

      2)打开service服务:
      表示服务已经启动,假设没有启动。能够使用例如以下的方式启动mysql service:
      这里写图片描写叙述

      3) 使用root账号登陆:
      这里写图片描写叙述
      当中-p表示输入password,若没有为root输入password,则不用-p

    2. 查看系统中全部数据库:

    这里写图片描写叙述

    3. 链接数据库:

    这里写图片描写叙述

    4. 查看特定数据库的内容:

    这里写图片描写叙述

    检索数据库

    1. SELECT语句检索一个或多个数据列:

    SELECT 列名(能够是多个列名) FROM 表名。

    上面为最简单的检索数据库语句,比如:

    这里写图片描写叙述

    能够列举表中的多个列名。假设想检索表中的全部列,能够使用 * 通配符。 比如:

    这里写图片描写叙述

    假设希望不显示同样的值。仅仅希望显示不同的值。能够使用关键字DISTINCT,比如:

    这里写图片描写叙述

    2. 对检索的结果进行排序

    方式一:

    SELECT 列名
    FROM 表名
    ORDER BY 一个列或者多个列名

    方式二:

    SELECT 列名
    FROM 表名
    ORDER BY 23//表示以列名表中的第2列和第3列排序(优先第2列,第2列同样的情况下依据第3列排序)

    通过 DESC(降序)ASC(升序) 指定排序是降序还是升序,默认情况下是升序排列,比如:

    这里写图片描写叙述

    注意 ORDER BY 语句应该是 SELECT 语句的最后一句

    3. 通过where进行检索过滤**

    • 基本形式:

      SELECT 列名
      FROM 表名
      WHERE 子句
      ORDER BY 子句;
    • WHERE子句中的操作符:

      操作符 说明 操作符 说明
      = 等于 > 大于
      <> 不等于 >= 大于等于
      != 不等于

      >

      不大于
      < 小于 BETWEEN 在指定的两个值之间
      <= 小于等于 IS NULL 为NULL值
      !< 不小于
    • 运用IS NULL的样例:
      这里写图片描写叙述

    • WHERE 子句中使用高级数据过滤, 比如 ANDORINNOT

      SELECT pro_id, prod_price, prod_name
      FROM Products
      WHERE vend_id = 'DLL01' AND prod_price <= 4;
      SELECT pro_id, prod_price, prod_name
      FROM Products
      WHERE vend_id = 'DLL01' OR vend_id = 'BRS01';
    • IN 操作符后跟由逗号分隔的合法值,这些值必须在括号中面, IN 的长处在于能够包括其它的SELECT语句,能够更加动态的建立WHERE子句。

      SELECT pro_id, prod_price, prod_name
      FROM Products
      WHERE vend_id IN ('DLL01', 'BRS01')
      ORDER BY prod_name;
    • 使用 通配符 进行过滤。 为了使用通配符,必须在WHERE 子句中使用 LIKE 关键字,有例如以下几种通配符:

      通配符 意义
      % 不论什么字符出现不论什么次数
      _ 仅仅是匹配单个字符
      [] 用来指定一个字符集

      ····

      以下是几个使用通配符的样例:

      这里写图片描写叙述

      这里写图片描写叙述

      注意:
      1)不要过度使用通配符,能使用别的方式取代尽量使用别的方式
      2) 尽量不要在开头使用通配符

    • 创建计算字段:

      SELECT Concat(vend_name, ' (', vend_country, ')')
      FROM Vendors
      ORDER BY vend_name;
      --功能:SELECT完毕以下的拼接:
      --存储在vend_name中的名字;
      --包括一个空格和(的字符串;
      --存储在vend_country中的国家;
      --包括一个)的字符串。
    • AS取别名:

      这里写图片描写叙述

      这里写图片描写叙述

  • 相关阅读:
    基于比较的算法之五:堆排序
    顺序统计:寻找序列中第k小的数
    顺序统计:寻找序列中的最大最小数
    非基于比较的排序算法之一:计数排序
    基于比较的算法之四:快速排序
    基于比较的算法之三:插入排序
    基于比较的算法之二:选择排序
    基于比较的算法之一:冒泡排序
    轮廓问题/Outline Problem-->改进的算法及时间复杂度分析
    寻找最大连续子序列/Find the max contiguous subsequence
  • 原文地址:https://www.cnblogs.com/liguangsunls/p/7323373.html
Copyright © 2020-2023  润新知