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

接上篇 Mysql 数据库(一)—— 初识 Mysql

本章内容介绍大纲


在这里插入图片描述


一、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.显示当前的数据库


mysql> show databases;

在这里插入图片描述

2.创建数据库


mysql> create database [数据库名]

在这里插入图片描述
在这里插入图片描述
  展示数据库与 创建数据库 在上一节课中我们已经具体的讲过了,我们重点来看 删除数据库


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


use  [ 数据库名 ]

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

在这里插入图片描述

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

使用use java100;
在这里插入图片描述
  出现 Database changed 则选中成功.当前的数据库已经被选中,后续的操作都是针对这个数据库来展开的.


4.删除数据库


4.1语法


 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类型
tinyintbyte
smallintshort
intInteger
bigintlong
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) 敬请期待~~



谢谢欣赏!



未完待续…

  • 37
    点赞
  • 77
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 32
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 32
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

RAIN 7

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值