MySql的基本操作

devtools/2024/10/18 6:11:28/

一、连接数据库,查看对象,数据库的维护,mysql的数据类型

 1、连接数据库

mysql -hlocalhost -uroot -proot

2、查看对象

show databases; 查看有哪些数据库

show tables;查看有哪些表

show columns from [table_name];查看表里有哪些字段

show index from [table_name]; 查看表里的索引

3、数据库的维护

创建数据库:create databases test;

删除数据库:drop databases test;

选择数据库:use test;

4、数据类型

(1)字符串(UTF-8自负集问题,排序问题,长度问题)

       排序使用order by函数。顺序排序,sql语句后面加asc

                                       倒序排序,sql语句后面加desc

                                       如果按照某个字段长度排序用order  by加length函数,order by length(字段名)
                                       如果你想根据字符串的字母进行排序,用 order by left(字段名,1)asc来进行排序

    (2)数值(范围;小数,精度丢失,使用整数处理;)

精度丢失可以使用DECIMAL;四舍五入可以使用round如ROUND(your_column, 2)转换为数值类型,避免精度丢失CAST(your_column AS DECIMAL(10, 2));

   (3)日期时间

 时区,存储0时区的时间

5、表结构的维护

(1)创建表 

CREATE TABLE `class` (

`id` INT(11) NOT NULL AUTO_INCREMENT,

`name` VARCHAR(10) NOT NULL COLLATE 'utf8mb4_bin',

PRIMARY KEY (`id`),

UNIQUE INDEX `Unique_Class_Name` (`name`)

)

COLLATE='utf8mb4_bin'

ENGINE=InnoDB;

(2)索引

a、索引的作用:提高查询速度

b、在哪些字段上创建索引:查询条件里有哪些字段,这些字段可以用来创建索引

c、索引的缺点:占用存储空间,影响增删改的速度

d、索引有那几种类型:主键、唯一索引、普通索引

(3)表结构维护的一些常用语句

删除表:drop table `class`;

增加字段:ALTER TABLE `class`

                 ADD COLUMN `no` INT(11) NOT NULL DEFAULT '0' AFTER `id`;

删除字段:ALTER TABLE `class`

                  DROP COLUMN `no`;

修改字段:ALTER TABLE `class`

                 CHANGE COLUMN `name` `name2` VARCHAR(20);

增加数据:

-- 插入多行数据最优方案

INSERT INTO `class` (`id`, `no`, `name`) VALUES

(5, 1086, '李四'),

(6, 1086, '王五'),

(7, 1086, '麻子');

删除数据:-- 避免删除所有数据,必须有WHERE

DELETE FROM `test`.`class` WHERE `id`=1;

-- 这是sql注释

更新数据:-- 避免更新所有数据,必须有WHERE

-- name更新为新值

UPDATE `test`.`class` SET `name`='王五' WHERE `id`=6;

-- name后追加字符串

UPDATE `test`.`class` SET `name`= concat(`name`, '3') WHERE `id`=6;

6、表结构维护之查询语句

(1)数据量比较大,上万行,分页查询

-- 从0行记录开始,返回100条记录

select `id`, `no` from `class` where `id` > 1 limit 0, 100

(2)分组

把数据集分为多个组

group by 字段1[,字段2,字段3]。  分组是为了计算各个组的总体情况

结果里一般包括:分组字段和统计函数值      having支持使用聚合函数作为条件

查询重复数据:select login, count(*) c from user group by login having c>1

(3)过滤重复数据 select distinct(login) from user

删除重复数据

删除重复的行并保留id重复行最小的一行记录

DELETE FROM user

WHERE

login IN (

SELECT

login

FROM

user

GROUP BY

login

HAVING

count(login) > 1

) -- 所有重复数据的login

AND

id NOT IN (

SELECT

min(id)

FROM

user

GROUP BY

login

HAVING

count(login) >1

); -- 排除重复login的最小id

7、数据库维护的基本操作

(1)sql语句中where子句的用法  

a、where后跟判断操作符 如= 、 > 、 <、 !=

b、where后跟逻辑运算符 如and 、or 、 not

(2)where后跟模糊查询

a、%表示任意多个字符:%王% 匹配 1王23 王3 王

b、_表示任意一个字符:王_ 匹配 王四,不匹配 王12

c、数据库的模糊查询性能往往很低,使用全文检索系统(solr, els)来实现模糊查询

(3)函数

a、聚合函数:需要多条记录参与

b、非聚合函数:只需要一条记录参与

(4)事务

开启事务:BEGIN

提交事务:COMMIT

回滚事务:ROLLBACK


http://www.ppmy.cn/devtools/34477.html

相关文章

通过七析BI自定义组件实现3D效果图表渲染

关于可视化的一些概念已经在之前的文章进行了大概的介绍&#xff0c;接下来我们会更加深入探讨关于呈现效果的内容。 为什么要用3D图表在仪表盘中进行呈现&#xff1f; 当讨论到这个问题的时候&#xff0c;自然就会回归到一个核心&#xff1a;3D与2D的呈现效果有什么区别&#…

CMakeLists.txt语法规则:提供信息的变量说明一

一. 简介 前面几篇文章学习了 CMakeLists.txt语法中 部分常用命令。 接下来学习CMakeLists.txt语法中部分常用变量&#xff0c;变量也是 cmake 中的一个重头戏&#xff0c;cmake 提供了很多内置变量。每一个变量都有它自己的含义&#xff0c;可以通过如下链接地址查询到所有…

Github 2024-05-06 开源项目日报 Top10

根据Github Trendings的统计,今日(2024-05-06统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Jupyter Notebook项目2Python项目2C#项目1JavaScript项目1Cuda项目1TypeScript项目1Rust项目1C项目1简单、纯净的C/CUDA中的LLM培训 创建周期:…

GO语言核心30讲 实战与应用 (第一部分)

原站地址&#xff1a;Go语言核心36讲_Golang_Go语言-极客时间 一、测试的基本规则和流程 1. GO程序主要分三类测试&#xff1a;功能测试、性能测试&#xff0c;以及示例测试。 示例测试和功能测试差不多&#xff0c;但它更关注程序打印出来的内容。 2. 测试文件的名称应该以…

Phi-2:小型语言模型令人惊人的能力

导语 phi-系列模型是微软研究团队推出的轻量级人工智能模型&#xff0c;旨在实现“小而精”的目标&#xff0c;能够实现在低功耗设备上例如智能手机和平板电脑上部署运行。截止目前&#xff0c;已经发布到了phi-3模型&#xff0c;本系列博客将沿着最初的phi-1到phi-1.5&#x…

基于LLama3、Langchain,Chroma 构建RAG

概要&#xff1a; 使用Llama3 Langchain和ChromaDB创建一个检索增强生成&#xff08;RAG&#xff09;系统。这将允许我们询问有关我们的文档&#xff08;未包含在训练数据中&#xff09;的问题&#xff0c;而无需对大型语言模型&#xff08;LLM&#xff09;进行微调。在使用RA…

Unity DOTS1.0(8) Aspect核心机制分析

Aspect 概念&#xff1a; ASPECT是一种用于描述Entity的特性或特征的概念。ASPECT通常用于在系统中筛选出具有特定组件集合的实体。 你可以把5~6个组件得引用保存到一个数据对象里面(Aspect),你通过Aspect就可以拿到这些组件得引用&#xff0c;从而访问这些组件数据; Unity 会…

读天才与算法:人脑与AI的数学思维笔记19_深度数学

1. 深度数学 1.1. 组合与选择&#xff0c;是发明新事物的两个不可或缺的条件 1.1.1. 保尔瓦雷里&#xff08;Paul Valry&#xff09; 1.2. 利用以往的数学定理证明过程训练算法&#xff0c;以发现新的定理 1.3. 谷歌设在伦敦的总部整体有一种现代牛津大学的感觉&#xff0c…