随笔- 177  文章- 0  评论- 0  阅读- 1475 

1. 数据库的操作

1.1 显示当前的数据库

1.2 创建数据库

语法:
说明:
大写的表示关键字
[] 是可选项
CHARACTER SET: 指定数据库采用的字符集
COLLATE: 指定数据库字符集的校验规则
示例:
创建名为 db_test1 的数据库
说明:当我们创建数据库没有指定字符集和校验规则时,系统使用默认字符集: utf8 ,校验规则
是: utf8_ general_ ci
如果系统没有 db_test2 的数据库,则创建一个名叫 db_test2 的数据库,如果有则不创建
如果系统没有 db_test 的数据库,则创建一个使用 utf8mb4 字符集的 db_test 数据库,如果有则
不创建
SHOW DATABASES;
CREATE DATABASE [IF NOT EXISTS] db_name [create_specification [,
create_specification] ...]
create_specification:
[DEFAULT] CHARACTER SET charset_name
[DEFAULT] COLLATE collation_name
CREATE DATABASE db_test1;
CREATE DATABASE IF NOT EXISTS db_test2;
CREATE DATABASE IF NOT EXISTS db_test CHARACTER SET utf8mb4;

数据类型 
对应 java 类型
M指定位
数,默认
为1
二进制数,M范围从164,
存储数值范围从02^M-1
常用Boolean对应BIT,此时
默认是1位,即只能存01
TINYINT 1字节
Byte
SMALLINT 2字节
Short
INT
4字节
Integer
BIGINT 8字节
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)
M/D最大
值+2DECIMAL一样
BigDecimal

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

1.3 使用数据库

use 数据库名;
DROP DATABASE [IF EXISTS] db_name;
drop database if exists db_test1;
drop database if exists db_test2;

1.4 删除数据库

语法:
DROP DATABASE [IF EXISTS] db_name;

说明:

数据库删除以后,内部看不到对应的数据库,里边的表和数据全部被删除

2. 常用数据类型

2.1 数值类型:

数据类型 对应 java 类型
VARCHAR (SIZE)
0-65,535 字节
可变长度字符串
String
TEXT
0-65,535 字节
长文本数据
String
MEDIUMTEXT 0-16 777 215 字节 中等长度文本数据
String
BLOB
0-65,535 字节 二进制形式的长文本数据
byte[]
数据类型 对应 java 类型
DATETIME 8 字 节
范围从 1000 9999 年,不会进行时区的
检索及转换。
java.util.Date
java.sql.Timestamp
TIMESTAMP4 字节
范围从 1970 2038 年,自动检索当前时
区并进行转换。
java.util.Date
java.sql.Timestamp
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 类型。

2.2 字符串类型

2.3 日期类型

3. 表的操作

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

3.1 查看表结构

use db_test;
desc 表名 ;
示例:

3.2 创建表

语法:
可以使用 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
);

3.4 删除表

语法格式:
示例:

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;

4. 实例

有一个商店的数据,记录客户及购物情况,有以下三个表组成:
商品 goods( 商品编号 goods_id ,商品名 goods_name, 单价 unitprice, 商品类别 category,
应商 provider)
客户 customer( 客户号 customer_id, 姓名 name, 住址 address, 邮箱 email, 性别 sex ,身份证
card_id)
购买 purchase( 购买订单号 order_id, 客户号 customer_id, 商品号 goods_id, 购买数量 nums)
SQL:
-- 显示
show databases;
-- 创建
create database xxx;
-- 使用
use xxx;
-- 删除
drop database xxx;
-- 查看
show 表;
-- 创建
create table 表名(
字段1 类型1,
字段2 类型2,
...
);
-- 删除
drop talbe 表名;
-- 创建数据库
create database if not exists bit32mall
default character set utf8 ;
-- 选择数据库
use bit32mall;
-- 创建数据库表
-- 商品
create table if not exists goods
(
  goods_id  int comment '商品编号',
  goods_name varchar(32) comment '商品名称',
  unitprice  int comment '单价,单位分',
  category  varchar(12) comment '商品分类',
  provider  varchar(64) comment '供应商名称'
);
-- 客户
create table if not exists customer
(
  customer_id  int comment '客户编号',
  name varchar(32) comment '客户姓名',
  address  varchar(256) comment '客户地址',
  email  varchar(64) comment '电子邮箱',
  sex bit comment '性别',
  card_id varchar(18) comment '身份证'
);
-- 购买
create table if not exists purchase
(
  order_id  int comment '订单号',
  customer_id int comment '客户编号',
  goods_id  int comment '商品编号',
  nums  int comment '购买数量'
);

 posted on   dapaige  阅读(4)  评论(0编辑  收藏  举报  
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示