MySQL的必知必会------初识MySQL

Posted JunFengYiHan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL的必知必会------初识MySQL相关的知识,希望对你有一定的参考价值。

数据库简介

我们都知道mysql是数据库的一种, 那么数据库是什么呢? 数据库其实就是通过各种数据结构来组织和管理数据的软件, 和我们日常用的软件没啥区别, 学会使用规则就可以了,即SQL语句.

  • SQL分类:DDL、DML、DCL.
  • DDL数据定义语言,用来维护存储数据的结构 代表指令: create, drop, alter
  • DML数据操纵语言,用来对数据进行操作 代表指令: insert,delete,update
  • DML中又单独分了一个DQL,数据查询语言,代表指令: select
  • DCL数据控制语言,主要负责权限管理和事务 代表指令:
    grant,revoke,commit

数据库分为关系型数据库(RDBMS)和非关系型数据库两种

  • 关系型数据库有: Oracle, MySQL, SQL Server , SQLite…
  • 非关系型数据库有: memcached, redis, mongodb, hbase, neo4j…
关系型数据库非关系型数据库
使用SQL不强制要求,一般不基于SQL实现
事务支持支持不支持
复杂操作支持不支持
海量读写操作效率低效率高
基本结构基于表和列,结构固定灵活性比较高
使用场景业务方面的OLTP系统用于数据的缓存、或基于统计分析的OLAP系统

ps: OLTP(On-Line Transaction Processing)是指联机事务处理,OLAP(On-Line AnalyticalProcessing)是指联机分析处理.
ps: 百度百科对数据库的说明链接

MySQL简介

MySQL属于关系型数据库, 所谓的关系型数据库就和excel差不多, 都是以表格的形式组织数据, 那么为什么使用MySQL, 主要是因为它是免费的, 所谓一时白嫖一时爽, 一直白嫖一直爽.
MySQL分为客户端和服务器, 客户端发送网络请求给服务器, 然后客户端返回网络响应给客户端, 一台服务器可以同时连接多个客户端 , 并且是通过网络传输的, 所以服务器和客户端可以不在同一台主机上

MySQL目前主流使用5.7版本和8.0版本, 博主使用的是5.7版本 , 看博主文章跟着实操的,尽量保证大版本一致,使用5.7系列, 使用8.0系列难免会有所差异.
安装软件就不多赘述了, 百度一下有很多安装方式, 官方下载连接附上

其他的下载+安装很详细,懒得找的小伙伴们可以使用这个

MySQL的操作

我们直接在控制台进行SQL练习, 也就是这个黑框框, 我们先来见识一下库操作, 下面所有的 [描述] 都是一个暂时代替的东西, 不是实际敲的SQL语句, 分号是要的.

库操作

show databases; --显示所有数据库
create database [数据库名]; --创建一个数据库
use [数据库名]--使用/打开 这个数据库 
drop database [数据库名]; --删除数据库

按照上面的语句套用,首先是显示目前所有的数据库, 显示的不一定完全一样, 能成功显示就没问题.

然后套用第二条语句, 建一个名字为abc 的数据库, 然后显示一下, 可以看到

然后use使用 abc 这个数据库,可以看到提示

最后我们删除刚刚创建的数据库abc, 再次显示就已经不存在数据库abc了

  • 尽量不要使用删库操作,就算要删库,操作也一定要非常非常小心, 删错了就连夜跑路吧

基本数据类型

  • 数据类型是用于建表时指定每一列的数据类型
  • SQL中的关键字不区分大小写 ,加粗的类型是常用或者建议使用的类型
  • 字符串可以使用单引号,也可以使用双引号,但是所有字符都必须是英文的
sql类型说明大小byte对应的Java类型
bit(指定位数,默认为1位)二进制数, M范围从1到64, 存储数值范围从0到2^M-11bit常用Boolean对应BIT,此时 默认是1位,即只能存0和1
tinyint1Byte
smallint2Short
int4Integer
bigint8Long
float(总长度,小数位数)单精度,M指定长度,D指定 小数位数。会发生精度丢失4Float
double(总长度,小数位数)8Double
decimal(总长度,小数位数)双精度,M指定长度,D表示 小数点位数。精确数值长度和小数点位数较大者+2BigDecimal
numeric(总长度,小数位数)双精度,M指定长度,D表示 小数点位数。精确数值长度和小数点位数较大者+2BigDecimal

字符串类型

sql类型说明大小byte对应的Java类型
varchar(字符串大小)可变长字符串0-65535String
text长文本数据0-65535String
mediumtext中等长度文本数据0-16777215String
blob二进制形式的长文本数据0-65535byte[]

日期类型

sql类型说明大小byte对应的Java类型
datetime1000-99999年,不会进行时区的检索和转换8Java.util.Data、java.sql.Timestamp
timestamp1970-2038自动检索当前时区,并进行转换4java.util.Date、java.sql.Timestamp

基础表操作

create table [表名]([列名,类型]);--创造一个表格
show tables;--显示当前数据库下的所有表格
desc [表名];--查看表的结构
drop table [表名];--删除表

在建表之前,需要选择一个数据库,如何将表结构放入其中.现在使用上面讲过的库操作建一个数据库,建好之后使用它, 博主建了一个名为test的数据库

是不可以建一个没有结构的空表的, 就是说一个表最少是需要一列的,所以我们就需要给表一定的结构

创建表格的模板如下, 可以写成一行,但是建议分行写,更加清晰

  • SQL中 -- 表示注释
--创造一个表格
create table [表名] (
    属性名称 类型,
    属性名称 类型,
    属性名称 类型,
    ...
    属性名称 类型--最后面不加,
);--以分号结尾

如下我们创建了一个表名为student的表,表中有id ,name ,age ,score四个属性

然后我们来查看表的结构,往表中插入数据时一定要明确表中的数据类型,不然会造成插入失败,下篇博客介绍CRUD(增删改查)

最后是删除操作,由于只有一个表,删除之后就没有了,所以就返回了empty set

一些小结和建议

  • SQL中的关键字是不区分大小写, 喜欢那种用那种
  • 书写的SQL语句可以不在一行也可以在一行,建议不要全部写在一行
  • 不建议在控制台直接书写SQL语句, 建议使用 vscode ,notepad++, sublime test 3等文本编辑器书写, Java程序员也可以直接使用idea编写,最差也可以拿记事本写,不熟练的情况下不要直接在控制台输入
  • drop操作可以忘记, 因为删库删表是非常危险的, 可能会丢失大量数据
  • 数据类型要合理选取,一般能够放下数据就行,尽量不要浪费空间

建表练习

  • 商品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)

参考代码

--商品表
create table goods(
    goods_id int,
    goods_name varchar(20),
    unitprice decimal(10,1),
    category varchar(10),
    provider varchar(20)
);
--客户信息表
create table customer(
    customer_id int,
    customer_name varchar(20),
    address varchar(50),
    email varchar(50),
    sex varchar(5),
    card_id varchar(18)
);
--购买清单
create table purchase(
    order_id int,
    customer_id int,
    goods_id int,
    nums int
);

写在最后的话

SQL的代码就是多敲多练, 一般就没啥问题了, 由于博主水平有限,文中难免出现错误,或者表述不清的地方,或者有什么建议都欢迎各位小伙伴,在评论区或者私信博主提出,如果博客对大家有所帮助就请点个赞吧,谢谢大家,我们下篇博客见.

以上是关于MySQL的必知必会------初识MySQL的主要内容,如果未能解决你的问题,请参考以下文章

MySQL的必知必会------初识MySQL

MySQL的必知必会------初识MySQL

mysql必知必会第一节

MySQL必知必会 第7-9章

Carson带你学Java:关于String类的必知必会!

MySQL必知必会-资源下载