Mysql 数据库(二)——数据库基础

2021-08-11 16:42:59 浏览数 (1)

本章内容介绍大纲

一、SQL 语句分类

  SQL语句有很多,我们最好分门别类,这样容易记忆…

1.DQL(数据查询语言)

  数据查询语言(Data Query Language, DQL)是SQL语言中,负责进行数据查询而不会对数据本身进行修改的语句,这是最基本的SQL语句。

我们在 看到 select … 这样的 sql 语句,都是数据查询语句,凡是带有 select 关键字的 SQL 语句都是 DQL 语句

2.DML(数据操纵语言)

  数据操纵语言(Data Manipulation Language, DML)是SQL语言中,负责对数据库对象运行数据访问工作的指令集,以INSERT、UPDATE、DELETE三种指令为核心,分别代表插入、更新与删除。

凡是带有INSERT、UPDATE、DELETE 关键字的语句都是 DML

insert —— 插入,等同于增 update —— 更新,等同修改 delete —— 删除

这个主要操作的是表中的数据

3.DDL(数据定义语言)

  数据定义语言 (Data Definition Language, DDL) 是SQL语言集中,负责数据结构定义与数据库对象定义的语言,由creat、alter 与 drop 三个语法所组成. DDL 主要操作的是 表的结构 不是表中的数据

凡是带有 create(增)、alter (改)、drop (删) 关键字的语句都是 DDL

create —— 新建、等同于增 drop —— 删除 alter —— 修改

这个增删改与 DML 有所不同,这个主要是对表结构进行操作.

4.DCL(数据控制语言)

  数据控制语言 (Data Control Language) 在SQL语言中,是一种可对数据访问权进行控制的指令,它可以控制特定用户账户对数据表、查看表、预存程序、用户自定义函数等数据库对象的控制权。对数据的权限进行控制的语言.

例如:

请求授权—— grant 撤销授权 —— revoke …

5.TCL(事务处理语言)

  这里的TCL可不是王牌电视,事务处理语言(Transaction Control Language),它的语句能确保被DML语句影响的表的所有行及时得以更新。是一种事务控制语言。

TCL 主要包括

事务提交 —— commit 事务回滚 —— rollback …

  现在我们还没学到,到我们在后面就会接触到了。

二、数据库的分类

  在上节课中 我们了解了 几种数据库软件(mysql、sql server、Oracle …),我们来看一看数据库的分类

1.关系型数据库

Mysql、Sql server 、Oracle 、SqLite 属于 关系型数据库

把数据按照 的形式来进行组织(类似于Excle这种形式的). 关系型数据库能够对数据进行更严格的校验,带来更好的数据的完整性.

2.非关系型数据库

Redis 、 HBase 、MongoDB …属于 非关系型数据库

把数据按照 文档 的形式来进行组织,文档和文档之间的差别可以较大. 更灵活的组织数据,效率更高,更容易在分布式环境下使用.

那么什么是表呢?

3.表的理解

数据库中最基本的结构是表—— table

什么是表 table ? 为什么用 表 table 进行存储数据呢?

我们给大家看一下什么是表,相信 EXcel 大家都用过

这样的结构 就是一个简单的表,表是组织数据的一种形式

数据库中是以 表格的形式来表示数据的,因为 表格比较直观.

任何 表 都有行和列

行(row): 被称为数据/ 记录

列 (column): 被称为字段

  在这个表中 列的数据就表示字段,有 姓名字段、性别字段、年龄字段,每一行的数据表示记录.

了解一下,每个字段都有 字段名、数据类型、约束条件等属性.

字段名: 只是一个普通的名字,见名知意就行了.

数据类型: 字符串类型,数字、日期等类型,在后面我们会详细介绍

约束:约束也有很多,其中有一个叫做唯一性约束,这种约束添加后,该字段的数据不能重复.

那我们怎么查看 某个数据库中的 表呢?

1.查看我们有哪些数据库

2.选中我们想要查看的数据库

3.查看数据库中的表

三、数据库操作

1.显示当前的数据库

代码语言:javascript复制
mysql> show databases;

2.创建数据库

代码语言:javascript复制
mysql> create database [数据库名]

  展示数据库与 创建数据库 在上一节课中我们已经具体的讲过了,我们重点来看 删除数据库

3.选中数据库/使用数据库

代码语言:javascript复制
use  [ 数据库名 ]

  要想对数据库进行更具体的操作 (建表、查询、…)就需要先确定是针对那个数据库进行的.

例如: 我们在查询完数据库之后,希望选中 java100 这个数据库.

使用use java100;

  出现 Database changed 则选中成功.当前的数据库已经被选中,后续的操作都是针对这个数据库来展开的.

4.删除数据库

4.1语法

代码语言:javascript复制
 drop database [数据库名];

说明:

  数据库删除后,内部看不到对应的数据库,里边的表和数据全部被删除.

我们对这个数据库进行简单的删除操作…

我们在这个数据库中新建了一个 rain7 的数据库

然后我们输入

drop database rain7 ;

进行删库操作

再次查看数据库

rain7 的数据库 已经成功被删去了…

在这里 我们希望大家牢牢记住

   一旦删除数据库,这里的 数据通过常规的手段就找不回来了!!!所以删除数据库是一个非常危险的操作!!~~

  以后在工作中,无论如何都不要使用 drop database 操作,尤其是针对线上环境~

四、常用数据类型

1.数值类型

分为整形 与 浮点型

扩展资料

数值类型可以指定为无符号(unsigned),表示不取负数。

对于整型类型的范围:

1.有符号范围:-2 ^ (类型字节数 * 8-1)到2 ^ (类型字节数 * 8-1)-1,如int是4字节,就是-2^ 31 到 2^31-1

2.无符号范围:0到2 ^ (类型字节数*8)-1,如int就是2 ^ 32-1

  尽量不使用unsigned,对于int类型可能存放不下的数据,int unsigned同样可能存放不下,与其如此,还不如设计时,将int类型提升为bigint类型。

bit [ M () ]

  bit 就表示一个二进制的数据,在方括号里我们可以指定该数据占多少个bit 位,M()就来指定有多少位,如果不指定的话,默认就为 1.

数据类型

对应Java类型

tinyint

byte

smallint

short

int

Integer

bigint

long

float(M,D)

float

double(M,D)

double

decimal(M,D)

bigdecimal

float (M,D)的含义

float (3,1)—— 有效数字是 3 位,小数点后保留一位.

95.5 合法 25.1 合法 101.2 不合法

decimal 在之前我们没有接触过

  Java中的 float 和 double 都是有问题的,不能精确表示一些数据 ~~ 遵循 IEEE754 标准,受限于浮点数在内存中的表示.

  后来Java为了解决这个问题,就有了 bigdecimal,内部使用其他方式来存储表示浮点数,就能够做到更精确的表示~~

  所以在 sql 中也有一个 decimal 来对应Java中的 bigdecimal.

2.字符串类型

varchar (size) 在() 中我们可以规定 字符串的大小,具体是字符的个数~~

blob 针对的类型主要是 二进制形式的文本数据

3.日期类型

  现在我们写代码优先使用 datetime 这个时间戳,因为 表示的范围更大

我们如何使用时间类型?

五、表的操作

需要操作数据库中的表时,需要先使用该数据库

use db_test;

1.查看表结构

desc 表名;

我们来使用一下该条命令语句

1.选中数据库,查看该数据库中的所有 table

2.查看表结构

表结构的具体解释

2.创建表

create table table_name(字段 类型,字段 类型 , …);

语法:

与其他编程语言 定义的不一样,在MySQL中 类型放在 字段的后面.

java 中可以用 // 表示注释 mysql中可以用 comment 表示注释说明,也可以用 - - 表示注释~

我们可以操作一下,我们想要添加一个工作人员表,以下图为例,同样在java100 的数据库中添加该表

1.查找数据库,选中Java100;

2.创建一个 工作人员表,要求有姓名,年龄,性别等属性~

3.查看表结构

3.删除表

drop table table_name;

我们再次来练习,删除我们在之前操作建立的 workers 这个表

1.删除 worker 这个表

2.查看删除成功

此时 workers 已经不存在.

六、建表小练习

给大家一个小练习,来熟悉 MySQL的基本操作吧

有一个商店的数据,记录客户及购物情况,有以下三个表组成:

商品goods ( 商品编号 goods_id,商品名 goods_name , 单价 unitprice , 商品类别 category , 供应商 provider )

客户 customer ( 客户号 customer_id , 姓名 name ,住址 address ,邮箱email,性别 sex ,身份证 card_id )

购买 purchase ( 购买订单号 order_id , 客户号 customer_id ,商品号 goods_id ,购买数量 nums ).

  数据库还有表的 增删查改 操作,我们会在下一节中集中介绍.

  好了今天的知识就分享到这里,希望大家多多练习,熟练掌握,感谢大家的欣赏与关注!!

  下一篇~ Mysql 数据库(三)—— 表的增删查改(CRUD) 敬请期待~~

谢谢欣赏!

未完待续…

0 人点赞