MySQL数据库《基础篇--库的操作和数据类型》

一、库的操作

1.查看数据库

1.1语法:

sql 复制代码
show databases;

查看当前服务器的所有数据库
databases是复数形式
⼤⼩写不敏感

2.创建数据库

2.1语法:

sql 复制代码
CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name [create_option] ...
create_option: [DEFAULT] {
 CHARACTER SET [=] charset_name
 | COLLATE [=] collation_name
 | ENCRYPTION [=] {'Y' | 'N'}
}

注#

(1)大写的表示关键字
(2)db_name:表⽰⾃定义的数据库名
(3){}⼤插号表⽰必须选
(4)| 表⽰任选其中⼀个
(5)\[\]中括号表⽰是可选项
(6)CHARACTER SET:指定数据库采⽤的字符集编码
(7)COLLATE:指定数据库字符集的校验规则
(8)ENCRYPTION:数据库是否加密,MySQL 8.0.16中引⼊的新选项

2.2⽰例:创建⼀个名为java113的数据库


再次执行上次的创建库:得到


在真下在的工作中,执行SQL语句,不是手动一条一条执行的,而是批量一起执行 ,为了不让某一条语句的错误影响整个执行流程,都会加上一些类似于ifnotexists的校验,防止因为某条SQL出错导致整个SQL中断执行

3.字符集编码和校验(排序)规则

3.1查看数据库⽀持的字符集编码

MySQL8.0默认的字符集编码是utf8mb4 ,MySQL5.7默认的字符集是 latin1

3.2查看数据库⽀持的排序规则


MySQL8.0默认的排序规则是 utf8mb4_0900_ai_ci , MySQL5.7默认排序规则是utf8mb4_general_ci
建议:创建数据库的时候手动确认认定字符集

4.修改数据库

4.1语法

sql 复制代码
ALTER {DATABASE | SCHEMA} [db_name]
 alter_option ...
alter_option: {
 [DEFAULT] CHARACTER SET [=] charset_name
 | [DEFAULT] COLLATE [=] collation_name
 | [DEFAULT] ENCRYPTION [=] {'Y' | 'N'}
 | READ ONLY [=] {DEFAULT | 0 | 1}
}

对数据库的修改主要是修改数据库的字符集,校验规则

4.2示例:

将test+班级名的数据库字符集改成gbk

sql 复制代码
mysql> alter database test001 character set gbk;
Query OK, 1 row affected (0.01 sec)
mysql> show create database test001;
+----------+-------------------------------------------------------------------
-------------
| Database | Create Database 
 
+----------+-------------------------------------------------------------------
-------------
| java01 | CREATE DATABASE `test001` /*!40100 DEFAULT CHARACTER SET gbk */
/*!80016 DEFAULT ENCRYPTION='N' */ |
+----------+-------------------------------------------------------------------
-------------
1 row in set (0.00 sec)

选择要操作的数据库
use数据库名:

5.删除数据库

5.1语法:

sql 复制代码
DROP {DATABASEISCHEMA} [IFEXISTS] db_name

特别注意:!!!

(1)删除数据库是⼀个非常危险操作,不要随意删除数据库
(2)删除数据库之后,数据库对应的⽬录及⽬录中的所有⽂件也会被删除
(3)删除数据库之后,使⽤show databases; 语句查看不到对应的数据库

二、数据类型

1.常⽤数据类型分类

在⾯向对象软件开发的过程中,通常会先进⾏需求分析从⽽得到类和属性,类是⾯向对象中的概
念,对应到数据库中的概念就是实体 ,类中的属性对应实体中的属性。实体通常以表的形式存在 ,每个实体对应⼀张表,表中的每条记录(数据⾏)就是实体的⼀个实例,每条记录⼜包含若⼲字段(或称为 列),每个字段代表实体的⼀个属性。
如果要定义实体的属性,就要为属性命名并指定合适的数据类型。与其他编程语⾔类似,SQL中
规定了⽤于描述属性的数据类型。常⽤的数据类型有以下⼏类:
(1)数据值类型
(2)字符串类型
(3)⼆进制类型
(4)⽇期类型

2.数据值类型

3.字符串类型

4. 日期 / 时间类型

5. JSON 类型

6. 空间类型(拓展)

关键补充说明

1.无符号属性(UNSIGNED):数值类型可加UNSIGNED关键字,取消负数范围,扩大正数范围(如INTUNSIGNED取值0~4294967295)。

2.CHARvsVARCHAR:CHAR定长,查询速度快但浪费空间;VARCHAR变长,节省空间但查询略慢。

3.TIMESTAMP与时区:TIMESTAMP会根据数据库时区自动转换,而DATETIME仅存储字面量,不转换时区。

  1. DECIMAL精度:存储金额时优先用DECIMAL,避免FLOAT/DOUBLE的精度丢失问题(如.1+0.2

日.3)

总结

  1. MySQL数据类型按功能分为数值、字符串、日期时间、JSON、空间五大类,选择时需结合数据用途和范围。

2.数值类型优先选匹配范围的最小类型(如状态值用TINYINT),字符串优先用VARCHAR(固定长度用CHAR),高精度小数用DECIMAL。

3.日期时间类型中,跨时区场景用TIMESTAMP,常规场景用DATETIME,仅存年份用YEAR。

相关推荐
code_whiter3 分钟前
01-MySQL数据库基础
数据库·mysql
weixin_3823952323 分钟前
本地部署 ERP 选型记录:从 Excel 到轻量系统的这几年
数据库·人工智能·数据挖掘
2401_891409261 小时前
期货量化用得上的几类行情数据:逐笔、Level2、分钟线和五档tick
数据库
海绵宝宝转agent1 小时前
基于Redis ZSet+AOP+注解实现限流注解算法
数据库·redis·算法
imDwAaY2 小时前
Redis 也能做消息队列?从 Stream 的存储讲到消费确认
数据库·redis·缓存
@Mike@2 小时前
13-数据库学习笔记(查询执行处理模型)
数据库·笔记·学习
弈栈录2 小时前
MySQL 事务、索引与锁:后端开发必须掌握的数据库基础
数据库·后端
9624563 小时前
餐饮 SaaS 优惠券系统架构演进(三):优惠计算引擎——商品级计价、冲突策略与优惠分摊
java·数据库·spring boot
染指11103 小时前
135.Agent-多Agent框架-LangChain多智能体(SubAgents子代理)
数据库·人工智能·设计模式·langchain·agent·agents
vx_Biye_Design3 小时前
springboot宠物领养与救助平台64334-计算机课程设计、毕业设计
java·vue.js·spring boot·后端·mysql·课程设计·宠物