mysql基础学习1

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.xdnf.cn/news/34046.html

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

相关文章

行业Know-How助力零售企业数字化转型|StartDT Talk

【StartDT Talk】“客户成功三要素”系列直播第三期圆满收官&#xff01; 本期直播聚焦于三要素之一的“好的行业Know-How”&#xff08;行业理解&#xff09;&#xff0c;由奇点云创始人行在和资深产研专家追风共同探讨与零售相关的行业知识&#xff0c;以及我们在零售行业的…

linux——进程间通信system V消息队列

Linux——命名管道及日志-CSDN博客 文章目录 目录 文章目录 前言 一、system V消息队列是什么&#xff1f; 二、相关库接口 1.shmget接口 2、ftok接口 3、shmget、ftok接口封装 4、共享内存操作 ​编辑 5、shmdt接口 三.函数的调用 1、查看共享内存 2、shell 四…

【Redis】not support: redis

1、查看redis进程 2、查看是否安装redis扩展&#xff0c;此处以宝塔为例

网站维护记录

服务器重启&#xff0c;网站打不开&#xff1a;chown -R manager:manager /run/php-fpm/www.sock wordpress升级需设置ftp&#xff1a; // 设置权限0777 //define("FS_METHOD", "direct"); //define("FS_CHMOD_DIR", 0777); //define("…

XiYan-SQL:⼀种多⽣成器集成的Text-to-SQL框架

发布于:2024 年 12 月 03 日 星期二 北京 #NL2SQL #阿里巴巴 #Text-to-SQL 文提出了一种用于自然语言到 SQL 转换的多生成器集成框架 ——XiYan-SQL,旨在应对大型语言模型在 NL2SQL 任务中的挑战。该框架融合提示工程与监督微调(SFT)方法,利用 SFT 的可控性与上下文学习(…

283.移动零(快慢指针)

目录 题目过程解法 题目 给定一个数组 nums&#xff0c;编写一个函数将所有 0 移动到数组的末尾&#xff0c;同时保持非零元素的相对顺序。 请注意 &#xff0c;必须在不复制数组的情况下原地对数组进行操作。 过程 class Solution { public:void moveZeroes(vector<int…

L17.【LeetCode笔记】另一棵树的子树

目录 1.题目 代码模板 2.分析 3.代码 4.提交结果 1.题目 https://leetcode.cn/problems/subtree-of-another-tree/description/ 给你两棵二叉树 root 和 subRoot 。检验 root 中是否包含和 subRoot 具有相同结构和节点值的子树。如果存在&#xff0c;返回 true &#xff…

天天AI-241302:今日热点-B站第二届超级科学晚聚焦AIGC,年度播放量突破300亿次

2AGI.NET 天天 AI 天天AI&#xff1a;AIGC技术引领科学与媒体新浪潮天天AI&#xff1a;AIGC技术引领科学与媒体新浪潮https://www.2agi.net/blog/daily-ai-aigc-technology-leads-science-and-media-new-wave/ 1. B站第二届超级科学晚聚焦AIGC&#xff0c;年度播放量突破300亿…

MySQL数据集成到广东省追溯平台的销售信息同步方案

销售信息同步--外购上报流程2&#xff1a;MySQL数据集成到广东省特殊食品电子追溯平台 在现代数据驱动的业务环境中&#xff0c;确保销售信息的准确性和及时性至关重要。本文将分享一个具体的技术案例&#xff0c;展示如何通过轻易云数据集成平台&#xff0c;将MySQL中的销售信…

vue-qr在线生成二维码组件(vue2版本)

在对于二维码生成中有许多组件&#xff0c;下面介绍关于自定义比较高的vue-qr组件&#xff0c;能自定义设置背景颜色、背景图片、背景Gif图、实点和空白区的颜色、中心Logo的图片和边距。 依赖下载 注意&#xff1a; 直接npm下载最新版 有些项目可能运行会抱错 这时候你可以降…

C#/.NET/.NET Core技术前沿周刊 | 第 15 期(2024年11.25-11.30)

前言 C#/.NET/.NET Core技术前沿周刊&#xff0c;你的每周技术指南针&#xff01;记录、追踪C#/.NET/.NET Core领域、生态的每周最新、最实用、最有价值的技术文章、社区动态、优质项目和学习资源等。让你时刻站在技术前沿&#xff0c;助力技术成长与视野拓宽。 欢迎投稿、推荐…

Ngrok快速将你的本地Streamlit应用创建一个公共的 URL,供外网访问

目录 1 Ngrok介绍2 Ngrok 的工作原理3 Ngrok安装4 启动Streamlit应用5 Ngrok搭建外网访问 1 Ngrok介绍 Ngrok 是一个开源工具和商业服务&#xff0c;可以为你的本地应用创建一个安全的公共 URL&#xff0c;使其能够通过互联网访问&#xff0c;而无需复杂的网络配置&#xff08…

青龙面板的定时规则

6个数字的定时规则&#xff0c; 第1个是秒&#xff0c;第2个是分&#xff0c;第3个是时&#xff0c;第4个是每月的哪日&#xff0c;第5个是哪月&#xff0c;第6个是每周的周几。 数字之间空格隔开。 不限制的用*号替代&#xff0c;定期的时间用“?”替代&#xff0c;间隔运…

XSS(DOM)-HIGH错误总结

HIGH就不从简单的开始。 我们直接闭合HTML标签绕过 ></option></select><img srcx:alert(alt) οnerrοreval(src) altxss> 没有变化 这里应该是后端的问题&#xff0c;试试锚点注入 English#<script>alert(xss)</script> 这里不知道什么…

深度学习图像增强介绍

目录 一、引言二、常用数据增广方法三、图像变换类3.1 AutoAugment3.2 RandAugment 四、图像裁剪类4.1 Cutout4.2 RandomErasing4.3 HideAndSeek 五、图像混叠5.1 Mixup5.2 Cutmix 六、结论 一、引言 在图像分类任务中&#xff0c;图像数据的增广是一种常用的正则化方法&#…

MySQL导入.sql文件后数据库乱码问题

问题分析&#xff1a; 当导入.sql文件后&#xff0c;发现数据库中的备注出现乱码&#xff0c;通常是由于一下原因导致&#xff1a; 字符集不匹配&#xff1a;.sql文件、MySQL服务器、客户端连接使用的字符集不一致。备注内容编码问题&#xff1a;备注内容本身的编码格式与数据…

云数据库 RDS

云数据库 RDS&#xff08;Relational Database Service&#xff0c;关系型数据库服务&#xff09;是由阿里云提供的一种托管的关系型数据库服务&#xff0c;旨在简化数据库的部署、管理和维护工作&#xff0c;帮助用户快速构建、部署和管理关系型数据库。RDS 提供了包括 MySQL、…

图社区发现算法-Louvain算法

Louvain社区发现算法出自2008年的论文《Fast unfolding of communities in large networks》&#xff0c;其名字是根据作者所在的城市来命名的。它基于模块度优化来实现社区划分。 准备知识 模块度(modularity)是用来衡量社区内部的链接密度相比社区之间的链接密度的介于-1和…

Elasticsearch之索引的增删改查(6.x版本)-yellowcong

1. 节点信息查看 #查看集群健康情况 curl -X GET localhost:9200/_cat/health?v&pretty#查看节点信息 curl -X GET localhost:9200/_cat/nodes?v&pretty 2. 索引管理 在es中&#xff0c;索引就相当于是mysql中的库了。 #查看索引列表 curl -X GET localhost:9200/…

技术栈4:Docker入门 Linux入门指令

目录 1.Linux系统目录结构 2.处理目录的常用命令 3.Docker概述 4.Docker历史 5.Docker基本组成 6.Docker底层原理 7.Docker修改镜像源 8.Docker基本命令 在学习docker之前我们先要熟悉Linux系统&#xff0c;推荐阅读&#xff1a;Linux笔记&#xff08;狂神说&#xff0…