linux:数据库连接

article/2025/11/4 8:15:11

MySql数据库

视图:虚拟的表    索引:目录    事务:操作
安装数据库:sudo apt install mysql-server     //mysql8.0
安装C/C++开发库:sudo apt install libmysqlclient-dev
数据库:1.mysql 文件本身       2.数据库管理系统(应用程序)

C/S 模式  (客户端 / 服务器端)

stu@localhost   // 本主机登录

stu@%  // 远程登陆
使用TCP协议链接服务器客户端 ,数据库端口号 3306
关系型数据库:oracle 、mysql  等就是采用了关系模型来组织数据的数据库,关系模型就是指二维表格模型,其核心元素:数据行、数据列、数据表、数据库。

非关系型数据库:memcahe  redis 等指分布式、非关系型且一般不保证ACID原则的数据库存储系统,非关系型数据库以键值对存储,且结构不固定。(ACID是指原子性、一致性、隔离性、持久性)

ubuntu中
数据库启动:service mysql start    重启:restart
查看状态:service mysql status
数据库关闭:service mysql stop

链接数据库命令
mysql -uroot -p
没有设置过密码的情况下,直接回车就直接进去了,exit退出数据库

数据库操作

更改密码
ALTER user 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '***';

设置权限:

grant all privileges on *.* to 'root'@'%';

创建用户并设定加密方式
create user 'stu'@'localhost'  IDENTIFIED WITH mysql_native_password BY '***';

查看数据库
show databases

查看表
show tables

创建数据库
creat database 名称  charset=utf8

使用数据库
use 数据库名称

创建表
create table 数据库表名(字段名 类型 约束)

查看表属性

desc  表名

插入数据
insert into 表名 values (2022,"张三");

修改数据

update 表名 set id=1001 where name="张三";

删除数据
delete from stu1 where id=1002;

查看表的数据

select * from 表名;

数据类型

整型: 

字符串:


时间日期:

约束

主键:primary key 物理上存储顺序

非空:not null  此字段不允许填写空值

唯一:unique 此字段值不允许重复

默认:default 当不填写此值时使用默认值

外键:foreign key 对关系字段进行约束当为关系字段填写值时,会到关联的表中查询此值是否存 在,如果存在则写成功,如果不存在则写失败。 虽然外键约束可以保证数据的有效性,但是在进行 数据的crud(增加,修改,删除,查询)时,都会降低数据库的性能
 


使用c语言访问mysql

头文件:#include<mysql.h>
初始化:  MYSQL *mysql_init (MYSQL * mysql);

 连接数据库:mysql_real_connect(连 接 句 柄 , 本 地 主 机 登 录 , 用 户 , 密 码 , 数 据 库 名 , 端 口 , 本 地 域 套 接 字, 标 识 0);

执行sql语句: mysql_query(句柄,数组); //返回为0则成功

使用C语言打印数据库表格数据

提取数据:MYSQL_RES* r=mysql_store_result(&mysql);

获取结果集中行数:int num= mysql_num_rows( res); 

 记录列数:int num=mysql_field_count(&mysql);

 读取一行数据:mysql_fetch_row(res);

释放集合空间:mysql_free_result(res)

关闭数据库连接:mysql_close(句柄);

索引:是一种特殊文件,包含对数据表里所有记录的引用指针,简单讲,就是一本书的目录,能加加快查询。一般对数据库的操作是以查询为主,数据量大时,优化是关键

索引确实会让搜索数据的时间变短,但不用刻意地加很多个索引,索引修改时每个都会被修改,这样会增加运行时间,所以视情况而定,在必要的字段上加索引,没必要加很多个索引

查看数据库存储引擎:show engines;

在InnoDB存储引擎中索引选用的b+树数据结构,稳定性好

数据库开启运行时间检测:set profiling=1;

查找一条数据:select * from 表名  where title=' 数据名 ';

查看执行事件的时间:show profiles;

 为表创建索引:create index 索引名 on  表名 (name(20));

创建索引之后我们可以明显看到查找时间减少了非常多

 删除索引:drop index  索引名 on 表名

查看表信息:show create table test1;

事务:就是一组原子性的sql查询,或者说是一个独立的工作单元,事务内的语句,要么全部执行成功,要么全部执行失败

拿转账来说,转账的流程中,但凡有一步失败,钱就会到不了账户,或者钱被清空了也没到对方账户,或者自己的钱还在,对方钱也转成功了

ACID测试表示原子性、一致性、隔离性、持久性,一个运行良好的事务处理系统必须具备这些标准特性

原子性:要么成功提交,要么失败回滚

一致性:从一个正确状态转换到另一个正确状态(转200,我的账户状态少200,对方状态多200)

隔离性:事务所做的修改在最终提交之前对其他事务是不可见的

持久性:一旦事务提交,所做的 修改会永久保存在数据库中,既是系统崩溃,修改的数据不会改变

面试!!!!!隔离级别(4种级别从低到高越来越强)

1.未提交读: READ UNCOMMITTED

2.提交读:READ COMMITTED

3.可重复读:REPEATABLE   解决了脏读问题,保证了同一事物下多次读取结果一致,但有特殊情况,我们在读的时候其他人改了,但我们接收不到修改,这就是幻读

4.可串行化:SERIALIZABLE

事务命令:(必须的是InnoDB类型引擎才行)

开始事务:begin;

提交事务:commit;

回滚事务:rollback;

如果不commit;则可以rollback;可以恢复

查看当前会话隔离级别:SELECT @@SESSION.transaction_isolation;

可见当前隔离级别为:可重复读(连续查询都数据都一样,别人修改不了)

设置会话隔离级别:set session transaction isolation level

查看系统的隔离级别:SELECT @@GLOBAL.transaction_isolation;

设置系统隔离级别:set global transaction isolation level

视图:虚拟的表

通过创建视图操作表更加安全一些,它不会在数据库中实际存放数据,它的数据来自定义视图时使用的基本表,并且是在使用视图时动态生成的

创建一个视图:create view v_名称 as select 类型 from 表名,表名 where 表名.id=表名.id;

删除视图:drop view 视图名

为什么要使用视图?

1.简化复杂得sql操作,在编写查询后,可方便的重用而不用知道它的查询细节

2.重复使用sql语句

3.使用表的组成部分而不是全部

4.保护数据,可以给用户特定的权限

5.更改数据格式和表示

修改地址:


http://chatgpt.dhexx.cn/article/rxGZGOMt.shtml

相关文章

在linux上安装数据库服务

一、通过本地包安装mysql 1.先通过软件将包从windows传到linux上&#xff0c;四个rpm包。 2.检查Linux上是否卸载了数据库自带的包&#xff0c;会导致安装不上。如果有&#xff0c;卸载掉。 rpm -qa | grep mysql rpm -qa | grep mariadb 卸载命令 rpm -e -nodeps 自带的包…

Linux环境下的数据库(基础篇上)

数据库 一、Linux环境下数据库的安装二、数据库的基础操作三、数据库中表的操作 一、Linux环境下数据库的安装 需要在 root 用户权限下进行数据库的一系列安装操作 安装 mariadb 服务&#xff1a; # yum install -y mariadb-server安装 mariadb 命令行客户端&#xff1a; …

Linux之数据库操作

一、mysql基本操作 1&#xff0c;连接数据库 mysql -u root -p -h 127.0.0.1 mysql -u root -p -h 192.168.12.56 2&#xff0c;授予远程连接的权限 grant all privileges on *.* to root"%" identified by "nihao123" 3&#xff0c;修改root用户的密码 先…

Linux和数据库

Linux命令:软件测试第一个任务,一般都需要进行环境搭建,一部分环境搭建内容是在服务器上实现的,跟服务器交互(没有图形化页面),需要使用Linux命令 数据库:所有的软件在使用过程中所产生的数据,最终都要存在数据库当中,而测试工作往往会需要去校验数据的正确与否,因此需要学习数…

Linux服务器操作数据库

一、进入mysql数据库 1、使用命令连接进入数据库 mysql -u root -p参数解析&#xff1a; root-是连接数据库的用户 连接成功的截图如下 2、可以查看当前用户有哪些数据库权限 show databases; 3、进入到指定的数据库 use test;参数解析&#xff1a;test-是数据库名称 4、…

SolrCloud介绍和应用

SolrCloud是基于Solr和Zookeeper的分布式搜索方案&#xff0c;是正在开发中的Solr4.0&#xff08;目前还是ALPHA版本,基于lucene4.0&#xff09;的核心组件之一&#xff0c;它的主要思想是使用Zookeeper作为集群的配置信息中心。它有几个特色功能&#xff1a;1&#xff09;集中…

Solr简介Solr使用及SolrCloud搭建

一、Solr简介 1、Solr是什么&#xff1f; 1.1就是一个war项目 2、自己的项目如何Solr进行交互&#xff1f; 2.1特定的API叫做SolrJ(底层其实就是HttpClient) 3、具备数据持久化功能 3.1Solr中会存储需要进行搜索的数据 3.2把所有的数据都初始化到Solr中. 4、Solr作用&#…

solrcloud导入mysql数据配置

最简单的solr7集群搭建(不需要tomcat) 添加jar (三个节点都要&#xff09; 复制solr解压目录中dist下的solr-dataimporthandler-7.5.0.jar solr-dataimporthandler-extras-7.5.0.jar 复制到WEB-INF/lib下 添加mysql-connection jar包到WEB-INF/lib下&#xff0c;我这里是mysq…

Solr+Zookeeper 搭建搜索集群SolrCloud

目录 一、简介 1、SolrCloud是个什么玩意&#xff1f; 2、Solr是个什么玩意&#xff1f; 3、zookeeper是个什么玩意&#xff1f; 4、实现负载均衡的方式&#xff1a; (Nginx、Redis槽、Zookeeper) 二、SolrCloud的结构 1、物理结构 2、逻辑结构 三、SolrCloud的搭建(3…

solrCloud分布式检索流程

好久没写solr的文章了&#xff0c;刚好需要在公司作个分享&#xff0c;先总结一些先。 引用请声明原文&#xff1a;http://blog.csdn.net/duck_genuine/article/details/17014991 solrCloud分布式检索主要流程如下&#xff1a; 搜索 video&#xff0c;“美女斗秀场” 取按…

solr全文检索技术学习(三)-搭建SolrCloud集群问题总结

什么是SolrCloud SolrCloud(solr 云)是Solr提供的分布式搜索方案&#xff0c;当你需要大规模&#xff0c;容错&#xff0c;分布式索引和检索能力时使用 SolrCloud。当一个系统的索引数据量少的时候是不需要使用SolrCloud的&#xff0c;当索引量很大&#xff0c;搜索请…

对SolrCloud集群Collection进行手动二次Sharding

我们已经基于SolrCloud 4.3.1Tomcat 7搭建了搜索服务器集群&#xff0c;一个Collection对应3个节点上的3个分片&#xff08;Shard&#xff09;&#xff0c;同时包含对应分片的副本&#xff08;Replica&#xff09;&#xff0c;此时&#xff0c;该Collection一共有6000万左右Doc…

Solr SolrCloud相关概念

Solr支持服务器的分布式集群部署&#xff0c;即SolrCloud。在SolrCloud中&#xff0c;一个索引可以被分布到不同的服务器&#xff0c;即不同的node&#xff0c;所有的这些node组成一个collection&#xff0c;并且充分考虑了高可靠性和容错的设计。 SolrCloud使用zookeeper来管理…

SolrCloud概述

在Lucene/Solr的SVN trunk中的SolrCloud已经可用, 在即将发布的4.0版本中将正式包含. 目前SolrCloud已经成熟, 可以支持分布式索引和分布式搜索. 下面是我们一个项目采用新的SolrCloud的部署结构图: 看起来是否非常简单? 下面我们看看内部的一些实现细节. SolrCloud功能和架…

solr8.9部署solrcloud

安装solr tar xf solr-8.9.0.tgz cd solr-8.9.0 ./bin/install_solr_service.sh /root/solr-8.8.2.zip -d /data/solr -u solr -n # /root/solr-8.8.2.zip 指定tar包 # -d: 指定solr可写目录&#xff0c;solr数据文件、日志、pid文件、索引会写入到此目录下。默认/var/solr #…

搭建SolrCloud的详细步骤

###一、需求 SolrCloud(solr 云)是Solr提供的分布式搜索方案&#xff0c;当你需要大规模&#xff0c;容错&#xff0c;分布式索引和检索能力时使用 SolrCloud。 当一个系统的索引数据量少的时候是不需要使用SolrCloud的&#xff0c;当索引量很大&#xff0c;搜索请求并发很高&a…

SolrCloud Collection 创建

环境版本: CDH 5.12.0; Solr 4.10.3 CDH搭建SolrCloud集群十分方便,添加服务->solr->选择主机->next即可 在SolrCloud中,跨多个节点的索引分割称为集合(collection),见下图: [root@DXHY-YFEB-01 solr]# pwd /var/lib/solr [root@DXHY-YFEB-01 solr]# mv Invoi…

solrcloud集群搭建

什么是SolrCloud 什么是SolrCloud SolrCloud(solr 云)是Solr提供的分布式搜索方案&#xff0c;当你需要大规模&#xff0c;容错&#xff0c;分布式索引和检索能力时使用 SolrCloud。当一个系统的索引数据量少的时候是不需要使用SolrCloud的&#xff0c;当索引量很大&#xff0c…

Apache SolrCloud介绍及安装

SolrCloud介绍 在我们应用还很渺小的时候&#xff0c;一台Solr服务器能完全胜任这份工作&#xff0c;随着我们应用慢慢长大&#xff0c;访问也越来越多&#xff0c;一台Solr服务器的弊病也逐渐显现如查询变慢了&#xff0c;机器宕机就无法继续提供服务&#xff0c;于是乎我们引…

solr集群(solrcloud)部署搭建

简介 SolrCloud 旨在提供一个高度可用、容错的环境&#xff0c;用于跨多个服务器分发索引内容和查询请求。它是基于 Solr 和Zookeeper的分布式搜索方案&#xff0c;它的主要思想是使用 Zookeeper作为集群的配置信息中心。它是灵活的分布式搜索和索引&#xff0c;无需主节点来分…