👨💻作者简介:👨🏻🎓告别,今天
📔高质量专栏 :☕java趣味之旅
📔(零基础)专栏:MSQL数据库
欢迎🙏点赞🗣️评论📥收藏💓关注
💖衷心的希望我的📙作品能给大家带来收获。
让我们如大自然般🌱悠然自在😊地生活一天吧,
别因为有坚果外壳或者蚊子翅膀落在铁轨上🛤️而翻了车🚆。让我们该起床时🛏️就赶紧起床🛏️,
该休息🛏️时就安心休息🛏️,
保持安宁而没有烦扰的心态;身边的人要来就让他来,要去就让他去,
让钟声🕰️回荡,让孩子👼哭喊—
下定决心好好地过一天。🙏希望大家都可以过好每一天。也🙏希望我的博客,能给大家带来💯收获。
SHOW DATABASES;//输入的单词之前要带有空格,多个空格是可以的,至少要有一个,最后要带上分号,而且必须是英文分号,要大写就全部大写,要不是大写就全部小写
以上的四个就是MySQL自带的数据库“系统库”;这几个系统库不能乱搞,容易把数据库给搞嘎了.
set?是什么?
在这里是集合的意思
sec (second)秒
如果看到0.00 sec的意思,花的时间小于10毫秒,而不是没花时间!
当我们出错时,如下图
会告诉我们在哪里出错,在错误最后是最核心信息
创建的数据库名字,要求不能和SQL的“关键字”重复,如果实在想用关键字作为数据库名,可以使用反引号,把这个名字引起来,反引号键盘的esc下面
语法:
create database;
后续创建数据库的时候,建议大家,使用utf 8作为字符集,否则MySQL 5.7默认字符集是拉丁文不支持中文,MySQL 8默认好像就是utf 8了
utf8 不包含 emoji 表情
utf8mb4 是完全体 utf8 (mysql 独有的)
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: 指定数据库字符集的校验规则
示例:
创建名为 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
后续的进一步操作,都是需要先选中再操作。接下来的操作都是针对这个被选中的数据库进行的,在存在多个数据库的情况下,这样的设定是非常有用的。“选中”就像我们玩的红警一样,选中单位才能下达指令
use 数据库名;
DROP DATABASE [IF EXISTS] db_name;
如果删除掉自带的数据库,数据库就得重装了
高风险操作 有可能从删库到跑路
说明:
数据库删除以后,内部看不到对应的数据库,里边的表和数据全部被删除
drop database if exists db_test1; drop database if exists db_test2:
删除数据库的操作非常危险~
数据删了就无了,一旦删除了比较重要的数据,很可能在这个职位就待不下去了。
分为整型和浮点型:
此处的float和double都是和java/c类似都是IEEE754 标准规定的格式来表示的
使用以上的表示方式,表达数据存在精度偏差!
所以,使用上述的float和double的时候不适合用来表示那种对于“精度要求 ”很高的场景
扩展资料
数值类型可以指定为无符号(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类型。
varchar 后面参数的数字,单位是“字符”,而不是“字节”。
TEXT 这里的长度是靠“自适应”的。
比较依赖自动扩容
实际开发中,很多时候为了明确数据存储的上限,往往会慎重使用TEXT,更多使用 varchar。
例如:
预估项目涉及到的数据最多要占据多少空间,才能申请要搞一个啥样配置的服务器。
BLOT 是存储二进制数据,前面三个类型都是存储 文本数据 (字符串)
文本,本质上也是二进制~~
此处所说的“二进制” 其实指的是,当前存储的这些数据,在对应的码表上无法查到的,
二进制包括 图片 音频 视频 可执行程序 .class (.java 文件编译生成)
TIMESTAMP 这个类型代表“时间戳”
需要操作数据库中的表时,需要先使用该数据库:
如果我们没有选中数据库,我们查看数据库是无法进行的,如下图
use db_test;
我们创建一个JAVA1的数据库,然后我们显示表看看是怎样。
由于此时没有表,在这个数据库里看到的就是空的集合
然后我们切换系统的数据库
desc 表名;
示例:
字段 Field 也可以叫做列
类型 Type
数据库中的Null表示的是这个单元格没填。
Default 表示这两页的默认值
语法:
create table 表名(列名 类型,列名 类型,列名 类型……);
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 );
语法格式:
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;
不仅仅是删除表的本身,也删除了表里面的数据
删库,是把所有的表都删了
删表,只是删除其中的某一个
-- 显示
show databases;
-- 创建
create database xxx;
-- 使用
use xxx;
-- 删除
drop database xxx;
INT:整型
DECIMAL(M, D):浮点数类型
VARCHAR(SIZE):字符串类型
TIMESTAMP:日期类型
-- 查看
show 表;
-- 创建
create table 表名(
字段1 类型1,
字段2 类型2,
...
);
-- 删除
drop talbe 表名;