mysql基础学习1

news2024/12/26 19:22:29

useradd -r -g mysql -s /bin/false mysql (-r)系统用户 不能登录

A temporary password is generated for root@localhost: d>#jT7rfoaz)

看是否启动  看进程 端口 直接连接 看日志

varchar (20)   char(20)更耗空间

create table student_info(id int,name varchar(20),sex char(10));

root@sc 23:08 mysql>desc student_info;看表的结构

+-------+-------------+------+-----+---------+-------+

| Field | Type        | Null | Key | Default | Extra |

+-------+-------------+------+-----+---------+-------+

| id    | int(11)     | YES  |     | NULL    |       |

| name  | varchar(20) | YES  |     | NULL    |       |

| sex   | char(10)    | YES  |     | NULL    |       |

+-------+-------------+------+-----+---------+-------+

3 rows in set (0.01 sec)

或者show create table student_info

数据在/datamysql 中

select ceil(1.5) floor(1.5) truncate(1.56,1) 结果:2,1,1.5  取整

sign(-1) 判断正负  -1 负数  0-0  1 正数

[root@hunan_cs_furong mysql]# cd sc

[root@hunan_cs_furong sc]# cat db.opt

default-character-set=utf8 默认字符集

default-collation=utf8_general_ci 字符集对应的校对规则

告诉我们这个库使用的字符集

[root@hunan_cs_furong sc]# ls

db.opt  student_info.frm表结构文件 frame框架  student_info.ibd表的数据和索引(快速查找数据 描述数据的数据)

innodb data  默认使用存放引擎innodb 还有个myisam  存储引擎和绑定

将MYSQL内存里的数据存放到磁盘 将磁盘里的数据读取到内存

create table student_info(id int,name varchar(20),sex char(10)) engine=myisam;

.frm  (表结构数据)  .MYD (myisam存储引擎存放数据data)  .MYI(索引)

mysql多线程 mysqld_safe—mysqld

配置文件/etc/my.cnf

用socket槽 进程和进程之间通信的方式 共享内存 消息队列

文件socket (默认) 要求在同一台电脑上 实现一台电脑上不同进程之间通信的文件

网络socket ip+port 不同电脑不同进程之间的通信

create user ‘xfb’@’%’ identified by ‘123456’;

grant all on *.* to ‘xfb’@’%’;

show processlist;看有哪些机器连接

desc 看表结构

存储引擎:MyISAM

/etc/my.cnf service mysqld restart     flush privileges

skip-grant-tables跳过密码认证 当忘记密码的时候 登录进去 修改密码 然后刷新权限 然后再把配置文件这行注释掉

编译安装需要make  make install make -j 2

mysql是二进制安装 安装速度快 版本5.7.37 登录就可以看 select version

auto-rehash tab补齐

prompt =\\u\\d\\R:\\m mysql>  user database

authentication_plugin  mysql_native_password密码验证插件

alter user ‘xfb’@’%’ identified with mysql_native_password by ‘1234’;

drop user ‘xfb’@’%’

show warning;

create table if not exists xieshan.ejiao(id int ,name varchar(20)) engine=myisam ;

select * from xieshan.ejiao

insert into ejiao(id,name) values(1,’he’)

索引:描述数据的数据 相当于目录

给主键加索引 加快数据查询速度

create table test.xfb(

payment int not null primary key(不能出现重复的 不能null),

playerno int not null conment “球员编号”,

payment_date date not null unique( 唯一性约束唯一不能出现一样的 但可以是NULL 空值也只能一次),

amout decimal(7,2)定点型精确值,总长度7位 保留两位 not null)

alter table xfb add name varchar(20);

alter table xfb modify name char(20);

alter table xfb change name username varchar(20);

zerofill 填充0

signed 有符号数 无符号数

set @@auto_increment_offset=10;起始值  设置系统变量

set @@auto_increment_increment=10;每次加十

三大数据类型:数值:整数 浮点型 定点型decimal

字符串  日期和时间 时间戳

特殊:GIS

create table t3(id tinyint unsigned)(0-255) 字段选型

tinyint  255 一个字节 id 年龄等 默认有符号(-128--127)

smallint 2个字节 0-65535

int 40忆 放不下电话号码(用varchar可变数据类型)

blob 二进制文本 放图片视频

timestamp时间戳 now()

库就是文件夹 表就是文件

DML语句 数据操作语言 data manipulation language

insert replace update delete select truncate help 数据库增删改查

DDL语句 数据定义语言 date definition language

create drop alter  建表建库

DCL语句 数据控制语言 data control language

grant revoke撤销

DQL语言 数据查询语言 Data query language

select

DBMS 数据库管理系统 database management system

OFS  指定awk输出分隔符

show engines 看存储引擎 innodb myisam csv(文本文件 以,分隔) memory(存储在内存 临时表) blackhole

支持外键 支持事务 行锁 支持哈希索引

innodb:是mysql默认存储引擎,如果应用对事务的完整性比较高,并发情况下要求数据一致性高,更新删除操作比较多

myisam:应用以读写操作和插入操作为主,很少更新和删除操作,并且对事务的完整性,并发性要求不高

memory:将所有数据保存在内存中,访问速度快,通常存放临时表,但是对表的大小有限制

事务:用来执行一组sql语句 一般insert update delete语句 维护数据库的完整性

原子性(如果发生错误会回滚到事务开始之前状态) 一致性(完整性)   持久性

隔离性(允许多个事务对数据进行修改 隔离级别:读未提交 读提交 可重复读 串行化)

读未提交:事务可以读取其他事务未提交的数据,会产生脏数据,幻读

读以提交:只能读其他事务已经提交的数据,幻读

可重复读:事务在整个事务期间看到的数据都是一致的,即使其他事务提交了数据更改,幻读   默认

丢失更新:如果两个事务同时对数据进行修改则会导致问题

悲观锁:认为两个事务更新操作一定会发生丢失更新:通过语句后面加for update来实现行级锁select * from t_account wheret.id=’1’ for update;

乐观锁:认为事务不一定会产生丢失更新,让事务进行并发修改,不对事务进行锁定,可以对数据表自增version字段或时间戳timestamp进行数据修改,数据库会检测version字段或者时间戳是否与原来的一致,若不一致抛出异常

select @@transaction_isolation

并发事务问题:脏读(一个事务读到另外一个事务未提交的数据)  不可重复读(一个事务先后读取同一条记录,但两次读取的数据不同) 幻读(一个事务按照条件查询数据时,没有对应的数据行,但是再插入数据时,又发现这行数据已经存在)

begin或者start transaction 开始事务

commit提交事务

rollback 回滚 撤销所有未提交的修改

savepoint identifier在事务中创建一个保存点

ROLLBACK TO identifier 把事务回滚到标记点;

set transaction设置事务隔离级别

set autocommit=1设置自动提交

set session(当前) transaction isolation level

START TRANSACTION;

UPDATE accounts SET balance = balance - 100 WHERE user_id = 1;

UPDATE accounts SET balance = balance + 100 WHERE user_id = 2;

IF (条件) THEN

    COMMIT; -- 提交事务

ELSE

    ROLLBACK; -- 回滚事务

END IF;

alter table mysql

add column新增列 modify修改数据类型 change改列名 drop删除列 rename改表名

ALTER TABLE employees 创建唯一索引

ADD CONSTRAINT idx_email UNIQUE (email);

select distinct (取某列唯一的值 去重)

select  … where id=1

<>不等于 between like

Select * from emp where ename like 'M%';

查询 EMP 表中 Ename 列中有 M 的值,M 为要查询内容中的模糊信息。

  •  % 表示多个字值,_ 下划线表示一个字符;

UPDATE Websites SET alexa='5000', country='USA' WHERE name='菜鸟教程';

SELECT * FROM Websites
WHERE name REGEXP '^[A-H]'; name以a-h字母开头的网站 模式匹配或者RLIKE

三个列(url、alexa 和 country)结合一起,创建一个名为 "site_info" 的别名:

SELECT name, CONCAT(url, ', ', alexa, ', ', country) AS site_info
FROM Websites;

SELECT * FROM employees

ORDER BY department_id ASC, hire_date DESC;

SELECT product_name, price

FROM products

ORDER BY price DESC NULLS LAST;  把null值放到最后 first

mysql> SELECT name, SUM(signin) as signin_count FROM  employee_tbl GROUP BY name WITH ROLLUP;

+--------+--------------+

| name   | signin_count |

+--------+--------------+

| 小丽 |            2 |

| 小明 |            7 |

| 小王 |            7 |

| NULL   |           16 |

在根据名字分组得基础上再根据登录次数统计 

select coalesce(a,b,c);

如果 a==null,则选择 b;如果 b==null,则选择 c;如果 a!=null,则选择 a;如果 a b c 都为 null ,则返回为 null(没意义)。

mysql> SELECT coalesce(name, '总数'), SUM(signin) as signin_count FROM  employee_tbl GROUP BY name WITH ROLLUP;

+--------------------------+--------------+

| coalesce(name, '总数') | signin_count |

+--------------------------+--------------+

| 小丽                   |            2 |

| 小明                   |            7 |

| 小王                   |            7 |

| 总数                   |           16 |

+--------------------------+--------------+

select * , columnName1+ifnull(columnName2,0) from tableName;

columnName1,columnName2 为 int 型,当 columnName2 中,有值为 null 时,columnName1+columnName2=null, ifnull(columnName2,0) 把 columnName2 中 null 值转为 0。

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

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

相关文章

PPT怎样做的更加精美

目录 PPT怎样做的更加精美 3D的GIF图片 3维空间图​编辑 结果有明显的对比 阅读高质量文献,采用他们的图 PPT怎样做的更加精美 3D的GIF图片 3维空间图 结果有明显的对比

Marvell第四季度营收预计超预期,定制芯片需求激增

芯片制造商Marvell Technology&#xff08;美满电子科技&#xff09;&#xff08;MRVL&#xff09;在周二发布了强劲的业绩预告&#xff0c;预计第四季度的营收将超过市场预期&#xff0c;得益于企业对其定制人工智能芯片的需求激增。随着人工智能技术的快速发展&#xff0c;特…

爬虫第四篇:Xpath 路径表达式全解析:从网页基础到爬取百度贴吧图片实战

简介&#xff1a;本文围绕 Xpath 路径表达式展开讲解&#xff0c;先是介绍了网页相关基础如 html、css、vue 以及前后端分离的概念与示例&#xff0c;包括各部分的结构、作用及简单代码展示&#xff0c;随后详细阐述了 xml 的节点关系、选取节点、谓语等理论知识&#xff0c;最…

使用lumerical脚本语言创建弯曲波导并进行数据分析(纯代码实现)

本文使用lumerical脚本语言创建弯曲波导、设置有限差分时域(FDTD)模拟、改变波导弯曲半径计算损耗、绘制图像展示电场强度分布情况及对具有不同弯曲半径的波导进行一系列模拟和分析操作(代码均有注释讲解)。 一、创建弯曲波导 1.1 基本结构讲解 (1)包层(Clad) 在波导结…

HarmonyOS4+NEXT星河版入门与项目实战(23)------实现手机游戏摇杆功能

文章目录 1、案例效果2、案例实现1、代码实现2、代码解释4、总结1、案例效果 2、案例实现 1、代码实现 代码如下(示例): import router from @ohos.router import {ResizeDirection } from @ohos.UiTest import curves

Redis面试专题-持久化

前言 开始Redis面试知识的复习和资料的收集&#xff08;收集和参考了网上的优质文章&#xff09;&#xff0c;本篇文章会不断更新&#xff0c;本系列文章主要分为两部分&#xff0c;一部分是该专题所涉及的相关基础知识&#xff0c;另一部分是面试题与思考题&#xff0c;大部分…

Blender导入下载好的fbx模型像的骨骼像针戳/像刺猬

为什么我下载下来的骨骼模型和我自己绑定的模型骨骼朝向完全不一样 左边是下载的模型 右边是我自己绑定的模型 左边的模型刚刚感觉都是像针一样往外戳的&#xff0c;像刺猬一样那种。 解决方法勾选自动骨骼坐标系

Ubuntu22.04上kdump和crash的使用

0.前言 1.引用&#xff1a; 解决Linux内核问题实用技巧之 - Crash工具结合/dev/mem任意修改内存-腾讯云开发者社区-腾讯云 解决Linux内核问题实用技巧之-dev/mem的新玩法-腾讯云开发者社区-腾讯云 ubuntu内核转储分析——kdump和crash的下载和使用_ubuntu kdump-CSDN博客 U…

linux安全-firewalld防火墙-基础讲解

目录 一、 防火墙技术分类 二、 firewalld 三、 firewalld支持的类型的NAT 四、 富语言 五、 firewalld配置方式 六、 firewall-cmd命令 七、 小实验 这篇文章将对 firewalld 防火墙的基础知识进行介绍 firewalld简介&#xff1a;firewalld的作用是为包过滤机制提供匹配…

Android中使用NSD扫描,实现局域网内设备IP的发现

0. 前言 本文介绍了什么是NSD协议&#xff0c;并介绍了如何在Android中实现NSD的服务端和客户端&#xff0c;实现局域网内的设备发现功能。 1. NSD是什么 在Android开发中&#xff0c;NSD&#xff08;Network Service Discovery&#xff09;是一种用于在局域网内发现其他设备…

ROS2 系列学习教程(总目录)

ROS2Learning ROS1 系列学习教程(总目录) 一、ROS2 简介 1.1 ROS2简介及学习资源汇总 二、ROS2 基础 2.1 ROS2安装详细教程&#xff08;以Humble为例&#xff09; 2.2 ROS2 构建系统 colcon 介绍、安装与使用 2.3 ROS2 与 ROS1 编码方式对比 ROS2 与 ROS1 编码方式对比&am…

万字长文解读深度学习——VQ-VAE和VQ-VAE-2

&#x1f33a;历史文章列表&#x1f33a; 深度学习——优化算法、激活函数、归一化、正则化 深度学习——权重初始化、评估指标、梯度消失和梯度爆炸 深度学习——前向传播与反向传播、神经网络&#xff08;前馈神经网络与反馈神经网络&#xff09;、常见算法概要汇总 万字长…

Vue 组件通信全面解析

Vue 组件通信全面解析&#xff1a;方式、原理、优缺点及最佳实践 在 Vue 开发中&#xff0c;组件通信是一个重要的核心问题。随着应用复杂度的增加&#xff0c;如何在组件之间有效传递数据、触发事件&#xff0c;直接影响代码的可维护性和可扩展性。Vue 提供了多种组件通信方式…

对力扣77组合优化的剪枝操作的理解

77. 组合 代码随想录放出了这一张图 我乍一看觉得想当然,但是仔细想想,又不知道以下剪枝代码作何解释,因此我想通过这篇文章简要解释一下 class Solution { private:vector<vector<int>> result;vector<int> path;void backtracking(int n, int k, int sta…

SpringMVC其他扩展

一、全局异常处理机制: 1.异常处理两种方式: 开发过程中是不可避免地会出现各种异常情况的&#xff0c;例如网络连接异常、数据格式异常、空指针异常等等。异常的出现可能导致程序的运行出现问题&#xff0c;甚至直接导致程序崩溃。因此&#xff0c;在开发过程中&#xff0c;…

运行 GreatSQL 时为什么要求关闭透明大页

在大部分运维规范中&#xff0c;一般都会要求在运行 GreatSQL/MySQL 的环境中要关闭透明大页&#xff0c;那么到底什么是透明大页&#xff0c;为什么要关闭&#xff0c;打开有什么风险吗&#xff1f; 在此之前&#xff0c;我也是有点懵的&#xff0c;本文试着回答这个疑问&…

日本IT|AWS技术方向都需要做哪些工作呢?

在日本IT行业中&#xff0c;AWS&#xff08;亚马逊网络服务&#xff09;技术方向的工作主要涉及利用AWS提供的各种服务和工具来构建、部署和管理云计算解决方案。具体来说&#xff0c;AWS技术方向的工作内容可能包括但不限于以下几个方面&#xff1a; 架构设计&#xff1a; 根据…

PostgreSQL实现透视表查询

PostgreSQL 8.3版本发布时&#xff0c;引入了一个名为tablefunc的新扩展。这个扩展提供了一组非常有趣的函数。其中之一是交叉表函数&#xff0c;用于创建数据透视表。这就是我们将在本文中讨论的内容。 需求说明 解释此函数如何工作的最简单方法是使用带有数据透视表的示例…

生信软件开发1 - 设计一个简单的Windwos风格的GUI报告软件

1. 安装基础库 使用Windows 11标题样式和主题自定义UI窗口库pywinstyles&#xff08;github: https://github.com/Akascape/py-window-styles&#xff09;&#xff0c;结合python自带tkinter库设计一个报告GUI软件。 pip install pywinstyles2. 设计一个简单的Windwos风格的G…

navicat连接mysql 8.0以上版本2059错误

安装了最新版本8.0.4的mysql之后&#xff0c;使用navicat链接提示以下错误。原因是因为mysql8.0 之前的版本中加密规则是 mysql_native_password&#xff0c;而 mysql8.0 之后的版本加密规则是caching_sha2_password 处理方案 解决方案1&#xff1a;下载安装最新版本navicat…