MYSQL基本介绍

MYSQL了解:MYSQL采用C/S的客户端服务器模型,客户端通过连接服务器进行数据的增删改查操作;MYSQL服务段模型采用IO复用+线程池来定义。

SQL语句划分:

DDL(data definition language):数据定义语言,定义了数据库、表、列、索引等数据库对象的定义。常用的关键字:create、drop、alter等。

DML(data manipulation language):数据操作语言,用于添加、删除、查找、更改数据库。常用的关键字:insert、delete、update和select等。

DCL(data control language):数据控制语句,用户控制不同数据段的直接许可和访问级别的语句,这些语句定义了数据库、表、字段、用户访问的权限和安全级别。主要关键字:grant、remove。

数据库范式

范式的好处主要归纳为三点:

(1)减少数据冗余(主要特点)

(2)消除异常——>插入异常、删除异常、更新异常

(3)让数据库更加和谐

范式介绍:

第一范式(1NF):每一列都保持原子特性。(即每一列均不能重复,一个字段只存储一项信息)

       列是基本数据项,不能进行分割,否则设置成一对多的关系。

注意:不符合第一范式不能称为关系型数据库。

第二范式:属性完全依赖于主键(任一字段都只能依赖于表中的同一个字段)——>消除部分依赖

       非主属性应该完全依赖于主关键字,若不依赖于主关键字,应该拆分成新的主体,设计成一对多的关系。

      码(具有唯一性的属性),一个表里存在多个码,选取一个称之为主键,其他的称为候选键。

第三范式:属性不依赖于其他非主属性——>消除依赖传递

       满足第二范式前提,若某一属性依赖于其他非主键属性,而其他非主键属性又依赖于主键,那么这个属性就是间接依赖于主键,这种被称为传递依赖于主属性。

关于上面三种的范式,https://www.cnblogs.com/liuchaogege/p/4655129.html中有简单明了的示例可以说明。

       范式越高,拆分的表会越多,表越多带来的问题是:(1)查询是需要连接多个表,增加查询的复杂度(2)查询时需要连接多个表,降低了查询的性能。

基本数据类型

       MYSQL的数据类型包括:整数类型、浮点类型、定点数类型、日期和时间类型、字符串类型和二进制数据类型。

(1)整数类型

MYSQL基本介绍_第1张图片

       MYSQL支持的数据类型的名称后面指定该类型的显示宽度。基本形式如下:数据类型(显示宽度)

eg:INT(4),指定INT类型的显示宽度为4,在不指定宽度的情况下,每个整数类型都有默认的显示宽度。

       整数类型中还有一个AUTO_INTREMENT属性,该属性可以使字段成为自增字段。具有该属性的字段,在插入新纪录时,该字段的值都会在前一条记录的基础上加1。

(2)浮点数类型和定点数类型

       MYSQL中使用这两种类型来表示小数。

MYSQL基本介绍_第2张图片

(3)日期和时间类型

MYSQL基本介绍_第3张图片

(4)字符串类型

       字符串类型包括:CHAR、VARCHAR、BLOB、TEXT、ENUX和SET。下面主要介绍一下CHAR和VARCHAR类型。

       在创建表时都指定了最大长度,基本形式如下:字符串类型(M)。

       CHAR类型的长度是固定的,在创建表时就指定了。其长度可以是0~255的任意值。

       VARCHAR类型的长度是可变的,在创建表时指定了最大长度。定义时,其值可以取0~65535间的任意数。在指定了VARCHAR类型的最大值后,其长度可以在0到最大值之间。在最大值范围内,使用多少分配多少。VARCHAR实际占用的空间是字符串的实际长度+1。这样,可以有效的节约系统资源。

(5)二进制类型

       在数据库中存储二进制数据的数据类型。二进制类型包括BINARY、VARBINARY、BIT、TINYBLOB、BLOB、MEDIUMSLOB和LONGBLOB。

MYSQL基本介绍_第4张图片

MYSQL基本介绍_第5张图片

SQL数据库操作

(1)连接数据库

命令:MYSQL -u用户名 -p密码;

(2)断开数据库

命令:exit;

(3)查看存在的数据库

命令:show databases;

(4)创建数据库

命令:create database 数据库名;

(5)选择数据库

命令:use 数据库名;

(6)查看数据库下的表

命令:show tables;

(7)删除数据库

命令:drop database 数据库名;

(8)显示数据库

命令:show databases;

你可能感兴趣的:(Java)