MySQL库操作 表操作【详细解析】

MySQL

MySQL是一个数据库软件

mysql

mysql是一个“客户端—服务器”结构的软件
(1)
a.客户端:主动发起请求的一方(Client)
b.服务器:被动接收请求的一方(Server)
客户端和服务器之间通过网络 进行通信
(2)
a.客户端给服务器发起的数据,称为请求(Request)
b.服务器给客户端返回的数据,称为响应(Response)
服务器是被动的一方,它不知道客户端什么发起请求;真正的服务器它是需要7*24进行服务的
(3)大部分服务器是给多个客户端提供服务的,但也有只给一两个客户端提供服务的

分布式系统

一台机器能够处理的数据是有限的,往往就需要引入多台机器相互配合,完成更复杂的工作
在这里插入图片描述
分布式系统中,机器之间也是需要进行网络通信的
如图所示,在系统中,客户端服务器的身份是可以相互转换的

mysql安装

安装的是mysql客户端和mysql服务器
mysql的真正本体是服务器,负责保存和管理数据,数据 都是存储在硬盘上的

内存和硬盘的差别

1.内存速度快,硬盘速度慢(差几千倍,数万倍)
2.内存空间小,硬盘空间大
3.内存贵,硬盘便宜
4.内存中存储数据是易失的,硬盘中存储的数据是持久的
(Eg:像断电/重启之后内存中存储的数易丢失)
数据库存储的数据,希望存储的数据量比较大,持久化存储,像mysql这些数据库使用硬盘存储,但是也有少数数据库是使用内存的,追求速度最大化,eg:redis

mysql的使用

在这里插入图片描述
以上是mysql可能出现的错误,一定要学会看抛出的是什么异常

数据库的操作

一个 mysql 服务器上,有很多很多的表,就可以把有关联关系的一些表放到一起,就构成了一个数据集合,此时就称为**“数据库”,**而且一个 mysql服务器上可以有多个这样的数据库

创建数据库

基本创建操作

create database 数据库名;

(1)sql中有特定含义的单词,关键字(数据库名,表名,列名,都不能和关键字重复)
(2)sql的关键字是大小写不敏感的,所以我们可以写成create database,也可以写成CREATE DATABASE

mysql> create database java109;
Query OK, 1 row affected (0.02 sec)

2.数据库创建的时候,要求不能重复,此时就可以在创建的时候,加上一个修饰来应对这个问题

mysql> create database if not exists java107;
Query OK, 1 row affected (0.01 sec)

(1)此时就不会因为数据库同名而报错了,发现数据库已经存在,是不会继续创建数据库的
(2)if not exists的用途是避免sql报错,实际工作中,很多时候,是把一系列sql写到一个文件中批量进行的,很少会这样一条一条的进行;所以在批量执行的情况下,如果一条sql报错了,后面的sql就无法继续执行了

字符集

每种字符集都是一个很大的码表
3.创建数据库的时候,可以手动指定一下字符集的
character set 字符集名字/charset 字符集名字

CHARACTER SET charset_name;

(1)咱们需要在数据库中保存中文,mysql默认的字符集是拉丁文,不支持中文;所以必须在创建数据库的时候,手动指定编码方式为支持中文的编码**(GBK,UTF8)**

(2)不同的字符集,不同的编码方式下,一个汉字占几个字节是不同的
学习C语言时,使用的是VS,在windows上写的代码,windows简体中文版,默认字符集是gbk,VS默认的字符集是和系统一致(gbk)
在这个情况下,一个汉字是占2个字节

(3)
a.gbk现在已经用的越来越少了,主要使用utf8作为编码方式

b.utf8是变长编码,utf8不仅仅可以表示中文,也可以表示世界上的任何一种语言文字

c.如果使用utf8编码,一个汉字通常是3个字节

d.unicode 是给字符串进行编码的,但是无法给“字符串“进行编码;
比如,把多个unicode编码的字符串放在一起,构成一个字符串,就可能会乱套了,因为它无法识别字符和字符之间的边界

e.基于unicode就演化出了一些可以给”字符串“
编码的版本
在java中,谈到char类型——内部编码 unicode
谈到String,内部的编码一般是utf8
(Java内部自动完成了编码转换)

mysql> create database java106 charset utf8;
Query OK, 1 row affected, 1 warning (0.02 sec)

注意: mysql的utf8是一个”残本“,不是完全体的utf8,少了一些emoji表情,所以后来mysql使用了utf8mb4,则是完全体的utf8了

查看数据库

列出当前mysql服务器上一共有哪些数据库

show databases;
mysql> create database-> if not exists-> java109-> charset utf8;
Query OK, 1 row affected, 2 warnings (0.01 sec)
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| java106            |
| java107            |
| java109            |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
7 rows in set (0.02 sec)

==注意:==像mysql,performance_schema这些都是属于系统自带的数据库,而mysql这个比较重要,它是用来修改一些配置,所以要慎重操作

选中数据库

use 数据库名;

数据库中最关键的操作,就是针对表进行增删改查,表是从属于数据库的;所以要针对表操作,就需要把哪个数据库的表这个事情指定清楚

删除数据库

drop database 数据库名;
mysql> drop database java109;
Query OK, 0 rows affected (0.03 sec)

删除之后我们使用show databases来查看数据库是否被删除

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| java106            |
| java107            |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
6 rows in set (0.01 sec)

==注意:==删除操作,删掉的不仅仅是database,而且也删除了database中所有的表,和表里所有的数据

常用数据类型

数值类型

分为整型和浮点型
在这里插入图片描述
使用decimal表示小数,精度是更高了,但是它的运算速度会变慢,占用空间也越多

字符串类型

在这里插入图片描述

(1)此处的size表示该类型最多存储几个字符(不是字节) eg:像一个汉字算是一个字符,但是可能对应多个字节

(2)解释可变长字符串;:(VARCHAR)当你写了size为10,但是不会立即分配10个字符的存储空间,是会先分配一个比较小的空间,如果不够,自动扩展,但是最大空间不会超过10

(3)BLOB存储的是二进制的数据,而像VARCHAR这样的存储的是文本数据;
文本数据存储的都是字符,这些字符都是可以在对应码表上查到的,在码表上查不到的,就是二进制数据(音乐、图片、视频都属于二进制的)

(4)一般很少会在数据库的某一列中存储特别大的数据(几十M,几百M)这么做会大大影响到数据库的增删改查的效率;
实际开发中如果需要保存图片,一般都是把图片单独放到专门的目录中,然后让数据库保存照片的路径

日期类型

在这里插入图片描述
(1)TIMESTAMP:时间戳;使用时间戳来表示时间,以1970 年1月1日0时0分0秒 作为基准,计算当前时刻和基准时刻的 秒数/毫秒数/微秒数 之差
(2)DATATIME只能表示年月日,不能表示时分秒

总结

上述数据类型,我们只需要重点掌握以下几个:
1.int
2.long
3.double
4.decimal
5.varchar
6.datetime

数据表的操作

针对数据表的操作,前提是先选中数据库
一个表,包含很多行, 每一行也称为 一条记录;一个行里可以有很多列,每一列也称为是一个字段;
每个列都是有一个具体的类型的.

==注意:==在创建关于价格的列的时候,我们在写类型的时候一般写成int类型

创建表

进行表操作的前提是必须要先能够选中数据库

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

如果确实想让表名/列名和关键字一样,可以使用`反引号(位置在ESC下面,与~ 一格;注意一定是英文输入情况下)

mysql> create database java109 charset utf8;
Query OK, 1 row affected, 1 warning (0.01 sec)mysql> use java109;
Database changed

查看该数据库中的所有表

查看当前数据库中的所有表

show tables;

==注意:==一定要先选中数据库,再查看数据表

mysql> use java109;
Database changed
mysql> show tables;
+-------------------+
| Tables_in_java109 |
+-------------------+
| product           |
| 商品表            |
+-------------------+
2 rows in set (0.03 sec)

数据库中的数据内容都是持久化存储,你在重启电脑后数据依旧存在

查看指定表的结构

desc 表名;
mysql> desc product;
+-------------+---------------+------+-----+---------+-------+
| Field       | Type          | Null | Key | Default | Extra |
+-------------+---------------+------+-----+---------+-------+
| name        | varchar(20)   | YES  |     | NULL    |       |
| price       | decimal(11,2) | YES  |     | NULL    |       |
| storage     | int(11)       | YES  |     | NULL    |       |
| description | varchar(100)  | YES  |     | NULL    |       |
+-------------+---------------+------+-----+---------+-------+
4 rows in set (0.02 sec)

删除表

drop table 表名;

注意:删除表的同时也会把表中的所有数据都删掉

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

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

相关文章

【软件测试】3.开发模型

目录 1.常见的开发模型 1.1瀑布模型 1.2螺旋模型 1.3增量模型和迭代模型 1.4敏捷模型 1.4.1特点: 1.5Scrum模型(三个角色和五个重要会议) 1.5.1三个角色: 1.5.2Scrum工作流程(五个会议) 1.6测试模…

移动应用开发实验四AlarmManager实现闹钟提醒

实验目的和要求 在Android Studio中,通过AlarmManager实现闹钟提醒。 点击“SET ALARM”后,采用Toast方式提示用于设定的闹钟成功,并包含设定的闹钟启用时间。 当闹钟生效时,采用AlertDialog实现闹钟题型,并通过Ale…

2023盘古石杯晋级赛 apk分析 WP

1. 涉案应用刷刷樂的签名序列号是[答案:123ca12a] 2. 涉案应用刷刷樂是否包含读取短信权限 无 3. 涉案应用刷刷樂打包封装的调证ID值是[答案:123ca12a] 4. 涉案应用刷刷樂服务器地址域名是[答案:axa.baidun.com] 代理模式抓个包 5. 涉案应用…

UE4 3D文字自动换行

效果:3D文字超过5位自动换行 1.随意输入一段字符串测试,创建string临时变量,用于迭代存储字符串 2.当字符串遍历至第“换行长度”(我这里是5)位时,附加一次空行

创新指南|将会话式AI聊天机器人纳入PLG增长战略

想象一个繁荣的数字城市广场,志同道合的人们在这里分享他们的激情、经验和知识。想象一个将房东与旅行者、顾客与司机、人们与他们喜爱的品牌无缝连接起来的平台。在这个世界里,用户交流促进增长,社区成为推动力。 如果您的应用程序天生不符…

P8802 [蓝桥杯 2022 国 B] 出差

P8802 [蓝桥杯 2022 国 B] 出差 分析 很明显:单源最短路径 没有负权边 dijkstra 1.存图 2.准备两个数组 dis[]:更新源点到各个点的距离 vis[]:标记是否访问 3.从源点开始,更新源点到与其邻接的点的距离,每次选…

鸿蒙OpenHarmony开发板解析:【特性配置规则】

特性 特性配置规则 下面介绍feature的声明、定义以及使用方法。 feature的声明 开发前请熟悉鸿蒙开发指导文档:gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md点击或者复制转到。 在部件的bundle.json文件中通过feature_list来声明部件的feature列…

MQTT 5.0 报文解析 03:SUBSCRIBE 与 UNSUBSCRIBE

欢迎阅读 MQTT 5.0 报文系列 的第三篇文章。在上一篇中,我们介绍了 MQTT 5.0 的 PUBLISH 及其响应报文。现在,我们将介绍用于订阅和取消订阅的控制报文。 在 MQTT 中,SUBSCRIBE 报文用于发起订阅请求,SUBACK 报文用于返回订阅结果…

Java通过百度地图API获取定位-普通IP定位

项目中有一个登录邮箱提醒的功能,需要根据IP地址获取定位信息,从而更好地提示用户账号登录的所在地。为此,花费了一些时间来实现这个功能。 在CSDN搜索了一下,发现关于获取定位的文章说明都不够详细,于是决定自己创作一…

为什么要学Python?学Python有什么用?

为什么要学Python?学Python有什么用? 在当今的数字化时代,编程已成为一项宝贵的技能。Python,作为一种流行的编程语言,因其易于学习和强大的功能而受到全球开发者的青睐。本文将探讨学习Python的原因和它的实际应用&am…

【操作系统期末速成】​操作系统概述(定义|功能|特征)|发展阶段和分类|结构设计|概念补充

🎥 个人主页:深鱼~🔥收录专栏:操作系统🌄欢迎 👍点赞✍评论⭐收藏 推荐 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到…

Nginx部署前后端分离项目

部署前后端分离项目,要求前端项目、后端项目、数据库分别部署在3台服务器 服务器准备 服务器名IP软件包前端192.168.99.137nginx后端192.168.99.139jar数据库192.168.99.100mariadb 1、前端服务器 yum install -y epel-release && yum install -y nginx…

官宣:vAsterNOS正式发布!开放网络操作系统免费试用!

近期,vAsterNOS(设备模拟器)正式发布,可以满足用户快速了解 AsterNOS、体验实际操作、搭建模拟网络的需求,可运行在GNS3、EVE-NG等网络虚拟软件中。 AsterNOS 网络操作系统是星融元为人工智能、机器学习、高性能计算、…

vCenter 7.3证书过期无法登录处理方法

登录报错:如下图 Exception in invking authentication handler [SSL: CERTIFICATE_VERIFY_FAILED] certificate vertify failed: certificate has expired(_ssl.c:1076) 处理方法1:推荐,可行 登录vCenter控制台,AltF3切换至命令…

antdVue 自定义table列配置

最近做项目的时候需要对页面的table进行列配置的需求 子组件 <div><a-modaltitle"列配置" :visible"visible" :closable"false" :footer"null"width"800px" height"448px"><div><a-row>…

在linux里登录远程服务器

在linux里登录远程服务器。在虚拟终端里输入命令&#xff1a; ssh 远程服务器ip -l username 然后输入登录密码&#xff0c;就可以登录到远程服务器的命令行界面。登录方便&#xff0c;字体也可以在本地机的虚拟终端里设置得大一点。 下面是一张截屏图片。

系统Cpu利用率降低改造之路

系统Cpu利用率降低改造之路 一.背景 1.1 系统背景 该系统是一个专门爬取第三方数据的高并发系统&#xff0c;该系统单台机器以每分钟400万的频次查询第三方数据&#xff0c;并回推给内部第三方系统。从应用类型上看属于IO密集型应用,为了提高系统的吞吐量和并发&#xff0c;…

音频数字信号I2S一些知识理解

(1)I2S单向基本传输需要几根线传输音频信号? 3根线 LRCK SCLK(也叫BLK) DATA(单向) (2)如何理解I2S MASTER或者SLAVE的模式&#xff1f; codec的i2s作为slave mode,LRCK和SCLK来自于soc主控端,codec端自动检测MCLK和LRCK codec的i2s作为master mode,codec通过MCLK LRCLKDIV…

CSS-浮动

float (浮动) 作用&#xff1a;盒子的顶点是一样的&#xff0c;具备行内块的特征&#xff0c;能设置宽高 属性&#xff1a;float 属性值&#xff1a;left 浮动在网页左边 right 浮动在网页右边 .a{width: 100px;height: 100px;float:left;background-color: red;}.b…

drawio 网页版二次开发(1):源码下载和环境搭建

目录 一 说明 二 源码地址以及下载 三 开发环境搭建 1. 前端工程地址 2. 配置开发环境 &#xff08;1&#xff09;安装 node.js &#xff08;2&#xff09;安装 serve 服务器 3. 运行 四 最后 一 说明 应公司项目要求&#xff0c;需要对drawio进行二次开发&…