zoukankan      html  css  js  c++  java
  • Mysql必知必会学习笔记(一)

        今天开始学习mysql,有一位老师推荐一本经典的入门书籍《MySQL必知必会》,让我把这本书通读几遍,就能对数据库有个很好的入门了。网上有文字版,感兴趣的小伙伴可以找来阅读。

    书封面长这样:

     

    数据库概念的简要介绍

    数据库(database)保存有组织的数据的容器(通常是一个文件或一组文件)

    容易混淆的地方数据库软件与数据库:

    数据库软件应称为DBMS(数据库管理系统)。数据库是通过DBMS创建和操纵的容器。数据库可以是保存在硬设备上的文件,但也可以不是。

         我们经常通过各种数据库连接工具比如Navicat for mysql(这个好评广泛)、mysql workbench(这个是官方提供的,用不习惯)等,在编程语言里,比如python(我只会这一门),可以安装pymysql模块,调用相关方法来访问数据库。也可以通过交互界面来访问比如下面这样:

    不过排版就不怎么友好了,以前在一个项目上,客户为了保证生产环境数据安全,不让安装连接工具,我们操作数据库只能通过交互界面,头都大了。

    PS C:UsersAdministrator> mysql -uroot -p123456
    mysql: [Warning] Using a password on the command line interface can be insecure.
    Welcome to the MySQL monitor.  Commands end with ; or g.
    Your MySQL connection id is 9
    Server version: 5.7.20-log MySQL Community Server (GPL)
    
    Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
    
    Oracle is a registered trademark of Oracle Corporation and/or its
    affiliates. Other names may be trademarks of their respective
    owners.
    
    Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
    
    mysql> show databases;
    +---------------------+
    | Database            |
    +---------------------+
    | information_schema  |
    | learn_scrapy        |
    | love_learning       |
    | mysql               |
    | mysql_bi_zhi_bi_hui |
    | performance_schema  |
    | sakila              |
    | sys                 |
    | world               |
    | zabbix              |
    +---------------------+
    10 rows in set (0.00 sec)
    
    mysql>
    表(table) 某种特定类型数据的结构化清单。
    存储在表中的数据是一种类型的数据或一个清单。决不应该将顾客的清单与订单的清单存储在同一个数据库表中。这样做将使以后的检索和访问很困难。应该创建两个表,每个清单一个表。

    数据库中的每个表都有一个名字,用来标识自己。此名字是唯一的,这表示数据库中没有其他表具有相同的名字。

    模式(schema) 关于数据库和表的布局及特性的信息。
    描述表的这组信息就是所谓的模式,模式可以用来描述数据库中特定的表以及整个数据库(和其中表的关系)
    列(column) 表中的一个字段。所有表都是由一个或多个列组成的。
    理解列的最好办法是将数据库表想象为一个网格。网格中每一列存储着一条特定的信息。例如,在顾客表中,一个列存储着顾客编号,另一个列存储着顾客名,而地址、城市、州以及邮政编码全都存储在各自的列中。
    数据类型(datatype) 所容许的数据的类型。每个表列都有相应的数据类型,它限制(或容许)该列中存储的数据。数据类型限制可存储在列中的数据种类(例如,防止在数值字段中录入字符值)。数据类型还帮助正确地排序数据,并在优化磁盘使用方面起重要的作用。
    行(row) 表中的一个记录。主键(primary key)一一列(或一组列),其值能够唯一区分表中每个行。

    唯一标识表中每行的这个列(或这组列)称为主键。主键用来表示一个特定的行。没有主键,更新或删除表中特定行很困难,因为没有安全的方法保证只涉及相关的行。
    表中的任何列都可以作为主键,只要它满足以下条件:
     任意两行都不具有相同的主键值;
     每个行都必须具有一个主键值(主键列不允许NULL值)。

    应该总是定义主键 虽然并不总是都需要主键,但大多数数据库设计人员都应保证他们创建的每个表具有一个主键,以便于以后的数据操纵和管理。

    主键通常定义在表的一列上,但这并不是必需的,也可以一起使用多个列作为主键。在使用多列作为主键时,上述条件必须应用到构成主键的所有列,所有列值的组合必须是唯一的(但单个列的值可以不唯一)。

    主键的最好习惯 除MySQL强制实施的规则外,应该坚持的几个普遍认可的最好习惯为:
     不更新主键列中的值;
     不重用主键列的值;
     不在主键列中使用可能会更改的值。(例如,如果使用一个名字作为主键以标识某个供应商,当该供应商合并和更改其名字时,必须更改这个主键。)

    SQL(发音为字母S-Q-L或sequel)是结构化查询语言(Structured QueryLanguage)的缩写。SQL是一种专门用来与数据库通信的语言
    SQL有如下的优点。
     SQL不是某个特定数据库供应商专有的语言。几乎所有重要的DBMS都支持SQL,所以,学习此语言使你几乎能与所有数据库打交道。
     SQL简单易学。它的语句全都是由描述性很强的英语单词组成,而且这些单词的数目不多。
     SQL尽管看上去很简单,但它实际上是一种强有力的语言,灵活使用其语言元素,可以进行非常复杂和高级的数据库操作。
  • 相关阅读:
    prometheus监控示例
    es索引管理工具-curator
    GlusterFS分布式文件系统的使用
    Django的admin相关
    Django的form表单
    Django-models & QuerySet API
    python-css基础知识
    PXC 避免加入集群时发生SST
    ERROR 1682 (HY000)
    pxc群集搭建
  • 原文地址:https://www.cnblogs.com/laonicc/p/12419917.html
Copyright © 2011-2022 走看看