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。

相关推荐
独自归家的兔1 天前
OCPP 1.6 协议详解:StatusNotification 状态通知指令
开发语言·数据库·spring boot·物联网
qq_372154231 天前
SQL嵌套查询中常见报错排查_语法与权限处理
jvm·数据库·python
0xDevNull1 天前
MySQL 别名(Alias)指南:从入门到避坑
java·数据库·sql
2401_887724501 天前
CSS如何设置文字溢出显示省略号_利用text-overflowellipsis
jvm·数据库·python
m0_747854521 天前
golang如何实现应用启动耗时分析_golang应用启动耗时分析实现思路
jvm·数据库·python
雪碧聊技术1 天前
下午题_试题二
数据库
解救女汉子1 天前
如何截断SQL小数位数_使用TRUNCATE函数控制精度
jvm·数据库·python
2301_803875611 天前
如何用 objectStore.get 根据主键 ID 获取数据库单条数据
jvm·数据库·python
weixin_458580121 天前
如何修改AWR保留时间_将默认8天保留期延长至30天的设置
jvm·数据库·python
qq_654366981 天前
C#怎么实现OAuth2.0授权_C#如何对接第三方快捷登录【核心】
jvm·数据库·python