壹 概述

                         一 了解SQL

1.1 数据库基础

1.1.1 什么是数据库

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

易混淆:人们常常用“数据库”这个词语来代表他们使用的数据库软件,这是不对的。这是引起混淆的根源。确切地说,数据库软件应该称为DBMS(Database Management System数据库管理系统)。数据库是通过DBMS创建、操纵的容器。它可以使保存在硬盘上的文件,但也可以什么都不是。我们所说的MySQL数据库学习或者Oracle数据库学习,实际上就是对该数据库软件的学习。

  我们使用DBMS可以创建多个数据库。但是要求每一个数据库的名字都必须是唯一的。最好做到见名知意。如: school。

1.1.2 表

  表(table)某种特定类型数据的结构化清单。我的理解就是表就是一组存在逻辑关联的数据项的集合。可以类比Java或C++等面向对象语言中“”的概念。

  下面,就我所创建的一张表来说明一下表中的各种概念。

 create table student(
id long primary key,
name varchar(100),
gender varchar(20)
);

表名: 每一个数据库中都可以有多个表,但其中每一张表的名字都应该是唯一的(允许不同的数据库中存在同名的表,就好像Java中不同的包中可以有

同名的类一样)。表名用于唯一标识一个表,所以应该做到见名知意,如:student、teacher。上图中我所创建的表的表名

即为student。

(注意: 上图只是创建一个表的一部分语句。作为例子贴出来了。如果想查看完整版,请查询本人的其它博客。)

  列(column),表中的一个字段。如上述例子中的id、name、gender(性别)。所有表都由一个或多个列所组成。我们可以类比Java中的类中的成员变量名来理解。

  数据类型(datatype)所容许的数据的类型。每个表列都有相应的数据类型,它限制该列中存储的数据。可以类比Java中类的成员变量的类型来理解。如:int、String等。

1.1.3 行

  行(row)表中的一条记录(即一条数据)。

该表共有两行数据。

1.1.4 主键

  一列或一组列(联合主键,别担心后面的博客中我会仔细讲解),其值能够唯一区分表中的每个行(每条数据)。我们可以理解为学号、身份证号可以唯一区分一名学生,一位公民。

  表中的任何列都可以作为主键,只要它满足一下条件:

  1)任意两行不具有相同的主键值(唯一);

  2)每个行都必须具有一个主键值(非空).

从形式上分,主键可以分为单列和多列。单列不允许重复,如上述例子中,每个学生的id都必须唯一。多列中,所有列只的组合必须唯一。

1.2 SQL

  SQL(发音为S-Q-L[即逐个字母发音]或sequel)是结构化查询语言(Structed Query Language)的缩写。SQL是专门与数据库通信的语言。

  方言: 每个DBMS都有自己实现的SQL语言,被称为方言。这些方言既有SQL的大部分特点,又有自身的特色和功能。好似普通话和方言之间的关系。MySQL、Oracle都属于方言。我们在书写SQL语句时,应该尽量标准,这样有利于他人的理解和数据库数据的迁移(从一个数据库转移到另一个)。

            

                      二 MySQL简介

2.1 什么是MySQL

  前文中已经提到了。MySQL就是一种数据库软件,DBMS的一种。它用来创建、操纵数据库。

2.2 客户机 - 服务器软件

  我们在客户机上通过SQL语句或可视化界面发送相应的SQL语句给服务器软件以创建,操纵数据库。

  我们下载下来用来学习的、安装在我们个人电脑上的DBMS就包含两部分: 处理有关数据操作请求的服务器软件和MySQL命令行工具(在命令行中输入MySQL相关语句,如上述的创建student表的部分语句)。

2.3 MySQL

  下载可到官网。建议下载5或5之后的版本。包含了许多高级特性。

   

       

  

MySQL数据库学习: 01 —— 数据库的概述的更多相关文章

  1. MySQL数据库学习一 数据库概述

    1.1 数据库管理技术的发展阶段 人工管理阶段,文件系统阶段,数据库系统阶段. 1.2 数据库系统阶段涉及的概念 数据库(Database DB):是指长期保存在计算机的存储设备上,按照一定的规则组织 ...

  2. MySQL数据库学习三 数据库对象和基本操作

    3.1 数据库和数据对象 1. 系统数据库 information_schema:主要存储系统中的一些数据库对象信息,如用户列表信息.列信息.权限信息.字符集信息和分区信息等. performance ...

  3. MySQL数据库学习2 - 数据库的操作

    一.系统数据库 二.创建数据库 三.数据库相关操作 四.了解内容 一.系统数据库 执行如下命令,查看系统库 show databases; information_schema: 虚拟库,不占用磁盘空 ...

  4. MySQL基础学习之数据库

    创建一个新的数据库 create database 数据库名称; 查看所有数据库 show databases; 删除数据库 drop database 数据库名称

  5. 【9-2】mysql数据库学习01

    mysql安装 下载社区版本MySQL软件包(地址),或者windows installer 接压缩安装包到目标路径 在系统变量Path中加入目标路径 在mysql安装路径下,修改配置文件mysql- ...

  6. MySQL数据库学习: 02 —— 数据库的安装与配置

                             MySQL安装图解 一.MYSQL的安装 1.打开下载的mysql安装文件mysql-5.0.27-win32.zip,双击解压缩,运行“setup. ...

  7. 数据库学习之数据库增删改查(另外解决Mysql在linux下不能插入中文的问题)(二)

    数据库增删改查 增加 首先我们创建一个数据库user,然后创建一张表employee create table employee( id int primary key auto_increment, ...

  8. ORACLE数据库学习之数据库的优化

     数据库的优化 概述 影响数据库性能的因素包括:系统.数据库.网络. 数据库的优化包括:优化数据库磁盘I/O.优化回滚段.优化Rrdo日志.优化系统全局区.优化数据库对象. 监控数据库的性能: 在 ...

  9. JavaScript学习01(js概述)

    JavaScript概述 JavaScript历史 要了解JavaScript,我们首先要了解一下JavaScript的诞生. 在上个世纪的1995年,当时的网景公司正凭借其Navigator浏览器成 ...

随机推荐

  1. springboot mybatis redis 二级缓存

    前言 什么是mybatis二级缓存? 二级缓存是多个sqlsession共享的,其作用域是mapper的同一个namespace. 即,在不同的sqlsession中,相同的namespace下,相同 ...

  2. caioj 1236 最近公共祖先 树倍增算法模版 倍增

    [题目链接:http://caioj.cn/problem.php?id=1236][40eebe4d] 代码:(时间复杂度:nlogn) #include <iostream> #inc ...

  3. PHP 静态缓存

    今天来说说PHP页面的静态缓存. 根据个人理解,由于客户端重复的请求某个页面,导致该页面短时间内被重复请求相同的数据,导致给服务端一定的压力,同时用户访问速度也会变慢.此时如果把这个页面缓存起来,客户 ...

  4. Android崩溃提示 “EGL_BAD_CONFIG"

    这两天将之前提到的一个室内定位程序的ArcGIS的SDK从10.2.8迁移到100.1.0. 期间反复出现奇怪的问题,最终定位到这个问题: java.lang.RuntimeException: cr ...

  5. javac 小记

    javac 到底是什么? javac 就是一个编译器,它把 Java 源代码编译成 Java 字节码,即 JVM 能够识别的二进制形式的文件. javac 由什么构成? 词法分析器:识别源代码中的 J ...

  6. 剑指Offer_12_矩阵中的路径(参考问题:马踏棋盘)

    题目描述  请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径.路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子.如果一条路径经过了矩阵 ...

  7. C++、Objective-C 混合编程

    在XCODE中想使用C++代码,你须要把文件的扩展名从.m改成.mm.这样才会启动g++编译器. 我们来看个測试代码: [java] view plaincopy class TestC { priv ...

  8. L贪心基础

    <span style="color:#330099;">/* L - 贪心 基础 Time Limit:1000MS Memory Limit:65536KB 64b ...

  9. Hadoop之SequenceFile

    Hadoop序列化文件SequenceFile能够用于解决大量小文件(所谓小文件:泛指小于black大小的文件)问题,SequenceFile是Hadoop API提供的一种二进制文件支持.这样的二进 ...

  10. Java 并发专题 : Executor具体介绍 打造基于Executor的Webserver

    转载标明出处:http://blog.csdn.net/lmj623565791/article/details/26938985 继续并发,貌似并发的文章非常少有人看啊~哈~ 今天准备具体介绍jav ...