[MySQL] 基础操作

一. 数据库的操作

1.显示当前数据库

语法 : show databases;

2.创建数据库

语法 : create database [if not exists] 数据库名 [character set utf8mb4] [collaction utf8mb4_0900_ai_ci] [encryption {'Y'|'N'}]

  • 加粗部分为关键字
  • 数据库名可以自己指定
  • {} 中为必选 , \[\] 中为可选
  • if not exists : 如果不存在 该数据库名的数据库 , 则添加
  • character set : 为数据库指定 字符集编码
  • collaction : 为数据库指定 字符集的校验规则
  • encryption : 数据库是否加密

示例 :

create database if not exists bit_mall_1017 ;

3.字符集编码和校验规则

① 查看数据库支持的字符集编码

语法 : show charset;

  • MySQL8.0 的默认字符集编码是 utf8mb4

② 查看数据库支持的排序规则

语法 : show collaction;

  • MySQL 的默认排序规则是 utf8mb4_0900_ai_ci(utf8mb4 字符集 , 0900 基于 UCA9.0.0算法 , ai 口音不敏感 , ci 大小写不敏感 )
  • as 是口音敏感 , cs 是大小写敏感 , bin 表示二进制

③ 查看系统默认字符集

语法 : show variables like '%character%';

④ 查看系统默认排序规则

语法 : show variables like '%collation%';

4.使用数据库

语法 : use 数据库名

5.删除数据库(一般禁用)

语法 : drop database [if exists] 数据库名

6 .补充

① 为了防止使用的数据库名刚好是关键字 可以子啊命名时加上反引号 ` `

② 查看警告信息

语法 :show warningss;

③ 重新另起一行 语法 : ctrl+c(^C)

④ 查看 MySQL 的帮助指令 : ?

⑤ 退出客户端 : \q

二.常用数据类型

1.数值类型

|--------------------|----------------|-------------------------------------------------------------------------|---------------------------------------|
| 数值类型 | 大小 | 说明 | 对应 Java 类型 |
| BIT(M) | M 指定位数 , 默认为 1 | 二进制数 , M 的范围从 1 到 64 , 存储数据范围从 0 到 2^M-1 | 常用 Boolean 对应 BIT , 此时默认是一位 , 只能存 0,1 |
| TINYINT(M) | 1 字节 | 范围 -2^7~2^7-1 , 无符号范围 2^8-1 | Byte |
| BOOL | 1 字节 | TINYINT(1)同义词 , 0 为假 , 非 0 为真 | Boolean |
| SMALLINT | 2 字节 | 范围 -2^15~2^15-1 , 无符号范围 2^16-1 | Short |
| MEDOUMINT(M) | 3 字节 | 范围 -2^23~2^23-1 , 无符号范围 2^24-1 | |
| INT | 4 字节 | 范围 -2^31~2^31-1 , 无符号范围 2^32-1 | Interger |
| BIGINT | 8 字节 | 范围 -2^63~2^63-1 , 无符号范围 2^64-1 | Long |
| FLOAT(M , D) | 4 字节 | 单精度浮点数 , M 是总位数 , D 是小数点后的位数 | Float |
| DOUBLE(M , D) | 8 字节 | 双精度浮点数 , M 是总位数 , D 是小数点后的位数 | Double |
| DECIMAL(M , D) | M/D+2(动态) | 不存在精度丢失 , M 是总位数 , 默认为 10(M 中不计算-号 , 和小数点) ; D 是小数点后的位数 , 默认为 0(没有小数部分) | BigDecimal |

2.字符串类型

|----------------|----------------|------------|------------|
| 数据类型 | 大小 | 说明 | 对应 Java 类型 |
| VARCHAR(M) | 0~65535 字节 | 可变长度字符串 | String |
| TEXT | 0~65535 字节 | 长文本数据 | String |
| MEDUIUMTEXT | 0~16777215 字节 | 中等长度文本数据 | String |
| BLOB | 0~65535 字节 | 二进制形式的文本数据 | Byte\[\] |

3.日期操作

|-----------|------|----------------------------------------------------------------------------|-----------------------------------|
| 数据类型 | 大小 | 说明 | 对应 Java 类型 |
| DATE | 3 字节 | 日期类型 , 范围 1000-01-01~9999-12-31 | java.util.Date java.sql.Timestamp |
| DATETIME | 8 字节 | 日期+时间类型的组合 , 范围: 1000-01-01 00:00:00.000000 ~ 9999-12-31 23:59:59.4999999 | java.util.Date java.sql.Timestamp |
| TIMESTAMP | 4 字节 | 时间戳类型 , 范围:1970-01-01 00:00:01.000000~2038-01-19 03:14:07.499999 | java.util.Date java.sql.Timestamp |

三.表的操作

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

1.查看所有表

语法 : show tables;

1.创建表

语法 : create [temporary] table [if not exists] 表名( 列名 数据类型 [comment '注释内容'] [,列名 数据类型 [comment '注释内容']] );

示例 :

复制代码
create table goods(

goods_id int comment '商品编号',

goods_name varchar(50) comment '商品名称',

unitprice int comment '单价',

category varchar(50) comment '商品类别',

provider varchar(50) comment '供应商'

);

2.修改表

语法 : ALTERTABLE 表名 alter_option \[, alter_option ...];

alter_option: {

table_options

| ADD COLUMN col_name column_definition FIRST \| AFTER col_name

| MODIFY COLUMN col_name column_definition FIRST \| AFTER col_name

| DROP COLUMN col_name

| RENAME COLUMN old_col_name TO new_col_name

| RENAME TO \| AS new_tbl_name

  • ADD : 向表中添加列
  • MODIFY : 修改表中现有列
  • DROP : 删除表中现有列
  • RENAME COLMN : 重命名表中的现有列
  • RENAME TO\|AS new_tbl_name : 重命名当前表

3.删除表

语法 : drop temporary table if exists 表名 ,表名

示例 : drop table if exists books;


相关推荐
zcn1267 分钟前
exists子查询改写思考
数据库·sql·sql优化改写
betazhou28 分钟前
mysql shell8.4.10+mysql 8.4.10搭建MySQL replicaset主从
数据库·mysql·ffmpeg·replicaset·mysql shell
zcmodeltech1 小时前
反应装置模型控制系统设计与实现:多设备协同联动方案
java·网络·数据库·stm32·嵌入式硬件·能源·制造
Elastic 中国社区官方博客1 小时前
从建议到修复的 4 个阶段:使用 Elastic Workflows 实现人在回路中的自动化
运维·数据库·人工智能·后端·elasticsearch·ai·自动化
北京靠谱的GEO优化机构1 小时前
海外推广:没有媒体内容,SEO就是“无米之炊“
服务器·数据库·媒体
2601_962071571 小时前
数据库系统架构与DBMS功能探微:现代信息时代数据管理的关键
java·开发语言·数据库
circuitsosk2 小时前
从零搭建行业知识平台:向量库+图数据库+传统关系库的多模检索统一层设计
数据库·python·oracle·向量数据库·rag·多模检索
程序员夏洛2 小时前
Redis 中如何实现分布式锁?
数据库·redis·分布式
2601_962065252 小时前
2.启动mysql容器
java·数据库·mysql
2601_962174173 小时前
Spring 核心技术解析【纯干货版】- XI:Spring 数据访问模块 Spring-Oxm 模块精讲
数据库·python·spring