MySQL数据库基础

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: MySQL数据库基础

数据库的操作

使用数据库

use 数据库名;        //意义:数据库是先选中,后操作的.

显示当前数据库

show databases;

演示(这里已经提前创建好了一个business数据库,这里面的其它数据库是系统自带的):

创建数据库

语法:

一般来讲就是: create database 数据库名; //create是创建数据库的关键字

当然还有以下两种形式:

create database [if not exists] db_name [create_specification[, create_specification]...]

//用于在关系型数据库管理系统(RDBMS)中创建一个新的数据库,具体的以后再介绍.

create_specification:

       [default] character set charset_name

       [default] collate collation_name

//create_specification部分用于为新创建的数据库指定字符集(character set)和排序规则(collation)

说明:

1.加粗的部分表示关键字(这一整篇博客都是这样的规则)

2.[]中的内容是可选项

3.character set:指定数据库采用的字符集

4.collate:指定数据字符集的校验规则

示例:

创建名为db_test1的数据库

create database db_test1;

//说明:当我们创建数据库没有指定字符集和校验规则时,系统使用默认字符集:utf8(utf8是一种通用的编码方式,涵盖世界的大部分语言和所有符号,是一种变长编码(可以变为1,2,3字节)),校验规则是: 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(在数据库中的utf8存在内容缺失的问题,因此它不是完全体),没有包含某些复杂的中文字符.MySQL真正的utf8是使用utf8mb4,建议都是用这个

删除数据库(warning)

语法:

drop database [if exists] db_name;

//说明:数据库删除以后,内部看不到对应的数据库,里面的表和数据全都会被删除

特别警告:删除数据库(删库)在实际开发中是一种极其危险的操作!!!如果没有想好,千万不要进行这一操作!!!删除数据库(删库)在实际开发中是一种极其危险的操作!!!如果没有想好,千万不要进行这一操作!!!删除数据库(删库)在实际开发中是一种极其危险的操作!!!如果没有想好,千万不要进行这一操作!!!

常用数据类型

数值类型

数据类型 大小 说明 对应java类型
bit[(M)](不常用) M指定位数,默认为1

二进制数,M范围从1到64,

存储数值范围从0到2^M - 1

常用Boolean对应bit,此时

默认是一位,即只能储存0和1

tinyint 一字节 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
number(M, D) M/D最大值 + 2 和decimal一样

BigDecimal

字符串类型

数据类型 大小 说明 对应java类型
varchar(size) 0-65535字节 可变长度字符串 String
text 0-65535字节 长文本数据 String
mediumtext 0-16777215字节 中等长度文本数据 String
blob 0-65535字节 二进制形式的长文本数据 byte[]

说明:

1.前三个是文本文件数据(存储标准字符),第四个是二进制数据(存储任意数据)(很少使用)

2.varchar(size)中的size表示最大长度(最多存储的长度),且其为动态扩容;而text无size

3. 设定长度上限-兜底,需要关注,数据库存储数据时占用多少空间的

日期类型

数据类型 大小 说明 对应java类型
datatime 8字节 范围从1000年到9999年,不会进行时区的检索及转换

java.util.Date,

java.sql.Timestamp

timestamp(时间戳) 4字节 范围从1970年到2038年,自动检索当前时区并进行转换

java.util.Date,

java.sql.Timestamp

表的操作(前提是先选中数据库)

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

use db_test;

查看表的结构

desc 表名;

演示(已经创建好了一个表):

1.Field是字段名字,Type是字段类型,Null表示是否允许为空,Default是默认值,Extra是扩充

2.int后面的数字是显示(打印) 时宽度占多少位置(位宽),因为int范围:-21亿->21亿,算上"-"总计占11位置

3.Null具体意思是单元格里面什么意思都没有,空着

创建表

语法:

create table table_name (

       field1 datatype,

       field2 datatype,

       field3 datatype

);

//与之前学的语言不同,这里姓名在前,类型在后

说明:

1.create table 表明(列名 类型, 列名 类型...),创建表的时候,必须要描述出表包含哪些列,每一列的类型,每一列的名字,后续向表里放的数据,也要遵守这里的规则

可以使用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

);

//不过现在comment这种注释不够通用,只能作为表的列注释解释

//sql一般用"-"和"#"注释

删除表

语法格式:

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 表名 ;

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
5天前
|
SQL 关系型数据库 MySQL
MySQL数据库基础与实战应用
MySQL数据库基础与实战应用
55 0
|
5天前
|
存储 SQL 关系型数据库
『 MySQL数据库 』之数据库基础
『 MySQL数据库 』之数据库基础
|
5天前
|
关系型数据库 MySQL Linux
数据库学习-Mysql数据库安装
数据库学习-Mysql数据库安装
71 0
|
10月前
|
存储 NoSQL Oracle
【数据库】MySQL数据库基础
【数据库】MySQL数据库基础
|
5月前
|
关系型数据库 MySQL 数据库
一文带你了解MySQL数据库基础
一文带你了解MySQL数据库基础
46 1
|
7月前
|
关系型数据库 MySQL 数据库
MySQL数据库的设计
MySQL数据库的设计
|
8月前
|
SQL 关系型数据库 MySQL
MySQL数据库基础
把相同列的分为一组,如果不使用聚合函数的话,数据可能可以会产生不想要的结果。。。 group by 可以搭配条件 : 1. where 一般写在前面,先执行where,再执行group by,最后执行聚合。 2. having 一般写在后面,先执行group by 再执行聚合,最后执行having。
42 0
|
10月前
|
SQL 关系型数据库 MySQL
2.MySQL数据库基础
2.MySQL数据库基础
51 0
|
关系型数据库 MySQL 数据库
MySQL数据库的基础练习(下)
MySQL数据库的基础练习(下)
185 0
MySQL数据库的基础练习(下)
|
SQL 关系型数据库 MySQL
MySQL数据库的基础练习(上)
MySQL数据库的基础练习(上)
147 0
MySQL数据库的基础练习(上)