1.MySQL数据库的基本操作

news2024/12/26 11:07:56

数据库操作过程:

1.用户在客户端输入 SQL
2.客户端会把 SQL 通过网络发送给服务器
3.服务器执行这个 SQL,把结果返回给客户端
4.客户端收到结果,显示到界面上

数据库的操作

这里的数据库不是代表一个软件,而是代表一个数据集合。

显示当前的数据库

show databases;

创建数据库

语法:

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: 指定数据库字符集的校验规则

create database 数据库名
CREATE DATABASE 数据库名
注意:
1.create,database … 相当于"关键字
2.SQL 的关键字 不区分大小写的
3.创建的数据库的名字,可以随便起,但是不能重复!!
4.单词之间至少有一个空格.也可以是多个空格,不能没有!!
5.在 命令行 中输入的 sql 必须以;作为结尾!!

创建名称为my_database的数据库

create database my_database;
-- 数据库已经存在,再创建就会报错
-- 如果一条一条执行 SQL,不报错影响不大。如果是批量执行 SQL(把很多 SQL 写到一个 文件 中)如果中间某个 SQL 报错, 就会执行停止。
-- 使用了 IF NOT EXISTS 就不会报错了!!
create database if not exists my_database;
-- 创建数据库同时指定数据库的 字符集utf8
create database my_database character set utf8;-- 一般形式
create database my_database charset utf8;-- 简写形式

英文字母,是如何在计算机中表示的?
ascii :使用 数字 表示字符。
ascii 中,只能表示 英文字母 和 标点符号,以及阿拉伯数字。汉字要表示的内容特别多,y有几万个,很明显ascii是不够用的。
其他的字符集思路是一致的,可以搞一个更大的表,来表示汉字。演化出了很多套这样的表示方式~~ (不像 ascii只有一套)。对于中文来说,当前最常见的表示方式,有两种:

  • gbk:使用两个字节,表示一个汉字的

  • utf8:使用三个字节,表示一个汉字的

在这两个表上,同一个汉字,表示的数字不同。同一个数字,对应汉字也不同。VS 使用的编码方式是跟随系统windows 简体中文版,系统编码就是 gbk。目前更主流的还是 utf8,这个东西能表示的内容特别多除了汉字之外,各种其他国家的语言文字符号都能表示。java 的字符集是在编译运行的时候,通过命令行参数显式指定的.一般默认都是 utf8 。

mysql 默认字符集是拉丁文(没法表示中文的)。手动设定一个字符集是非常关键的,后续如果要插入一些中文,如果不是 utf8 / gbk 之类的中文就会乱码。
mysgl 的 utf8 是残缺的.(残缺了一些 emoji 表情),完整版utf8就是:utf8mb4,一般情况下两种字符集是都可以设置的。

使用数据库

使用my_database数据库

use my_database;

1.4 删除数据库

DROP DATABASE [IF EXISTS] db_name;

drop database 数据库名;

-- 删除 删除my_database数据库:
drop database  my_database;
-- 如果存在 my_database数据库,删除my_database数据库:
drop database if exists my_database;

删库操作时非常危险的,一旦删掉数据库,数据库中的所有数据就没了.很难恢复。

如何针对上述危险操作,防患于未然:

1.权限不同的用户,能进行的操作是不一样的(有效避免失误)
2.备份 。一旦不小心误删除了数据, 通过之前的备份数据,恢复回来
3.重要操作的时候,拉上其他人帮忙一起检查。

2. 常用数据类型

数字:

数据类型大小说明对应java类型
BIT[ (M) ]M指定位 数,默认 为1二进制数,M范围从1到64, 存储数值范围从0到2^M-1常用Boolean对应BIT,此时 默认是1位,即只能存0和1
TINYINT1字节Byte
SMALLINT2字节Short
INT4字节Integer
BIGINT8字节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最大 值+2和DECIMAL一样BigDecimal

DECIMAL 能够精确表示小数float 和 double 是不能精确表示小数的!!
0.1 + 0.2 != 0.3

image-20230814084045732

因此,DECIMAL 这个类型就是为了解决上述问题的。虽然能精确存储,精确计算了,但是存储空间占用的更多计算速度也是更慢的。

字符串:

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

varchar(SIZE) 属于可变长的字符串SIZE 表示最大长度.单位是 字符(不是字节!!)
varchar(10) => 最多十个字.哪怕是汉字,也是十个。

日期:

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

TIMESTAMP 时间戳:计算机表示时间的一种经典方式以1970年1月1日0时0分0秒为基准,计算当前时刻和基准时刻的秒数/毫秒数 之差。范围从1970到2038年,这个类型最大的问题是 4 个字节,表示的范围太小了。

小结:
上述这么多类型,不必全都掌握,大概熟悉几个常用的就可以了int, bigint, varchar, double, decimal, datetime。

数据表操作

关系型数据库中,数据是以"表”的方式来进行组织的(类似于 excel)。每个数据库中,里面就可以有很多个数据表,每个表可以有很多行,每一行又可以有很多个列(字段)。

所有的和表相关的操作,都是需要选中数据库再进行: use my_database;

3.1 创建表

create table 表名(
    列名 类型, 
    列名 类型, 
    列名 类型......
);

创建表的时候,就需要先把表的类型确定好,后续插入的数据也要遵守当前的这个类型。

 -- 创建学生表,有id和name两个字段
 create table student(
     id int, 
     name varchar(20) comment '姓名'
 );

comment 是注释属于是在创建表的时候的一种专属注释
SQL 中如果想用注释,可以使用 # 或者 –

3.2 查看数据库中的所有表

show tables;

3.3 查看指定表的表结构

desc 表名;

desc => describe(描述)

-- 查看student表的结构
desc student;

image-20230814085629174

int(11): 表示的是该列在打印的时候,显示的时候,最多占11 个字符这么宽和存储范围是无关的。

查看的表结构中的含义:

Field:字段.表一行里有几列.
Type:每一列的类型
Null:该列是否允许为空yes 就是允许为空(不填)
Key: 索引类型
Default:默认值.
Extra:额外补充信息

3.4 删除表

语法格式:

DROP [TEMPORARY] TABLE [IF EXISTS] tbl_name [, tbl_name] ...
-- 删除 student 表
drop table student;
-- 如果存在 stu_test 表,则删除 stu_test 表
drop table if exists student;

上述操作是数据库和数据表的最基础的操作

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/875022.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【编码魔法师系列_六大原则5】迪米特原则(Law of Demeter Principle)

学会设计模式,你就可以像拥有魔法一样,在开发过程中解决一些复杂的问题。设计模式是由经验丰富的开发者们(GoF)凝聚出来的最佳实践,可以提高代码的可读性、可维护性和可重用性,从而让我们的开发效率更高。通…

DolphinDB 入选 Gartner《中国数据库市场指南》代表厂商

近日,国际知名研究机构 Gartner 发布2023年《中国 DBMS 市场指南(Market Guide for DBMS, China)》研究报告,在中国范围内评估并重点推荐了36家极具实力的企业,DolphinDB 以领先的技术和商业能力顺势入榜。 DolphinDB …

Mybatis 源码 ② :流程分析

文章目录 一、前言二、Mybatis 初始化1. AutoConfiguredMapperScannerRegistrar2. MapperScannerConfigurer3. ClassPathMapperScanner3.1 ClassPathMapperScanner#scan3.2 ClassPathMapperScanner#processBeanDefinitions 4. 总结 三、 Mapper Interface 的创建1. MapperFacto…

3段代码详解python中的单线程、多线程和多进程

目录 1. 单线程: 2. 多线程: 3. 多进程: 什么时候使用单线程、多线程和多进程 总结 在并发编程中,使用适当的并发模型可以提高程序执行效率和性能。Python提供了单线程、多线程和多进程三种方式来实现并发执行任务。 单线程…

护眼灯买哪种好,2023护眼台灯推荐

护眼台灯的光照一般比较均匀,相比普通台灯,一般具有防蓝光、防频闪等功能,能够提供一个健康舒适的学习、生活灯光环境,建议选购内置智能感光模式的护眼台灯,以确保灯光亮度一直处于均衡状态,让眼睛更轻松。…

从源代码编译构建Apach Spark3.2.4

从源代码编译构建Apach Spark3.2.4 编译说明编译Apache Spark下载源码构建环境准备使用本地Maven构建更改Scala版本下载Jar包构建可运行的发行版构建异常构建成功 运行测试 编译说明 对于大多数用户来说,使用官方预编译版本的Spark已经足够满足日常需求。只有在特定…

Hands on RL 之 Proximal Policy Optimization (PPO)

Hands on RL 之 Proximal Policy Optimization (PPO) 文章目录 Hands on RL 之 Proximal Policy Optimization (PPO)1. 回顾Policy Gradient和TRPO2. PPO (Clip)3. PPO(Penalty)4. PPO中Advantage Function的计算5.实现 PPO-ClipReference 1. 回顾Policy Gradient和TRPO ​ 首…

构建Actual网页客户端镜像

什么是 Actual ? Actual 是一款超快速且注重隐私的本地优先的财务应用程序,用于管理您的财务。其核心是经过充分验证且深受喜爱的信封预算方法。它是 100% 免费和开源的。 Actual 具有多设备同步、可选的端到端加密等等功能。默认情况下,它不…

ssm医院门诊挂号系统源码和论文PPT

ssm医院门诊挂号系统源码和论文PPT008 开题报告 任务书 源码 数据库sql 论文 开发环境: 开发工具:idea 数据库mysql5.7(mysql5.7最佳) 数据库链接工具:navcat,小海豚等 开发技术:java ssm tomcat8.5 1.选题的背景和意义 …

高性能MySQL实战(二):索引

大家好,我是 方圆。我们在上篇 高性能MySQL实战(一):表结构 中已经建立好了表结构,这篇我们则是针对已有的表结构和搜索条件为表创建索引。除此之外,我还会讲一些关于索引必须要了解的知识。原文收录在我的…

原来这才叫休息!——科学家揭示真正的“休息模式”

什么叫做休息?好好休息个周末?好好出去旅游一下?但事实上,往往越休息越感觉累。为什么呢?也许我们对休息存在误解,这篇文章会帮我们分析究竟该如何休息。 为什么你睡了11个小时仍然觉得疲累?为什…

【量化课程】06_化调仓策略

文章目录 6.1 如何衡量投资组合的收益率6.1.1 投资组合收益率的计算方法6.1.2 投资组合的绝对收益率和相对收益率 6.2 如何衡量投资组合的风险6.2.1 风险的定义6.2.2 投资组合的风险6.2.3 衡量投资组合的风险 6.3 最优化方法计算投资组合的最佳仓位6.3.1 等权重6.3.2 市值加权6…

Linux下常见的代理服务器软件介绍

在Linux系统中,代理服务器是我们搭建网络环境和处理网络请求的常用工具。但是,你知道Linux下常见的代理服务器软件有哪些吗?本文将为你带来对几款常见的Linux代理服务器软件的介绍,帮助你选择适合的代理服务器。 一、Squid&#…

根据数组中元素的位置号x,y和指定的计算规则z=f(x,y)创建数组,让x,y位置上的值是znp.fromfunction()

【小白从小学Python、C、Java】 【计算机等考500强证书考研】 【Python-数据分析】 根据数组中元素的位置号x,y 和指定的计算规则zf(x,y) 创建数组,让x,y位置上的值是z np.fromfunction() 选择题 下列说法错误的是? import numpy as np def func(i, j): return …

书单背景图片素材哪里找?这个工具赶紧用起来

好的文案是很重要的,但是如何找到好的文案却是一件很困难的事情。以下是一些可以寻找好的文案的方法分析,以及如何把书单文章转到视频的操作分享。 1.书籍和杂志:阅读关于广告、营销、文案和创意的书籍和杂志可以帮助你了解不同的文案类型和风…

《零基础实践深度学习》(第2版)学习笔记,(二)机器学习和深度学习综述

文章目录 1. 人工智能、机器学习、深度学习的关系2. 机器学习2.1 实现原理2.2 如何实施 3. 深度学习神经网络核心概念 1. 人工智能、机器学习、深度学习的关系 **人工智能(Artificial Intelligence,AI)**是研发用于模拟、延伸和扩展人的智能…

【MySQL--->数据类型】

文章目录 [TOC](文章目录) 一、数据类型分类二、整型类型三、bit(位)类型四、float类型五、decimal类型六、char和varchar类型1.char类型2.varchar3.char与varchar的区别 七、日期与时间类型八、enum和set 一、数据类型分类 二、整型类型 数值类型有数据存储上限,而且每个类型都…

Crond计划任务和用户权限提升

目录 前言 一、一次性任务 1、at实现,atd服务 2、查看atd服务的状态:systemctl status atd 二、周期性任务 1.在/etc/crontab文件中写入计划任务 2、crontab文件的含义: 3、操作设置 三、用户权限提升 3.1 su 3.2 sudo提权 总结 前言…

【灵商课堂】知识的结束就是智慧的开始

心无挂碍,心无恐惧 1、知识不会通向智慧。 我们累积了关于很多事情的大量知识,但是要按照学到的知识去明智地行动,看起来几乎是不可能的。学校、学院和大学传授有关行为、宇宙、科学和各种技术的知识,但是这些教育中心很少帮助一个…

油耳朵适合什么样的耳机听歌,到底有没有适合油耳的耳机?

骨传导耳机就是利用震动来传递声音的耳机,在运动时佩戴骨传导耳机,可以听歌也能听周围的声音,提高了运动时的安全性。目前市面上的骨传导耳机也是琳琅满目。今天就来给大家分享下目前市面上比较常见的几款骨传导耳机。希望对正在选购骨传导耳…