初始MYSQL数据库(1)——创建、删除数据库和数据表的相关操作

本文主要是介绍初始MYSQL数据库(1)——创建、删除数据库和数据表的相关操作,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

找往期文章包括但不限于本期文章中不懂的知识点:

个人主页:我要学编程(ಥ_ಥ)-CSDN博客

所属专栏: MYSQL

目录

数据库的概念

数据库的相关操作

常用的数据类型 

数值型 

字符串类型

日期类型

数据表的相关操作

练习


数据库的概念

数据库(Database)是按照数据结构来组织、存储和管理数据的仓库。我们也可以将数据存储在文件中,但是在文件中读写数据速度相对较慢。因此,为了高性能的处理数据,便诞生了数据库。

数据库也分为两种:一种是关系型数据库,另一种是非关系型数据库。顾名思义:关系型数据库,肯定是数据与数据之间建立的一定的关联、关系。

关系型数据库的概念:是指采用了关系模型来组织数据的数据库。简单来说,关系模型指的就是二维表格模型,而一个关系型数据库就是由二维表及其之间的联系所组成的一个数据组织。

常见的关系型数据库有:MYSQL、Oracle、SQL Server。

既然有了数据库,那么肯定也要有操作数据库的东西或者说是工具——SQL语句。

数据库的相关操作

1、创建数据库

语法: 

CREATE DATABASE 数据库名;

在创建数据库时,我们也可以去指定其对应的字符集和排序规则,在上述代码后面直接加上:

CHARACTER SET 字符集编码 collate 排序规则;-- 这个是SQL语句中的注释写法
-- 字符集编码在8.0版本中采用的是:utf8mb4
-- 排序规则在8.0版本中采用的是:utf8mb4_0900_ai_ci

 注意:如果有一个数据库之后,我们再去创建一个同名的数据库时,就会报错。因此,我们在创建数据库时,要加上一些校验:

有两种不同形式的校验:

(1)不管存不存在先删除它,再去创建它:(由于删除暂时未学,我们待会再学习)

(2)在创建之前,我们先去检验一下这个数据库是否存在:

CREATE DATABASE IF NOT EXISTS 数据库名;

注意:在SQL语法中建议是全部大写,但是小写也是没关系的,看个人的习惯吧。

既然有创建数据库,那么肯定也有删除数据库。

2、删除数据库 

语法:

DROP DATABASE 数据库名;

同样我们删除的数据库可能是不存在的,如果不存在的话,就会报错。因此也得加上校验。

DROP DATABASE IF EXISTS 数据库名;

其实在删除之前,我们完全可以进行一次查看操作。如果有,再删除也不迟。

SHOW DATABASES;

这里查看的是本级的所有数据库。 

因此,上面创建数据库的校验可以这样写:

-- 先是直接删除
DROP DATABASE IF EXISTS 数据库名;
-- 再去创建即可(这里不需要进行检验了,因为不可能存在要创建的数据库名)
CREATE DATABASE 数据库名;

 我们现在就可以在命令行中进行操作。

下面是打开数据库的操作,输入:mysql -uroot -p ,然后再输入密码即可

创建数据库——>查看数据库——删除数据库 

可能有小伙伴会好奇:为什么在SQL语句中大小写都可以,究其原因还是因为字符集编码和排序的的问题。utf8mb4 这个字符集是支持中文的,但是在5.0的版本中却是不支持的,因为其字符集为Latin1。排序规则中是支持大小写、口音不敏感。

常用的数据类型 

数值型 

数据类型大小说明对应Java中的类型
BIT [ (M) ]M为指定的位数,默认情况下是1因为BIT只能是0~8,因此M的范围也是有限的。M【1,64】常用Boolean来对应BIT,此时默认是1位,即只能存1和0
TINYINT1字节Byte
SMALLINT2字节Short
INT4字节Integer
BIGINT8字节Long
FLOAT(M, D)4字节单精度,M指定总长度,D指定小数位长度。会发生精度丢失Float
DOUBLE(M, D)8字节双精度,其余与FLOAT一样Double
DECIMAL(M, D)依赖于M和D的值双精度,M指定总长度,D表示小数点位数。不会发生精确数值BigDecimal
NUMERIC(M, D)依赖于M和D的值和DECIMAL一样BigDecimal

注意:由于FLOAT和DOUBLE在表示精度方面有缺失,因此涉及到钱相关的计算时,都是用DECIMAL来代替,也就是说这个DECIMAL是用来表示金额的。 

字符串类型

数据类型大小说明对应Java中的类型
VARCHAR(SIZE)0-65, 535字节可变长度字符串String
TEXT0-65, 535字节长文本数据String
MEDIUMTEXT0-16, 777, 215字节中等长度文本数据String
BLOB0-65,535字节二进制形式的长文本数据byte[ ]

注意:

1、我们常用的也就是VARCHAR和TEXT两种类型;

2、VARCHAR() 中的SIZE是指字符串的长度,也就是字符的个数,并不是字节的个数;

3、BLOB中存储的是文本的二进制,因此是一个byte[ ]数组。

日期类型

数据类型大小说明对应Java中的类型
DATATIME8字节范围从1000到9999年,不会进行时区的检索及转换java.util.Date、java.sql.Timestamp
TIMESTAMP4字节范围从1970到2038年,自动检索当前时区并进行转换

java.util.Date、

java.sql.Timestamp

这里的日期会精确到小时-分钟-秒。

数据表的相关操作

一个数据库服务是能够支持多个数据库的,而一个数据库中是有多个数据表的,而一个数据表中又是有多个数据记录(数据行)的,一个数据记录(数据行)是由若干个列组成的。

因此我们操作数据库,最终操作的还是数据表中的数据行。因此下面我们就来学习数据表的相关操作。创建数据表等都是要在一个具体的数据库中进行的,即先得使用具体的数据库。

1、使用数据库

USE 数据库; --注意这里分号可有可无,建议带上

当然如果我们不确定是否使用了这个数据库的话,还可以进行查看当前选择的数据库

SELECT DATABASE(); -- 这里就会查询到我们使用的数据库

2、创建、查看与删除数据表 

(1)创建数据表:

这里直接采用校验的写法:

DROP TABLE IF EXISTS 表名;
CREATE TABLE 表名 (column1 datatype, column2 datatype,...
);

这里的column是指表中的字段(属性)。例如,我们现在创建一个学生表,那么这个学生表中就有一下字段(属性):学号、姓名、年龄、性别......后面的datatype是指这些字段(属性)对应的数据类型。比如,学号对应的就是整型、姓名对应的字符串型、年龄同样对应整型、性别既可以是整型,也可以是字符串型。 

当然也可以使用comment增加字段说明,在数据类型的后面。

(2)查看数据表:

查看数据表主要是观察其表的结构:

DESC 表名;

下面是查看结果:

(3)删除数据表

DROP TABLE IF EXISTS 表名;

 学习了这些语法之后,我们就来进行实操。

练习

有一个商店的数据,记录客户及购物情况,有以下三个表组成: 

1、商品goods(商品编号goods_id,商品名goods_name,单价unitprice,商品类别category,供
应商provider)
2、客户customer(客户号customer_id,姓名name,住址address,邮箱email,性别sex,身份证
card_id)
3、购买purchase(购买订单号order_id,客户号customer_id,商品号goods_id,购买数量nums)

思路:首先,得单独创建一个存储商店数据的数据库,然后再去创建相应的数据表。

代码实现:

-- 创建一个商店数据库
DROP DATABASE IF EXISTS shop;
CREATE DATABASE shop;
-- 创建三个表
-- 因为这是新建的数据库,其中不会存在表,因此无需做检查
USE shop;-- 商品表
CREATE TABLE goods (goods_id bigint comment '商品编号',goods_name varchar(50) comment '商品名',unitprice decimal(10, 2) comment '单价',category varchar(50) comment '商品类别',provider varchar(50) comment '供应商'
);-- 客户表
CREATE TABLE customer (customer_id bigint comment '客户号',name varchar(50) comment '姓名',address varchar(50) commnet '住址',email varchar(25) comment '邮箱',sex bit(1) commnet '性别',card_id varchar(18) commment '身份证'
);-- 购买表
CREATE TABLE purchase (order_id bigint comment '购买订单',customer_id bigint comment '客户号'goods_id bigint comment '商品号'nums int comment '购买数量'
);

注意:

1、通过上面的代码,我们会发现表中的字段只有在最后一个才的末尾才不要加上逗号,其余的都需要在末尾加上逗号;

2、对于编号这些数据,我们通常采用的都是 bigint 来记录;

3、对于性别这种只有少数选择项的(男、女),我们通常采用的是 bit 来记录。 

好啦!本期 初始MYSQL数据库(1)——创建、删除数据库和数据表的相关操作 的学习之旅就到此结束啦!我们下一期再一起学习吧!

这篇关于初始MYSQL数据库(1)——创建、删除数据库和数据表的相关操作的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1127769

相关文章

Spring Security基于数据库验证流程详解

Spring Security 校验流程图 相关解释说明(认真看哦) AbstractAuthenticationProcessingFilter 抽象类 /*** 调用 #requiresAuthentication(HttpServletRequest, HttpServletResponse) 决定是否需要进行验证操作。* 如果需要验证,则会调用 #attemptAuthentica

SQL中的外键约束

外键约束用于表示两张表中的指标连接关系。外键约束的作用主要有以下三点: 1.确保子表中的某个字段(外键)只能引用父表中的有效记录2.主表中的列被删除时,子表中的关联列也会被删除3.主表中的列更新时,子表中的关联元素也会被更新 子表中的元素指向主表 以下是一个外键约束的实例展示

基于MySQL Binlog的Elasticsearch数据同步实践

一、为什么要做 随着马蜂窝的逐渐发展,我们的业务数据越来越多,单纯使用 MySQL 已经不能满足我们的数据查询需求,例如对于商品、订单等数据的多维度检索。 使用 Elasticsearch 存储业务数据可以很好的解决我们业务中的搜索需求。而数据进行异构存储后,随之而来的就是数据同步的问题。 二、现有方法及问题 对于数据同步,我们目前的解决方案是建立数据中间表。把需要检索的业务数据,统一放到一张M

如何去写一手好SQL

MySQL性能 最大数据量 抛开数据量和并发数,谈性能都是耍流氓。MySQL没有限制单表最大记录数,它取决于操作系统对文件大小的限制。 《阿里巴巴Java开发手册》提出单表行数超过500万行或者单表容量超过2GB,才推荐分库分表。性能由综合因素决定,抛开业务复杂度,影响程度依次是硬件配置、MySQL配置、数据表设计、索引优化。500万这个值仅供参考,并非铁律。 博主曾经操作过超过4亿行数据

性能分析之MySQL索引实战案例

文章目录 一、前言二、准备三、MySQL索引优化四、MySQL 索引知识回顾五、总结 一、前言 在上一讲性能工具之 JProfiler 简单登录案例分析实战中已经发现SQL没有建立索引问题,本文将一起从代码层去分析为什么没有建立索引? 开源ERP项目地址:https://gitee.com/jishenghua/JSH_ERP 二、准备 打开IDEA找到登录请求资源路径位置

MySQL数据库宕机,启动不起来,教你一招搞定!

作者介绍:老苏,10余年DBA工作运维经验,擅长Oracle、MySQL、PG、Mongodb数据库运维(如安装迁移,性能优化、故障应急处理等)公众号:老苏畅谈运维欢迎关注本人公众号,更多精彩与您分享。 MySQL数据库宕机,数据页损坏问题,启动不起来,该如何排查和解决,本文将为你说明具体的排查过程。 查看MySQL error日志 查看 MySQL error日志,排查哪个表(表空间

电脑桌面文件删除了怎么找回来?别急,快速恢复攻略在此

在日常使用电脑的过程中,我们经常会遇到这样的情况:一不小心,桌面上的某个重要文件被删除了。这时,大多数人可能会感到惊慌失措,不知所措。 其实,不必过于担心,因为有很多方法可以帮助我们找回被删除的桌面文件。下面,就让我们一起来了解一下这些恢复桌面文件的方法吧。 一、使用撤销操作 如果我们刚刚删除了桌面上的文件,并且还没有进行其他操作,那么可以尝试使用撤销操作来恢复文件。在键盘上同时按下“C

sqlite3 相关知识

WAL 模式 VS 回滚模式 特性WAL 模式回滚模式(Rollback Journal)定义使用写前日志来记录变更。使用回滚日志来记录事务的所有修改。特点更高的并发性和性能;支持多读者和单写者。支持安全的事务回滚,但并发性较低。性能写入性能更好,尤其是读多写少的场景。写操作会造成较大的性能开销,尤其是在事务开始时。写入流程数据首先写入 WAL 文件,然后才从 WAL 刷新到主数据库。数据在开始

【专题】2024飞行汽车技术全景报告合集PDF分享(附原数据表)

原文链接: https://tecdat.cn/?p=37628 6月16日,小鹏汇天旅航者X2在北京大兴国际机场临空经济区完成首飞,这也是小鹏汇天的产品在京津冀地区进行的首次飞行。小鹏汇天方面还表示,公司准备量产,并计划今年四季度开启预售小鹏汇天分体式飞行汽车,探索分体式飞行汽车城际通勤。阅读原文,获取专题报告合集全文,解锁文末271份飞行汽车相关行业研究报告。 据悉,业内人士对飞行汽车行业

【Python编程】Linux创建虚拟环境并配置与notebook相连接

1.创建 使用 venv 创建虚拟环境。例如,在当前目录下创建一个名为 myenv 的虚拟环境: python3 -m venv myenv 2.激活 激活虚拟环境使其成为当前终端会话的活动环境。运行: source myenv/bin/activate 3.与notebook连接 在虚拟环境中,使用 pip 安装 Jupyter 和 ipykernel: pip instal