MySQL - 数据库基础+表的增删查改(基础)

这篇博客介绍了MySQL数据库的基础知识,包括数据库的分类,如关系型数据库和非关系型数据库,并详细讲解了如何在MySQL中进行数据库的创建、使用和删除。此外,还探讨了常用的数据类型,如数值、字符串和日期类型,以及如何操作表,包括创建、查看、更改和删除表。内容还涵盖了数据的CRUD操作,包括INSERT、SELECT、UPDATE和DELETE语句的使用。
摘要由CSDN通过智能技术生成

本节目标

  • 数据库介绍:数据库分类、主流数据库介绍
  • SQL分类:DDL、DML、DCL
  • 数据库的操作:创建数据库、删除数据库
  • 常用数据类型
  • 表的操作:创建表、删除表

1. 数据库介绍

什么是数据库
存储数据用文件就可以了,为什么还要弄个数据库?
文件保存数据有以下几个缺点:

  • 文件的安全性问题
  • 文件不利于数据查询和管理
  • 文件不利于存储海量数据
  • 文件在程序中控制不方便

数据库存储介质:

  • 磁盘
  • 内存
    在这里插入图片描述

为了解决上述问题,专家们设计出更加利于管理数据的软件——数据库,它能更有效的管理数据。数据库可以提供远程服务,即通过远程连接来使用数据库,因此也称为数据库服务器。

数据库分类
数据库大体可以分为关系型数据库非关系型数据库
关系型数据库(RDBMS):
是指采用了关系模型来组织数据的数据库。简单来说,关系模型指的就是二维表格模型,而一个关系型数据库就是由二维表及其之间的联系所组成的一个数据组织。
基于标准的SQL,只是内部一些实现有区别。常用的关系型数据库如:

  1. Oracle:甲骨文产品,适合大型项目,适用于做复杂的业务逻辑,如ERP、OA等企业信息系
    统。收费。
  2. MySQL:属于甲骨文,不适合做复杂的业务。开源免费。
  3. SQL Server:微软的产品,安装部署在windows server上,适用于中大型项目。收费。

非关系型数据库:
(了解)不规定基于SQL实现。现在更多是指NoSQL数据库,如:

  1. 基于键值对(Key-Value):如 memcached、redis
  2. 基于文档型:如 mongodb
  3. 基于列族:如 hbase
  4. 基于图型:如 neo4j

关系型数据库与非关系型数据库的区别
在这里插入图片描述注:OLTP(On-Line Transaction Processing)是指联机事务处理,OLAP(On-Line AnalyticalProcessing)是指联机分析处理。

2. SQL分类

  1. DDL数据定义语言,用来维护存储数据的结构 代表指令: create, drop, alter
  2. DML数据操纵语言,用来对数据进行操作 代表指令: insertdeleteupdate
    DML中又单独分了一个DQL,数据查询语言,代表指令: select
  3. DCL数据控制语言,主要负责权限管理和事务 代表指令: grantrevokecommit

以上SQL我们主要会在后面学习DDL和DML的操作。

3. 数据库的操作

3.1 显示当前的数据库

SHOW DATABASES;

3.2 创建数据库

语法:

CREATE DATABASE [IF NOT EXISTS] db_name [create_specification [,
create_specification] ...]

create_specification:
	[DEFAULT] CHARACTER SET charset_name
	[DEFAULT] COLLATE collation_name

说明:

  • 大写的表示关键字
  • []是可选项
  • CHARACTER SET:指定数据库采用的字符集
  • COLLATE:指定数据库字符集的校验规则

在这里插入图片描述字典序(dictionary order),又称 字母序(alphabetical order),原意是表示英文单词在字典中的先后顺序,在计算机领域中扩展成两个任意字符串的大小关系。

英文中的 字母表(Alphabet) 按照如下的顺序排列:

ABCDEFG HIJKLMN OPQRST UVWXYZ

abcdefg hijklmn opqrst uvwxyz

示例:

  • 创建名为 db_test1的数据库
CREATE DATABASE db_test1;

说明:当我们创建数据库没有指定字符集和校验规则时,系统使用默认字符集:utf8,校验规则是:utf8_ general_ ci

  • 如果系统没有 db_test2的数据库,则创建一个名叫 db_test2的数据库,如果有则不创建
CREATE DATABASE IF NOT EXISTS db_test2;
  • 如果系统没有 db_test的数据库,则创建一个使用utf8mb4字符集的 db_test数据库,如果有则不创建
CREATE DATABASE IF NOT EXISTS db_test CHARACTER SET utf8mb4;

说明:MySQL的utf8编码不是真正的utf8,没有包含某些复杂的中文字符。MySQL真正的utf8是使用utf8mb4,建议大家都使用utf8mb4

3.3 使用数据库

use 数据库名;

例如:

use db_test;

3.4 删除数据库

语法:

DROP DATABASE [IF EXISTS] db_name;

说明:

  • 数据库删除以后,内部看不到对应的数据库,里边的表和数据全部被删除
drop database if exists db_test1;
drop database if exists db_test2;

4. 常用数据类型

4.1 数值类型

分为整型和浮点型:

在这里插入图片描述在这里插入图片描述在这里插入图片描述

扩展资料:
数值类型可以指定为无符号(unsigned),表示不取负数。
1字节(bytes)= 8bit。
对于整型类型的范围:

  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类型。

4.2 字符串类型

在这里插入图片描述
在这里插入图片描述

4.3 日期类型

在这里插入图片描述
System.currentTimeMills()得到的值能够和Date类方便地转换(在JDBC数据库中,使用java.mysql.timestamp进行转换为Date类型

5. 操作表

5.1 创建表

语法:

CREATE TABLE table_name (
	field1 datatype,
	field2 datatype,
	field3 datatype
);

可以使用comment增加字段说明。
在这里插入图片描述

示例:

create table stu_test (
	id int,
	name varchar(20) comment '姓名',
	password varchar(50) comment '密码',
	age int,
	sex varchar(1),
	birthday timestamp,
	amout decimal(13,2),
	resume text
);

5.2 查看数据库中的表

show tables;

在这里插入图片描述

5.3 查看表结构

desc 表名;

示例:
在这里插入图片描述【MySQL】MySQL 中的 int(11) 到底代表什么意思?
在这里插入图片描述
在这里插入图片描述

5.4 更改表

ALTER关键字(这个不用管)

5.5 删除表

语法格式:

DROP [TEMPORARY] TABLE [IF EXISTS] tbl_name [, tbl_name] ...

示例:

-- 删除 stu_test 表
drop table stu_test;
-- 如果存在 stu_test 表,则删除 stu_test 表
drop table if exists stu_test;

6. 操作表的内容

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

use db_test;
  • 注释:在SQL中可以使用“--空格+描述”来表示注释说明
  • CRUD即增加(Create)、查询(Retrieve)、更新(Update)、删除(Delete)四个单词的首字母缩写。

6.1 新增(Create)

语法:

INSERT [INTO] table_name
	[(column [, column] ...)]
	VALUES (value_list) [, (value_list)] ...
value_list: value, [, value] ...

案例:

-- 创建一张学生表
DROP TABLE IF EXISTS student;
CREATE TABLE student (
	id INT,
	sn INT comment '学号',
	name VARCHAR(20) comment '姓名',
	qq
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值