Mysql必知必会系列二、了解SQL和使用Mysql

文章目录

  • Mysql必知必会系列二、了解SQL以及Mysql的初步使用
    • 1、数据库基础
    • 2、SQL
      • 2.1、SQL概述
      • 2.2、SQL功能
      • 2.3、SQL规范
      • 2.4、数据定义
      • 2.5、数据类型
    • 3、使用mysql
      • 3.1、选择数据库
      • 3.2、查看数据库
      • 3.3、其他SHOW语句

Mysql必知必会系列二、了解SQL以及Mysql的初步使用

1、数据库基础

  • 数据库(DataBase)

    这个其实在系列一中已经作出了说明,但由于此概念贯穿学习之路,所以这里再次作出介绍。

    数据库是一个以某种有组织的方式存储的数据集合,其本质就是为一个文件系统。理解数据库的一种最简单的办法就是将其想象成一个文件柜。此文件柜是一个存放数据的物理位置,不管数据是什么以及如何组织的。

  • 表(table)

    表是一种结构化的文件,可用来存储某种特定类型的数据。这里最关键的一点在于,存储在表中的数据是一种类型的数据或一种清单。我们需要做到的一点就是,表中的每一个分量必须是一个不可分的数据项,也就是说不允许表中还有表。

  • 模式(schema)

    关于数据库和表的布局及特性的信息。注意有的人会将模式误解为数据库,实际上并不是,我们需要区分两者。

  • 列(column)和数据类型(datatype)

    列是表中的一个字段。所有的表都是由一个或多个列组成的。理解列的最好办法就是将数据库想象成一个网格。网格中的每一列都存储着一条特定的信息。数据库中的每一个列都有相应的数据类型。这和其他语言中的数据类型理解方式是一致的。这里不作解释。

  • 行(row)

    表中的数据都是按行存储的,所保存的每个记录存储在自己的行内。通俗的来讲行其实就是记录。但我们讲究标准这里还是说行。

  • 主键(primary key)

    一列(或一组列),其值能够唯一的区分表中的每个行。表中的任何列都可以作为主键,只要它满足一下条件:

    • 任意两行都不具有相同的主键值;
    • 每个行都必须具有一个主键值(主键列不允许NULL值)。
  • 外键(foreign key)

    外键为某个表中的一列,它包含另一个表的主键值,其定义了两个表之间的关系。

  • 视图(view)

    视图是从一个或几个基本表导出的表。它本身不独立存储在数据库中,即数据库中只存放视图的定义而不存放视图对应的数据。这些数据仍存放在导出视图的基本表中,因此视图是一个虚表。但视图在概念上和基本表等同,用户可以在视图上再定义视图。

  • 索引(index)

    索引的作用相当于图书的目录,可以根据目录中的页码快速找到所需的内容。

2、SQL

我们学的不是mysql吗?为什么这里还需要介绍 S Q L SQL SQL语句呢?

因为SQL是关系数据库的标准语言,Mysql几乎支持所有的SQL语法,了解SQL对我们之后学习Mysql要方便很多。

2.1、SQL概述

SQL是Structured Query Language(结构化查询语言)的缩写。SQL是专为数据库而建立的操作命令集,是一种功能齐全的数据库语言。在使用它时,只需要发出“做什么”的命令,“怎么做”是不用使用者考虑的。SQL功能强大、简单易学、使用方便,已经成为了数据库操作的基础,并且现在几乎所有的数据库均支持标准sql。 但是截至目前,没有一个操作系统能够支持SQL标准的所有概念和特性。所以我们在学习具体的 D B M S DBMS DBMS和操作系统时要参考其 a p i api api文档或用户手册。

2.2、SQL功能

SQL功能 动词
数据查询 SELECT
数据定义 CREATE,DROP,ALTER
数据操纵 INSERT,UPDATE,DELETE
数据控制 GRANT,REVOKE

这些功能在mysql中同样适用。

2.3、SQL规范

  1. 在数据库系统中,SQL语句不区分大小写(建议用大写) 。但字符串常量区分大小写。建议命令大写,表名库名小写;
  2. SQL语句可单行或多行书写,以“;”结尾。关键词不能跨多行或简写。
  3. 用空格和缩进来提高语句的可读性。子句通常位于独立行,便于编辑,提高可读性。
  4. 注释:单行注释:-- …,多行注释://。(这里特别说明,在mysql中不仅兼容这两种注释,还可以单行注释还可以为:#…)
  5. sql语句可以折行操作,这在mysql中同样适用。

2.4、数据定义

关系数据库系统支持三级模式结构,其模式、外模式和内模式中的基本对象有模式、表、视图和索引等。因此SQL的数据定义功能包括模式定义、表定义、视图和索引的定义。如下表所示:

创建 删除 修改
模式 CREATE SCHEMA DROP SCHEMA
CREATE TABLE DROP TABLE ALTER TABLE
视图 CREATE VIEW DROP VIEW
索引 CREATE INDEX DROP INDEX ALTER INDEX

SQL标准不停供修改模式定义和修改视图定义的操作。 所以用户如果想修改这些对西昂,就必须删了重建。

这里特别说明一下模式,在mysql中其实就是数据库框架。我们怎么理解模式的定义呢?实际上就是定义个命名空间namespace。在这个命名空间中,你可以创建基表,视图,和有关的授权等等。正如在C++中, 你可以在你的命名空间中,定义你自己的类和结构体,以及其他的信息。

2.5、数据类型

数据类型 描述
CHARACTER(n) 字符/字符串。固定长度 n。
VARCHAR(n) 或 CHARACTER VARYING(n) 字符/字符串。可变长度。最大长度 n。
BINARY(n) 二进制串。固定长度 n。
BOOLEAN 存储 TRUE 或 FALSE 值
VARBINARY(n) 或 BINARY VARYING(n) 二进制串。可变长度。最大长度 n。
INTEGER§ 整数值(没有小数点)。精度 p。
SMALLINT 整数值(没有小数点)。精度 5。
INTEGER 整数值(没有小数点)。精度 10。
BIGINT 整数值(没有小数点)。精度 19。
DECIMAL(p,s) 精确数值,精度 p,小数点后位数 s。例如:decimal(5,2) 是一个小数点前有 3 位数,小数点后有 2 位数的数字。
NUMERIC(p,s) 精确数值,精度 p,小数点后位数 s。(与 DECIMAL 相同)
FLOAT§ 近似数值,尾数精度 p。一个采用以 10 为基数的指数计数法的浮点数。该类型的 size 参数由一个指定最小精度的单一数字组成。
REAL 近似数值,尾数精度 7。
FLOAT 近似数值,尾数精度 16。
DOUBLE PRECISION 近似数值,尾数精度 16。
DATE 存储年、月、日的值。
TIME 存储小时、分、秒的值。
TIMESTAMP 存储年、月、日、小时、分、秒的值。
INTERVAL 由一些整数字段组成,代表一段时间,取决于区间的类型。
ARRAY 元素的固定长度的有序集合
MULTISET 元素的可变长度的无序集合
XML 存储 XML 数据

3、使用mysql

这一部分,我们只是基础的使用mysql。系列一中已经介绍了如何启动mysql服务以及登录mysql,这里不在作解释。

3.1、选择数据库

当你连接到数据库中,并没有任何数据库打开供你使用。在你能执行任意数据库操作前,需要选择一个数据库。这里即可使用 S H O W SHOW SHOW U S E USE USE关键字(由于mysql的关键字过多,我们仅在用到的时候列举出关键字)。

数据库、表、列、用户、权限等的信息被存储在数据库和表中。不过,内部的表一般不直接访问。可用 MySQL的SHOW命令来显示这些信息(MySQL从内部表中提取这些信息)。
我们输入SHOW DataBases;即可返回可用数据库的一个列表。包含在这个列表中的可能是mysql内部使用的数据库,如其中的information_schema、mysql、performance_schema、test,这里不介绍这四个数据库。

Mysql必知必会系列二、了解SQL和使用Mysql_第1张图片

那么,我们需要选择数据库后才可以对数据库进行操作。我们通过USE 数据库名;来使用数据库,该数据库保持为默认数据库,直到语段的结尾,或者直到发布一个不同的USE语句。例如这里我们需要使用myemployees数据库,我们输入以下内容:

USE myemployees;

程序就会返回Database changed,需要注意的是, U S E USE USE语句并不返回任何结果。而是依赖于使用的客户机,显示某种形式的通知。例如这里显示出的Database changed消息是mysql命令行实用程序在数据库选择成功后显示的。

谨记:必须先使用USE打开数据库,才能读取其中的数据。

3.2、查看数据库

当我们选择好数据库之后,为了获得一个数据库内的可用表的列表,我们就可以使用SHOW Tables,如下所示:

Mysql必知必会系列二、了解SQL和使用Mysql_第2张图片

当然,SHOW也可以用来使用表列,使用方法是:SHOW Columns FROM 表名;这里的 F R O M FROM FROM同样是关键字,含义即同其本意,从…获取,即给出相应地址供使用。在myemployees中我们可以查看employees表。如下:

Mysql必知必会系列二、了解SQL和使用Mysql_第3张图片

我们发现,它对每个字段返回一行,行中包含字段名、数据类型、是否允许NULL、键信息、默认值以及其他信息(如字段employess_idauto_increment)。

auto_increment(自动增量):某些表列需要唯一值。例如,订单编号、雇员ID或(如上面例子中所示的)顾客ID。在每个行添加到表中时,MySQL可以自动地为每个行分配下一个可用编号,不用在添加一行时手动分配唯一值(这样做必须记住最后一次使用的值)。这个功能就是所谓的auto_increment。如果需要它,则必须在用CREATE语句创建表时把它作为表定义的组成部分。我们在之后会介绍CREATE语句。

3.3、其他SHOW语句

除了以上的SHOW语句,mysql还支持其他的语句。例如:

  1. SHOW Status,用于显示广泛的服务器状态信息。
  2. SHOW CREATE DataBaseSHOW CREATE Table,分别用来显示创建特定数据库或表的Mysql语句。
  3. SHOW GRANTS,用来显示授权用户(所有用户或特定用户的安全权限)。GRANT语句也会在之后介绍。
  4. SHOW ERRORSSHOW WARNINGS,用来显示服务器错误或警告消息。

这里列举的都是比较常用的,当然SHOW语句并不只有这么点,我们可以执行命令HELP SHOW来查看允许的SHOW语句。

来显示授权用户(所有用户或特定用户的安全权限)。GRANT语句也会在之后介绍。

你可能感兴趣的:(java学习,数据库,新星计划)