MySQL数据库操作-1

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

数据库层面基本操作

显示当前的数据库

show databases;

52e15b7e75100a0b971416901d02bcda_e208d6520fb34ea89f93dc9f788686c5.png

里面包含了:


information_schema,


mysql,


niceff....等数据库

创建数据库

create database 数据库名;

直接创建

create database if not exists 数据库名;

d971149e1635bf99ca486c0b84e9079c_3dff3a6a256d49068cead79608edbf9a.png

使用数据库

use 数据库名;

使用use + 数据库名,进入到当前数据库:

删除数据库

drop database 数据库名;drop database if exists 数据库名;

删除数据库是一个非常危险的行为,一定要谨慎再谨慎(删除表同样危险),数据库一旦删除,里面的表和数据也会被全部删除.


常用数据类型

int:整型

decimal(M, D):浮点数类型

varchar(SIZE):字符串类型

timestamp:日期类型

表的操作

如果需要对某一个数据库里面的表进行操作,首先需要使用改数据库,也就是使用use + 数据库名的形式


创建表

create table 表名(field1 dataType, field2 dataType, field3 dataType, ..........);例如:

也可以使用comment增加字段说明:

查看表的结构

desc 表名;

desc为describe的缩写,意为描述.


注意:describe为MySQL中的关键字,如果使用describe 表名的结构会创建失败

41113581839b38f9c8cf17af3e8092d5_ddaea679c55a4fe3b63fdb62d56c06c1.png

删除表

drop table 表名;drop table if exists 表名;

注释

在SQL中可以使用“--空格+描述”来表示注释说明

例如:

db4febb94ae641b8cc3d6aa618956b10_109dbd8c97db42b189ee053f75f5141c.png

练习

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


  1. 商品goods(商品编号goods_id,商品名goods_name, 单价unitprice, 商品类别category, 供


应商provider)


  1. 客户customer(客户号customer_id,姓名name,住址address,邮箱email,性别sex,身份证


card_id)


  1. 购买purchase(购买订单号order_id,客户号customer_id,商品号goods_id,购买数量nums)


create database datas default character set utf8;

use datas;

create table if not exists goods

(

goods_id int comment '商品编号',

goods_name varchar(32) comment '商品名称',

unitprice int comment '商品价格',

category varchar(50) comment '商品类别',

provider varchar(50) comment '供应商'

);

create table if not exists customer

(

customer_id int comment '客户号',

name varchar(50) comment '姓名',

address varchar(100) comment '住址',

email varchar(50) comment '邮箱',

sex varchar(20) comment '性别',

card_id varchar(20) comment '身份证'

);

create table if not exists purchase

(

order_id varchar(20) comment '订单号',

customer_id int comment '客户号',

goods_id varchar(20) comment '商品号',

nums int comment '购买数量'

);

表的增删改查

表的增删改查也称作CRUD:


CRUD 即增加(Create)、查询(Retrieve)、更新(Update)、删除(Delete)四个单词的首字母缩写

使用insert into语句:

insert into 表名 values(value1, value2, value3, ..... );

首先新建一个表:

如下:

单行插入

insert into 表名 values( value1, value2, value3, ..... );

写入的参数必须和创建表的时候的数据参数顺序一致;



全列插入

insert into 表名 values( value1, value2, value3, ..... ), ( value1, value2, value3, .....);

写入的参数必须和创建表的时候的数据参数顺序一致;

0ca346aa590f724cc05d8055b8ca7b34_c640d906a246489ba06e1d42e8fcd888.png

指定参数顺序插入

insert into 表名(valueA, valueB, valueC,......) values(valueA, valueB, valueC,......)

name 为varchar类型的数据,id为int类型的数据,所以在插入记录的时候,首先需要按顺序输入name的参数,然后输入id的参数.


多行和单行插入的性能对比

由于MySQL是一个'客户端服务器'结构的程序, 在MySQL中使用insert into语句的时候,会向服务器发送一次请求, 那么如果是多行输入, 只需要一次请求就可以插入多行记录, 如果是单行输入,那么多行记录就只能向服务器请求多次, 所以多行插入的性能消耗是比单行出入少的.

时间类型的插入

在ret数据库中创建一个表,表名为homework:

往这个homework里面插入数据(记录),使用特定格式字符串:


形如:


'2023-02-20 17:21:00'

自定义输入时间

例如:


insert into homework values(1,'2023-02-20 17:21:00');

cebbe6f32fb64aed84a88fd69dcfc67d_f3611db12e2a4a34a34a8d115030a07e.png

设置为当前时间

假如我想直接输入当前的时间,该怎么做? MySQL提供了一个特殊的函数: now()

例如:

insert into homework values(2, now());

使用select语句

全列查找

select*from 表名;

'*' 表示所有列,这种符号在计算机当中称为'通配符', 通配符是一种特殊语句,主要有星号(*)和问号(?),用来模糊搜索文件。当查找文件夹时,可以使用它来代替一个或多个真正字符;当不知道真正字符或者懒得输入完整名字时,常常使用通配符代替一个或多个真正的字符


例如:

ab6da962086df8099f450c964a717d5a_c98d0d25e7f74a209f138e571e9b3692.png


话说回来,MySQL是一个'客户端服务器'结构的程序, 如果当select* 时数据量过大, 单个数据通道的传输的数据量就会变大, 这就会沾满硬盘带宽或者影响网络的使用.


指定列查询

select 列名1,列名2,列名3...... from 表名;


例如:

b27268ab746936b7abf7327eac0683f2_ba0a4a0d5961427a994a35f24247d4f9.png

表达式查询

(以下查找都是基于列与列之间的计算)

创建一个表(exam_result):

插入:


(1, '张三', 67, 98, 56),

(2, '李四', 87.5, 78, 77),

(3, '王五', 88, 98.5, 90)

不包含字段

一个字段

如果要对chinese + 10 的方式进行查询,如下


select name, chinese + 10 from exam_result;

结果如上.


多个字段

或者查询chinese,matzh,english的综合成绩:


select name, chinese + math + english from exam_result;

d6b477134d56a59f1d53eff935803915_f357e8247499437b8786cecb6266ea8d.png

查询对原数据是否有影响

但是我们当前存储的结果是否发生改变?

22f2cf0076add6bc2cc6e62d6e7496d5_fb0a1168dc3344198fd086a16f707364.png


再次全列查找,发现原始的数据是没有发生改变的.


MySQL是一个'客户端服务器'结构的程序, 此时用户输入的sql, 通过请求发送给服务器,服务器解析并执行sql, 把查询的结果从硬盘上读取出来,然后用网络的形式响应, 返还给用户, 客户端再把这些数据以临时表的形式展现出来.所以不会改变原来的数据.

61a327134c37271c8b488ce6293d1f80_0c1190a85b774574b15ebf4c2a8f7787.png


有时候这种chinese + math + english的表达式在理解上可能不够直观,需要进行简化:可以在查询的时候指定别名,指定别名相当于给这个chinese + math + english取了一个小名,让它理解起来更加容易.


使用:全名 as 小名的方式


select chinese + math + english as 小名


select chinese + math + english as total from exam_result;

27c3b136b54097fc9ecc74a97a9e11c4_fa1c9bb738e34867b465e180e7631a3e.png

当小名为中文的时候,不需要加上单引号或者双引号.


MySQL数据库操作-2

https://developer.aliyun.com/article/1517110

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
3天前
|
关系型数据库 MySQL
MYSQL-多表操作-外键约束
MYSQL-多表操作-外键约束
|
9天前
|
存储 关系型数据库 MySQL
MySql创建带事务操作的存储过程
MySql创建带事务操作的存储过程
|
1天前
|
SQL 关系型数据库 MySQL
MySQL数据库——事务操作-begin-commit-rollback
MySQL数据库——事务操作-begin-commit-rollback
6 1
|
1天前
|
SQL 关系型数据库 MySQL
MySQL单表操作学习DDL_DML_DQL语句
MySQL单表操作学习DDL_DML_DQL语句
7 0
|
2天前
|
SQL 关系型数据库 MySQL
go 通过sql操作mysql
go 通过sql操作mysql
11 1
|
3天前
|
存储 关系型数据库 MySQL
MYSQL--存储过程操作
MYSQL--存储过程操作
|
3天前
|
安全 关系型数据库 MySQL
MYSQL--视图操作
MYSQL--视图操作
|
5天前
|
缓存 分布式计算 关系型数据库
数据管理DMS操作报错合集之当进行RDS实例的可用区迁移时,提示“缓存清理”是什么意思
数据管理DMS(Data Management Service)是阿里云提供的数据库管理和运维服务,它支持多种数据库类型,包括RDS、PolarDB、MongoDB等。在使用DMS进行数据库操作时,可能会遇到各种报错情况。以下是一些常见的DMS操作报错及其可能的原因与解决措施的合集。
|
5天前
|
DataWorks 关系型数据库 MySQL
DataWorks操作报错合集之在尝试连接到MySQL数据库时遇到了“Communications link failure”错误,如何解决
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
|
5天前
|
SQL 关系型数据库 MySQL
Python 操作 MySQL 数据库
Python 操作 MySQL 数据库

推荐镜像

更多