数据库学习1(MySQL)

前言

概述

数据库就是保存数据的仓库,我们常说的数据库是xx数据库管理软件,是组织并存储数据的软件,一般是存储在硬盘上,也有些是存储在内存中。

分类

数据库主要可以分成两类:

名称特点
关系型数据库数据的组织形式使用“表”作为结构,首先得有一个表头,表头里约定有很多列,以及每一列的类型,插入的数据就是表中的一行,这一行里的每一列都要和表头对应
非关系型数据库数据的组织形式是使用“键值对”作为结构,类似于Map,存储的时候需要指定Key和Value,每组数据的value中需要包含哪些字段没有明确要求,对于数据的要求更低

非关系型数据库,牺牲了一部分的功能,但是换来了更高的效率以及更强的水平扩展能力,更适合用于分布式系统。

SQL

SQL是一种编程语言,是** “结构化的查询语言” **
(MySQL、SqlServer…都是数据库软件)
操作数据库是主要使用的额就是SQL语言
关系型数据库都是支持SQL的,虽然不同的数据库软件支持的SQL细节可能不太一样,但是整体差别不大。

相关操作

MySQL服务器是一个软件,这个软件运行软件过程中可以维护多个逻辑上的数据库
例如:实现一个商品管理系统,需要创建一个商品信息数据库,实现一个动物信息管理系统需要创建一个动物信息数据库,MySQL服务器可以放入这两个逻辑上的数据库。

1.查看数据库
代码:

show databases;

在这里插入图片描述

MySQL中的SQL绝大部分都要带分号,个别不需要

2.创建数据库

create database[数据库名];

在这里插入图片描述
3.使用数据库

当前有多个数据库,通过使用操作,就能选中某个数据库,接下来的命令都是针对这个数据库生效的。

use 数据库名;

4.删除数据库

drop database[数据库名];

输出: mysql> drop database test1;
Query OK, 6 rows affected (0.08 sec)

删除操作非常危险,一旦删除通过常规手段是无法找回的.

更好的删除操作:

drop database if exists 数据库名;

mysql> drop database if exists test1;
Query OK, 0 rows affected, 1 warning (0.00 sec)

常用数据类型

数据类型大小说明对应Java类型
BIT[(M)]M指定位数,默认为1二进制数,M范围从1到64,存储范围为0到2^M-1常用Boolean对应BIT,此时默认为1位,只能存0和1
TINYINT1字节Byte
SMALLINT2字节Short
INT4字节Integer
BIGINT8字节Long
FLOAT(M,D)4字节单精度,M指定长度,D指定小数位数,会发生精度丢失Float
DOUBLE(M,D)8字节Double
DECIMAL(M,D)M/D最大值+2双精度,M指定长度,D表示小数点位数.精确数值BigDecimal
NUMERIC(M,D)同上同上同上

常用串字符类型

数据类型大小说明对应Java类型
VARCHAR (SIZE)0-65,535字节可变长度字符串String
TEXT0-65,535字节长文本数据String
MEDIUMTEXT0-16 777 215字节中等长度文本数据String
BLOB0-65,535字节二进制形式的长文本数据byte[]

日期类型

数据类型大小说明对应Java类型
DATETIME8 字 节范围从1000到9999年,不会进行时区的检索及转换。java.util.Date、java.sql.Timestamp
TIMESTAMP4 字 节范围从1970到2038年,自动检索当前时区并进行转换。java.util.Date、java.sql.Timestamp

表的相关操作

使用表之前要先 use 数据库

mysql> use test;
Database changed

创建表

create table shop (字段名 类型 ,字段名 类型...);

mysql> create table shop(
-> id int,
-> name varchar(20)
-> );
Query OK, 0 rows affected (0.02 sec)

查看表

desc 表名;

创建表的时候如果表名或者列名和SQL中的关键字重复了,就会报错.
可以把名字冲突的部分用反引号引起来就能解决这个问题

查看有多少表

show tables;

创建一个复杂点的表

create table goods(
    goods_id int,
    goods_name varchar(50),
    unit_price decimal(7,2),
    category varchar(50),
    provider varchar(50)
);

create table customer(
    customer_id int,
    name varchar(20),
    address varchar(50),
    email varchar(20),
    sex varchar(5),
    card_id varchar(20)
);


create table purchase (
    order_id int,
    customer_id int,
    goods_id int,
    nums int
)

mysql> show tables;
±---------------+
| Tables_in_test |
±---------------+
| customer |
| goods |
| purchase |
±---------------+
3 rows in set (0.00 sec)

查看一下customer表:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值