sudo dpkg -i /tmp/appstream_0.9.4-1ubuntu1_amd64.deb /tmp/libappstream3_0.9.4-1ubuntu1_amd64.deb
如何解决apt-get中Unmet dependencies. Try 'apt --fix-broken install' with no packages (or specify的问题_疏狂的博客-CSDN博客_unmet dependencies. try 'apt --fix-broken install'
.archive ... Manage SQL archives: ".archive --help" for details .auth ON|OFF Show authorizer callbacks .backup ?DB? FILE Backup DB (default "main") to FILE .bail on|off Stop after hitting an error. Default OFF .binary on|off Turn binary output on or off. Default OFF .cd DIRECTORY Change the working directory to DIRECTORY .changes on|off Show number of rows changed by SQL .check GLOB Fail if output since .testcase does not match .clone NEWDB Clone data into NEWDB from the existing database .databases List names and files of attached databases .dbinfo ?DB? Show status information about the database .dump ?TABLE? ... Dump the database in an SQL text format If TABLE specified, only dump tables matching LIKE pattern TABLE. .echo on|off Turn command echo on or off .eqp on|off|full Enable or disable automatic EXPLAIN QUERY PLAN .excel Display the output of next command in a spreadsheet .exit Exit this program .expert EXPERIMENTAL. Suggest indexes for specified queries .fullschema ?--indent? Show schema and the content of sqlite_stat tables .headers on|off Turn display of headers on or off .help Show this message .import FILE TABLE Import data from FILE into TABLE .imposter INDEX TABLE Create imposter table TABLE on index INDEX .indexes ?TABLE? Show names of all indexes If TABLE specified, only show indexes for tables matching LIKE pattern TABLE. .limit ?LIMIT? ?VAL? Display or change the value of an SQLITE_LIMIT .lint OPTIONS Report potential schema issues. Options: fkey-indexes Find missing foreign key indexes .load FILE ?ENTRY? Load an extension library .log FILE|off Turn logging on or off. FILE can be stderr/stdout .mode MODE ?TABLE? Set output mode where MODE is one of: ascii Columns/rows delimited by 0x1F and 0x1E csv Comma-separated values column Left-aligned columns. (See .width) html HTML
code insert SQL insert statements for TABLE line One value per line list Values delimited by "|" quote Escape answers as for SQL tabs Tab-separated values tcl TCL list elements .nullvalue STRING Use STRING in place of NULL values .once (-e|-x|FILE) Output for the next SQL command only to FILE or invoke system text editor (-e) or spreadsheet (-x) on the output. .open ?OPTIONS? ?FILE? Close existing database and reopen FILE The --new option starts with an empty file .output ?FILE? Send output to FILE or stdout .print STRING... Print literal STRING .prompt MAIN CONTINUE Replace the standard prompts .quit Exit this program .read FILENAME Execute SQL in FILENAME .restore ?DB? FILE Restore content of DB (default "main") from FILE .save FILE Write in-memory database into FILE .scanstats on|off Turn sqlite3_stmt_scanstatus() metrics on or off .schema ?PATTERN? Show the CREATE statements matching PATTERN Add --indent for pretty-printing .selftest ?--init? Run tests defined in the SELFTEST table .separator COL ?ROW? Change the column separator and optionally the row separator for both the output mode and .import .session CMD ... Create or control sessions .sha3sum ?OPTIONS...? Compute a SHA3 hash of database content .shell CMD ARGS... Run CMD ARGS... in a system shell .show Show the current values for various settings .stats ?on|off? Show stats or turn stats on or off .system CMD ARGS... Run CMD ARGS... in a system shell .tables ?TABLE? List names of tables If TABLE specified, only list tables matching LIKE pattern TABLE. .testcase NAME Begin redirecting output to 'testcase-out.txt' .timeout MS Try opening locked tables for MS milliseconds .timer on|off Turn SQL timer on or off .trace FILE|off Output each SQL statement as it is run .vfsinfo ?AUX? Information about the top-level VFS .vfslist List all available VFSes .vfsname ?AUX? Print the name of the VFS stack .width NUM1 NUM2 ... Set column widths for "column" mode Negative values right-justify
2)sql语句, 都以‘;’结尾
1-- 创建一张表 create table stuinfo(id integer, name text, age integer, score float); 2-- 插入一条记录 insert into stuinfo values(1001, 'zhangsan', 18, 80); insert into stuinfo (id, name, score) values(1002, 'lisi', 90);
3-- 查看数据库记录 select * from stuinfo; select * from stuinfo where score = 80; select * from stuinfo where score = 80 and name= 'zhangsan'; select * from stuinfo where score = 80 or name='wangwu'; select name,score from stuinfo; 查询指定的字段 select * from stuinfo where score >= 85 and score < 90;
4-- 删除一条记录 delete from stuinfo where id=1003 and name='zhangsan';
插入的时候把wangyu插到得分里了,不对怎么删王五了重来
SQLite不会检查数据类型
5-- 更新一条记录 update stuinfo set age=20 where id=1003; update stuinfo set age=30, score = 82 where id=1003;
6-- 删除一张表 drop table stuinfo;
7-- 增加一列 alter table stuinfo add column sex char;
8-- 删除一列(不支持直接删除,创建新表删除旧表将新表名改成旧表) create table stu as select id, name, score from stuinfo; drop table stuinfo; alter table stu rename to stuinfo;
9、数据库设置主键和自增: create table info(id integer primary key autoincrement, name vchar);
三、sqlite3 数据库 C语言 API
int sqlite3_open( const char *filename, /* Database filename (UTF-8) */ sqlite3 **ppDb /* OUT: SQLite db handle */ ); 功能 :打开数据库 参数 :filename 数据库名称 ppdb 数据库句柄 返回值 :成功为0 SQLITE_OK ,出错 错误码
int sqlite3_close(sqlite3* db); 功能 :关闭数据库 参数 : 返回值 :成功为0 SQLITE_OK ,出错 错误码
const char *sqlite3_errmsg(sqlite3*db); 功能 :得到错误信息的描述 int sqlite3_exec( sqlite3* db, /* An open database */ const char *sql, /* SQL to be evaluated */ int (*callback)(void* arg,int,char**,char**), /* Callback function */ void * arg, /* 1st argument to callback */ char **errmsg /* Error msg written here */ ); 功能 :执行一条sql语句 参数 :
db 数据库句柄 sql sql语句 callback 回调函数,只有在查询时,才传参 arg 为回调函数传递参数 errmsg 错误消息 返回值 :成功 SQLITE_OK
查询回调函数: int (*callback)(void* arg,int ncolumns ,char** f_value,char** f_name), /* Callback function */功能 :查询语句执行之后,会回调此函数参数 :arg 接收sqlite3_exec 传递来的参数 ncolumns 列数 f_value 列的值得地址 f_name 列的名称返回值 :0, int sqlite3_get_table( sqlite3 *db, /* An open database */ const char *zSql, /* SQL to be evaluated */ char ***pazResult, /* Results of the query */ int *pnRow, /* Number of result rows written here */ int *pnColumn, /* Number of result columns written here */ char **pzErrmsg /* Error msg written here */ ); void sqlite3_free_table(char **result);
查询
四、基于数据库的学生管理系统
编译一下结果不认识sqlite3库
GCC编译错误:/ usr / bin / ld:找不到-lsqlite3.lib(GCC Compile Error: /usr/bin/ld: cannot find -lsqlite3.lib)_电脑培训
看了一下外国友人的解释我应该安一个这个
sudo apt-get install libsqlite3-dev
又出问题了主机和虚拟机间复制黏贴失效了
ubantu 与 主机 之间无法复制粘贴_51CTO博客_ubuntu与windows之间不能复制粘贴
sudo apt-get install open-vm-tools-desktop
好了,把代码粘过来
#include
#include
#include
#include
#define DATABASE "student.db"
#define N 128
int do_insert(sqlite3 *db)
{
int id;
char name[32] = {};
char sex;
int score;
char sql[N] = {};
char *errmsg;
printf("Input id:");
scanf("%d", &id);
printf("Input name:");
scanf("%s", name);
getchar();
printf("Input sex:");
scanf("%c", &sex);
printf("Input score:");
scanf("%d", &score);
sprintf(sql, "insert into stu values(%d, '%s', '%c', %d)", id, name, sex, score);
if(sqlite3_exec(db, sql, NULL, NULL, &errmsg) != SQLITE_OK)
{
printf("%s\n", errmsg);
}
else
{
printf("Insert done.\n");
}
return 0;
}
int do_delete(sqlite3 *db)
{
int id;
char sql[N] = {};
char *errmsg;
printf("Input id:");
scanf("%d", &id);
sprintf(sql, "delete from stu where id = %d", id);
if(sqlite3_exec(db, sql, NULL, NULL, &errmsg) != SQLITE_OK)
{
printf("%s\n", errmsg);
}
else
{
printf("Delete done.\n");
}
return 0;
}
int do_update(sqlite3 *db)
{
int id;
char sql[N] = {};
char name[32] = "zhangsan";
char *errmsg;
printf("Input id:");
scanf("%d", &id);
sprintf(sql, "update stu set name='%s' where id=%d", name,id);
if(sqlite3_exec(db, sql, NULL, NULL, &errmsg) != SQLITE_OK)
{
printf("%s\n", errmsg);
}
else
{
printf("update done.\n");
}
return 0;
}
int callback(void *arg, int f_num, char ** f_value, char ** f_name)
{
int i = 0;
for(i = 0; i < f_num; i++)
{
// printf("%-8s %s", f_value[i], f_name[i]);
printf("%-8s", f_value[i]);
}
printf("++++++++++++++++++++++");
putchar(10);
return 0;
}
int do_query(sqlite3 *db)
{
char *errmsg;
char sql[N] = "select count(*) from stu where name='zhangsan';";
if(sqlite3_exec(db, sql, callback,NULL , &errmsg) != SQLITE_OK)
{
printf("%s", errmsg);
}
else
{
printf("select done.\n");
}
}
int do_query1(sqlite3 *db)
{
char *errmsg;
char ** resultp;
int nrow;
int ncolumn;
if(sqlite3_get_table(db, "select * from stu", &resultp, &nrow, &ncolumn, &errmsg) != SQLITE_OK)
{
printf("%s\n", errmsg);
return -1;
}
else
{
printf("query done.\n");
}
int i = 0;
int j = 0;
int index = ncolumn;
for(j = 0; j < ncolumn; j++)
{
printf("%-10s ", resultp[j]);
}
putchar(10);
for(i = 0; i < nrow; i++)
{
for(j = 0; j < ncolumn; j++)
{
printf("%-10s ", resultp[index++]);
}
putchar(10);
}
return 0;
}
int main(int argc, const char *argv[])
{
sqlite3 *db;
char *errmsg;//errmsg是一个二级指针,定义一个一级指针取地址。
int n;
if(sqlite3_open(DATABASE, &db) != SQLITE_OK)
{
printf("%s\n", sqlite3_errmsg(db));
return -1;
}
else
{
printf("open DATABASE success.\n");
}
if(sqlite3_exec(db, "create table if not exists stu(id int, name char , sex char , score int);",NULL, NULL, &errmsg) != SQLITE_OK)//分号可加可不加
{
printf("%s\n", errmsg);
}
else
{
printf("Create or open table success.\n");
}
while(1)
{
printf("********************************************\n");
printf("1: insert 2:query 3:delete 4:update 5:quit\n");
printf("********************************************\n");
printf("Please select:");
scanf("%d", &n);
switch(n)
{
case 1:
do_insert(db);
break;
case 2:
do_query(db);
// do_query1(db);
break;
case 3:
do_delete(db);
break;
case 4:
do_update(db);
break;
case 5:
printf("main exit.\n");
sqlite3_close(db);
exit(0);
break;
default :
printf("Invalid data n.\n");
}
}
return 0;
}
五、一个小作业
写了好久,代码不是很完善但是基本功能都实现了,并预留了接口等什么时候不忙了进行二次开发。
#include
#include
#include
#include
#include
#define DATABASE "fruit.db"
#define N 128
int do_insert(sqlite3 *db)
{
int id;
char name[32] = {};
float price;
int number;
char sql[N] = {};
char *errmsg;
printf("Input id:");
scanf("%d", &id);
puts("");
printf("Input name:");
scanf("%s", name);
getchar();
puts("");
printf("Input price:");
scanf("%f", &price);
puts("");
printf("Input number:");
scanf("%d", &number);
puts("");
sprintf(sql, "insert into fruit values(%d, '%s', %f, %d)", id, name, price, number);
if(sqlite3_exec(db, sql, NULL, NULL, &errmsg) != SQLITE_OK)
{
printf("%s\n", errmsg);
}
else
{
printf("stock done.\n");
}
return 0;
}
int do_delete(sqlite3 *db)
{
int id;
char sql[N] = {};
char *errmsg;
char a;
char name[32] = {};
printf("Are you sure you don`t want this fruit!(Y/N)\n");
scanf("%c",&a);
if (a == 'Y' || a == 'y'){
printf("Input fruit:");
scanf("%s", name);
getchar();
puts("");
sprintf(sql, "delete from fruit where name = '%s'", name);
if(sqlite3_exec(db, sql, NULL, NULL, &errmsg) != SQLITE_OK)
{
printf("%s\n", errmsg);
}
else
{
printf("Delete done.\n");
}
}
return 0;
}
int do_update(sqlite3 *db)
{
int id;
char sql[N] = {};
char name[32] = {};
char *errmsg;
float price;
printf("Input fruit:");
scanf("%s", name);
getchar();
puts("");
printf("Input price");
scanf("%f", &price);
puts("");
sprintf(sql, "update fruit set price=%f where name = '%s'", price,name);
if(sqlite3_exec(db, sql, NULL, NULL, &errmsg) != SQLITE_OK)
{
printf("%s\n", errmsg);
}
else
{
printf("update done.\n");
}
return 0;
}
int callback(void *arg, int f_num, char ** f_value, char ** f_name)
{
int i = 0;
for(i = 0; i < f_num; i++)
{
// printf("%-8s %s", f_value[i], f_name[i]);
printf("%-8s", f_value[i]);
}
printf("\n++++++++++++++++++++++++++++++++");
putchar(10);
return 0;
}
int do_query(sqlite3 *db)
{
printf("++++++++++++++++++++++++++++++++\n");
char *errmsg;
//char sql[N] = "select count(*) from fruit where name='zhangsan';";
char sql[N] = "select * from fruit;";
if(sqlite3_exec(db, sql, callback,NULL , &errmsg) != SQLITE_OK)
{
printf("%s", errmsg);
}
else
{
printf("select done.\n");
}
}
int do_query1(sqlite3 *db)
{
char *errmsg;
char ** resultp;
int nrow;
int ncolumn;
if(sqlite3_get_table(db, "select * from fruit", &resultp, &nrow, &ncolumn, &errmsg) != SQLITE_OK)
{
printf("%s\n", errmsg);
return -1;
}
else
{
printf("query done.\n");
}
int i = 0;
int j = 0;
int index = ncolumn;
for(j = 0; j < ncolumn; j++)
{
printf("%-10s ", resultp[j]);
}
putchar(10);
for(i = 0; i < nrow; i++)
{
for(j = 0; j < ncolumn; j++)
{
printf("%-10s ", resultp[index++]);
}
putchar(10);
}
return 0;
}
#if 0 //FIXME//cuowu
static int callback1(void *data,int argc,char **argv,char **azColName)
{
int i;
fprintf(stderr,"%s:",(const char *)data);
for(i=0;itm_year+1900,ge->tm_mon+1,ge->tm_mday,ge->tm_hour,ge->tm_min,ge->tm_sec);
printf("Input fruit:");
scanf("%s", name);
getchar();
puts("");
printf("Input number");
scanf("%d", &number);
puts("");
sprintf(sql2, "insert into sell values(%d, '%s', %f, %d, '%s')", id, name, price, number, buf);
if(sqlite3_exec(db, sql2, NULL, NULL, &errmsg) != SQLITE_OK)
{
printf("%s\n", errmsg);
}
else
{
printf("stock done.\n");
}
#if 1
char *errmsg1;
char ** resultp;
int nrow;
int ncolumn;
char sql1[N] = {};
sprintf(sql,"select number from fruit where name = '%s';",name);
if(sqlite3_get_table(db, sql1, &resultp, &nrow, &ncolumn, &errmsg1) != SQLITE_OK)
{
printf("%s\n", errmsg1);
return -1;
}
else
{
number = (int)resultp - number;
printf("query done.\n");
}
#endif
sprintf(sql, "update fruit set number='%d' where name='%s'", number, name);
if(sqlite3_exec(db, sql, NULL, NULL, &errmsg) != SQLITE_OK)
{
printf("%s\n", errmsg);
}
else
{
printf("sell done.\n");
}
return 0;
}
void help()
{
printf("1:stock,Input id,name,price,number\n");
printf("2:Inquire the price and allowance of all fruits\n");
printf("3:Delete fruit that is sold out and never comes in again\n");
//XXX
}
int do_stock_list(db)
{
//TODO
return 0;
}
int do_sell_list(db)
{
//TODO
return 0;
}
int main(int argc, const char *argv[])
{
sqlite3 *db;
char *errmsg;//errmsg是一个二级指针,定义一个一级指针取地址。
int n;
if(sqlite3_open(DATABASE, &db) != SQLITE_OK)//打开数据库
{
printf("%s\n", sqlite3_errmsg(db));
return -1;
}
else
{
printf("open DATABASE success.\n");
}
if(sqlite3_exec(db, "create table if not exists fruit(id int, name char , price float , number int);",NULL, NULL, &errmsg) != SQLITE_OK)//分号可加可不加 商品价格数量表
{
printf("%s\n", errmsg);
}
else
{
printf("Create or open table success.\n");
}
if(sqlite3_exec(db, "create table if not exists sell(id int, name char , price float ,number int, time char);",NULL, NULL, &errmsg) != SQLITE_OK)
{
printf("%s\n", errmsg);
}
else
{
printf("Create or open table success.\n");
}
while(1)
{
printf("*******************************************************************************\n");
printf("1:stock 2:price 3:delete 4:update 5:quit 6:sell 7:stock_list 8:sell_list 9:help\n");
printf("*******************************************************************************\n");
printf("Please select:");
scanf("%d", &n);
switch(n)
{
case 1:
do_insert(db);
break;
case 2:
do_query(db);
// do_query1(db);
break;
case 3:
do_delete(db);
break;
case 4:
do_update(db);
break;
case 5:
printf("main exit.\n");
sqlite3_close(db);
exit(0);
break;
case 6:
do_sell(db);
break;
//XXX//mianqiangnenggongzuo
case 7:
do_stock_list(db);
break;
case 8:
do_sell_list(db);
break;
case 9:
help();
break;
default :
printf("Input error\n");
}
}
return 0;
}
你可能感兴趣的:(Linux,数据库,linux,嵌入式,c语言,数据库)
音频 Alsa、Framework及Android
‘禹’你一起
后端
目录1Alsa、Framework及Android1.1ALSA架构简介图11.2ALSA架构简介图21.3ALSA架构简介图31.4ALSA架构简介图41.5ALSA架构简介图51.6ALSA架构简介图61.8音频代码1Alsa、Framework及Android目前,linux系统常用的音频驱动有两种形式:alsa和oss。Alsa:现在是linux下音频驱动的主要形式,与简单的oss兼容。o
嵌入式开发之STM32学习笔记day06
小程同学>o<
嵌入式学习之STM32 stm32 学习 笔记
基于STM32F103C8T6的开发实践——从入门到精通011.引言STM32系列微控制器是STMicroelectronics推出的一款高性能、低功耗的32位微控制器,广泛应用于嵌入式系统中。STM32F103C8T6是其中非常受欢迎的一款,凭借其强大的性能、丰富的外设接口和低廉的价格,成为了开发者的首选之一。本文将通过实例,详细介绍如何基于STM32F103C8T6进行开发,并带领读者完成从简
linux系统命令——权限
why—空空
linux 服务器 运维
一、有哪些权限读(r)——对应数字4写(w)——对应数字2执行(x)——对应数字1二、权限及数字的对应4对应r--2对应-w-1对应--x5对应r-x6对应rw-7对应rwx三、文件的基本属性如图:①中如果是"一"表示文件类型为文件;如果是"d"表示文件类型是文件夹;如果是"l"表示文件类型为链接②表示文件属主(即谁创建的文件)的权限③中表示文件属主所属组(即文件属主所在的组)中的用户的权限④表示
Linux如何查询文件及文件夹大小
大数据侠客
操作系统相关 linux
查看当前目录下各文件、文件夹的大小,这个比较实用du-h-max-depth=1*查询当前目录总大小du-sh3.最大文件夹倒叙和正序du-s*|sort-rn从小到大按字节排序du-sh*sort-n从小到大按字节和M排序4.最大文件夹倒排前10和后10du-sh*|sort-rn|head前面10个du-sh*|sort-rn|tail后面10个
linux sed命令
weifexie
Linux linux 运维 服务器 sed awk
linuxsed命令作为三剑客的一员,也是到了不得不写写总结的时候了,按惯例,先给出出处,首当齐冲wikihttps://zh.wikipedia.org/wiki/Sedsed(意为流编辑器,源自英语“streameditor”的缩写)是一个使用简单紧凑的编程语言来解析和转换文本Unix实用程序。sed是最早支持正则表达式的工具之一,至今仍然用于文本处理,特别是用于替换命令。用于纯文本字符串操作
大模型RAG实战|混合检索:BM25检索+向量检索的LlamaIndex实现
AIGC大模型 吱屋猪
django python 后端 AI-native 人工智能 llama 百度
ThinkRAG大模型RAG实战系列文章,带你深入探索使用LlamaIndex框架,构建本地大模型知识库问答系统。本系列涵盖知识库管理、检索优化、模型本地部署等主题,通过代码与实例,讲解如何打造生产级系统,实现本地知识库的快速检索与智能问答。本文我将介绍一种效果更好的混合检索方法,在实际问答场景中,优于向量数据库自带的混合检索功能。1什么是混合检索目前,大模型RAG系统中普遍采用混合检索来提升检索
【versal】【petalinux】添加LED驱动
qq2108462953
petalinux linux 运维 服务器
versal添加LED驱动`提示:本文使用外部kernel与uboot`一、LED1.1LED功能1.2LED节点1.3LED操作命令1.3.1点LED1.3.2关闭LED二、LED驱动2.1驱动文件2.2设备树兼容属性三、LED设备树配置3.1设备树配置信息3.2设备树配置信息讲解四、提示4.1正确4.2错误4.3提示:本文使用外部kernel与uboot一、LED1.1LED功能向节点中bri
深入解析音频编解码器(Audio CODEC):硬件、接口与驱动开发
嵌入式Jerry
内核 音视频 驱动开发 linux 嵌入式硬件
音频编解码器(AudioCODEC)是音频处理系统中的核心组件,负责模拟信号与数字信号的相互转换,广泛应用于智能音箱、嵌入式系统、消费电子产品等设备。本篇文章将从硬件结构、接口解析、驱动开发和软件配置等方面,深入讲解如何正确理解和使用音频编解码器。1.音频编解码器的基本概念CODEC(Coder-Decoder),即编解码器,是一种模数转换(ADC)和数模转换(DAC)的组合设备,用于处理音频信号
如何在Linux中切换用户?
对许
Linux linux 服务器
Linux切换用户在Linux系统中,切换用户可以通过使用su命令和sudo命令实现1、su命令su是switchuser的缩写,用于切换到另一个用户。su命令的语法如下:su[选项][用户名]以下是一些示例:#切换到root用户su-#切换到指定普通用户suetl值得注意的是,默认情况下,切换到root用户需要输入root的密码;切换到其他普通用户时,需要输入该用户的密码2、sudo命令sudo
深入浅出分布式事务原理
梵高的猪v
分布式 事务
一、Seata四大事务模式详解模式实现机制事务一致性业务侵入性适用场景AT数据库本地事务+Undo日志+二阶段提交最终一致性无侵入电商、订单等高性能要求TCCTry-Confirm-Cancel强一致性强业务侵入金融支付、账户、转账等SAGA补偿事务(前进+回滚)最终一致性轻微侵入长事务,如营销活动XA标准XA协议强一致性无侵入银行、转账等二、逐个详细拆解每一种事务模式1.AT模式(Automat
在 CentOS 7 上安装 PHP 7.3
wjf63000
centos php linux
在CentOS7上安装PHP7.3可以按照以下步骤进行操作:1.安装必要的依赖和EPEL仓库EPEL(ExtraPackagesforEnterpriseLinux)是为企业级Linux提供额外软件包的仓库,yum-utils用于管理yum仓库。sudoyuminstall-yepel-releaseyum-utils2.添加Remi仓库Remi仓库包含了丰富的PHP版本,你可以从中选择PHP7.
linux启动db2的命令窗口_linux下如何启动db2数据库命令窗口
少学汉
linux启动db2的命令窗口
在Linuxx86上安装Oracle数据库10g(来自ORACLE网)原文出处:http://www.oracle.com/technology/global/cn/pub/articles/smiley_10gdb_install.htmlDBA:Linux在Linuxx86上安装Oracle数据库10g作者:JohnSmiley学习...文章wangccsy2006-01-16562浏览量带你
YashanDB用户表空间管理
数据库
关于表空间管理的详细语法描述请参考开发手册CREATETABLESPACE、ALTERTABLESPACE、DROPTABLESPACE。创建表空间数据库管理员在接收到一个创建表空间的申请时,需要从以下方面进行考量:表空间所服务的业务属性:HEAP表和TAC表采取段页式结构,挂载普通数据文件--不指定DATAFILE将默认创建一个数据文件CREATETABLESPACEtablespace_nam
如何进行OceanBase 运维工具的部署和表性能优化!
oceanbase
随着OceanBase数据库应用的日益深入,数据量不断攀升,单个表中存储数百万乃至数千万条数据的情况变得愈发普遍。因此,部署专门的运维工具、实施针对性的表性能优化策略,以及加强指标监测工作,都变得更为重要。以下为基于我们的使用场景,所采取的一些部署和优化措施分享。一、OCP部署升级1.OCP升级(1)4.2.1BP1升级到4.2.2,本来以为毫无波澜但是下载完毕一键包并完成前期准备工作启动后发现无
PostgreSQL 用户及授权管理 04:授予及回收权限
LavenLiu
postgresql
PostgreSQL是一个坚如磐石的数据库,它非常注重安全性,提供了非常丰富的基础设施来处理权限、特权和安全策略。在前面的章节中以我们介绍的基本概念为基础,重新审视角色概念,特别关注授予角色的安全性和权限(角色可以是用户,也可以是用户组)。我们将学习如何配置角色的各个方面以细致管理安全性,从连接到访问数据库中的数据。文章目录授予及回收权限表相关的权限基于列的权限序列相关的权限schema相关的权限
数据归档 - 冷热数据处理大师
趣链科技
区块链技术 算法 数据处理 区块链
——Part1现状——区块链可以视作一个在分布式环境下众多可信节点共同维护的且不可篡改的账本。在区块链系统中,数据以区块作为基本单位,区块链系统利用levelDB基于Key-Value结构的数据库存取数据,通过多节点冗余存储实现账本可信,然而随着区块链运行时间的增长,区块链的存储容量将呈线性增长,且这种数据的增长速度甚至会超过存储介质容量增长的速度,因此,区块链数据存储将成为限制区块链技术发展的重
(C语言)编写一个函数实现n的k次方,使用递归实现(递归)
双叶836
C语言递归 c语言 算法 开发语言 c++ 数据结构
#includeintfun(intx,inty){if(y==1){returnx;}returnfun(x,y-1)*x;}intmain(){printf("请输入该数:\n");inta=0;if(scanf("%d",&a)!=1){printf("输入不合法\n");return1;}printf("请输入倍数:\n");intb=0;if(scanf("%d",&b)!=1){pri
从FFmpeg命令行到Rust:多场景实战指南
FFmpeg作为功能强大的多媒体处理工具,被广泛应用于视频编辑、格式转换等领域。然而,直接使用FFmpeg的命令行界面(CLI)可能会遇到以下挑战:命令复杂度高:FFmpeg的命令行参数众多且复杂,初学者可能难以掌握,配置错误时调试困难。集成困难:在Rust等现代编程语言中,直接调用FFmpeg的C语言API需要处理复杂的内存管理和安全性问题,可能引发内存泄漏、非法访问等问题。为了解决这些问题,R
YashanDB用户表空间管理
数据库
关于表空间管理的详细语法描述请参考开发手册CREATETABLESPACE、ALTERTABLESPACE、DROPTABLESPACE。创建表空间数据库管理员在接收到一个创建表空间的申请时,需要从以下方面进行考量:表空间所服务的业务属性:HEAP表和TAC表采取段页式结构,挂载普通数据文件--不指定DATAFILE将默认创建一个数据文件CREATETABLESPACEtablespace_nam
美团Leaf分布式ID生成器:使用详解与核心原理解析
Cloud_.
分布式
引言在分布式系统中,全局唯一ID是贯穿整个业务链路的关键标识,无论是订单号、用户ID、支付流水号,还是日志追踪,都需要唯一且有序的ID来保证数据的一致性。然而,传统的自增ID方案(如数据库自增主键)在分布式场景下面临单点故障、性能瓶颈、分库分表冲突等问题。美团开源的Leaf分布式ID生成器通过创新的设计解决了这些难题,成为业界广泛使用的解决方案之一。本文将深入解析Leaf的两种核心模式(号段模式与
「C语言指针函数与函数指针:从内存管理到灵活调用的实战指南」
℡残城碎梦
c语言 指针函数 函数指针 函数指针数组
1.指针函数:外卖柜的「生存法则」核心痛点:返回局部变量地址导致崩溃?堆区与栈区傻傻分不清?生活类比:栈区≈临时摊位(函数结束即销毁)堆区≈智能外卖柜(手动申请释放,长期有效)代码对比://错误!返回栈区地址(临时摊位被拆)char*bug_demo(){charbuf[32]="hello";returnbuf;//危险操作!}//正确!返回堆区地址(外卖柜长期存餐)char*correct_d
Linux----网络tcp编程
weixin_51790712
linux 网络 tcp/ip
网络编程编程linux操作系统[用户空间]应用层//程序员实现------------------------------------------------------[内核空间]传输层[网络协议栈]//内核已经实现好的属于网络功能网络层数据链路层物理层程序发送数据系统调用---通过系统调用来使用操作系统提供的网络功能函数接口---socketsocket:1.操作系统提供的函数接口//通过这个
spring-data-jpa 动态条件 分页查询
小小小小小小小小小小码农
springboot
pom.xml配置org.springframework.bootspring-boot-starter-data-jpa数据库连接配置##############################################################数据源配置#############################################################spri
C语言基础知识05---必背+函数
努力做小白
C语言学习 算法 数据结构 c语言
目录必备知识点1、C语言5大分区1.1局部变量1.2全局变量1.3静态局部变量1.4外部声明变量2、关键字2.1static2.2extern3、局部变量和全局变量能不能同名?4、实参&&形参函数1、函数的作用2、函数的分类2.1主函数2.2子函数3、函数命名4、函数定义格式5、函数传参5.1值传参5.2地址传参6、函数类型6.1函数的声明6.2函数调用6.3递归函数7、指针函数&&函数指针7.1
封神台SQL注入-基础靶场1-布尔盲注
原味瓜子、
SQL注入 布尔盲注 封神台 SQL注入
文章目录布尔盲注(一)布尔盲注(二)布尔盲注(三)布尔盲注(一)1、判断注入类型id=1and1=1//有数据id=1and1=2//noresultsfound判断为数字型布尔盲注2、判断数据库长度,获取数据库名andlength(database())=1数据库名长12抓包,爆破,获取andascii(substr(database(),1
Python软件和搭建运行环境
办公小百知
软件技术 python 开发语言
目录一、Python安装全流程(Windows/Mac/Linux)1.下载官方安装包2.详细安装步骤(以Windows为例)3.环境变量配置(Mac/Linux)二、虚拟环境管理(关键!)为什么需要虚拟环境?1.使用venv(Python内置)2.使用conda(推荐数据科学方向)三、开发工具推荐与配置1.IDE选择2.VSCode配置指南四、常见问题解决方案1.python命令无效?2.pip
嵌入式C语言进阶(汇总)系统化详解
niuTaylor
c语言 开发语言
以下是嵌入式C语言进阶知识的系统化详解,结合嵌入式开发的实际需求和典型场景:一、硬件级编程技巧1.位操作与寄存器控制//位掩码操作(STM32GPIO控制示例)#defineGPIO_PIN5(1USR&=~TIM_SR_UIF;//2.最小化处理逻辑staticuint32_tcounter=0;counter++;//3.避免调用不可重入函数//4.禁止使用浮点运算(除非启用FPU上下文保存)
嵌入式c语言进阶(三)状态机State Machine
niuTaylor
c语言 开发语言
状态机(StateMachine)是一种描述系统在不同状态之间转换行为的数学模型或设计模式,广泛应用于嵌入式系统、业务流程、游戏开发等领域。以下从核心概念、实现方式、应用实战三方面进行详细解析:一、状态机核心概念四大要素现态(CurrentState):系统当前所处的状态。事件(Event):触发状态转移的条件,如用户操作、时间到期等。动作(Action):状态转移时执行的操作,例如发送通知、更新
嵌入式开发中的Doxygen注释规范实践
剁椒鱼头炖香菇
c语言 stm32 单片机
目录一、为什么需要规范的注释?二、Doxygen注释规范详解1.文件注释2.函数注释3.宏定义注释4.结构体注释三、注释规范最佳实践1.文件注释模板2.函数注释模板3.代码注释原则四、常见注释误区与解决方案误区1:过度注释误区2:过时注释误区3:模糊注释五、工具推荐六、项目实践案例七、总结一、为什么需要规范的注释?在嵌入式开发中,规范的代码注释如同精密仪器的说明书,具有以下重要作用:提高可读性:使
这里是 Grok 3 为我规划的大学物联网工程自学计划!
王倚山
物联网 学习 开发语言
我理解你可能希望我提供更详细的优化版本,包含更具体的技术细节、时间分配、资源推荐以及项目示例,以便让规划更具操作性。我将在保持原有结构的基础上,显著扩展每个阶段的内容,增加更多具体建议和实践指导,确保优化后的规划更加详尽、全面,同时仍然基于你的裸机开发经验进行调整。优化后的详细学习规划总体思路(扩展版)你的裸机开发经验(数据采集、控制、配网、上云、手机交互)表明你已经掌握了嵌入式开发的基础技能,如
redis学习笔记——不仅仅是存取数据
Everyday都不同
returnSource expire/del incr/lpush 数据库分区 redis
最近项目中用到比较多redis,感觉之前对它一直局限于get/set数据的层面。其实作为一个强大的NoSql数据库产品,如果好好利用它,会带来很多意想不到的效果。(因为我搞java,所以就从jedis的角度来补充一点东西吧。PS:不一定全,只是个人理解,不喜勿喷)
1、关于JedisPool.returnSource(Jedis jeids)
这个方法是从red
SQL性能优化-持续更新中。。。。。。
atongyeye
oracle sql
1 通过ROWID访问表--索引
你可以采用基于ROWID的访问方式情况,提高访问表的效率, , ROWID包含了表中记录的物理位置信息..ORACLE采用索引(INDEX)实现了数据和存放数据的物理位置(ROWID)之间的联系. 通常索引提供了快速访问ROWID的方法,因此那些基于索引列的查询就可以得到性能上的提高.
2 共享SQL语句--相同的sql放入缓存
3 选择最有效率的表
[JAVA语言]JAVA虚拟机对底层硬件的操控还不完善
comsci
JAVA虚拟机
如果我们用汇编语言编写一个直接读写CPU寄存器的代码段,然后利用这个代码段去控制被操作系统屏蔽的硬件资源,这对于JVM虚拟机显然是不合法的,对操作系统来讲,这样也是不合法的,但是如果是一个工程项目的确需要这样做,合同已经签了,我们又不能够这样做,怎么办呢? 那么一个精通汇编语言的那种X客,是否在这个时候就会发生某种至关重要的作用呢?
&n
lvs- real
男人50
LVS
#!/bin/bash
#
# Script to start LVS DR real server.
# description: LVS DR real server
#
#. /etc/rc.d/init.d/functions
VIP=10.10.6.252
host='/bin/hostname'
case "$1" in
sta
生成公钥和私钥
oloz
DSA 安全加密
package com.msserver.core.util;
import java.security.KeyPair;
import java.security.PrivateKey;
import java.security.PublicKey;
import java.security.SecureRandom;
public class SecurityUtil {
UIView 中加入的cocos2d,背景透明
374016526
cocos2d glClearColor
要点是首先pixelFormat:kEAGLColorFormatRGBA8,必须有alpha层才能透明。然后view设置为透明glView.opaque = NO;[director setOpenGLView:glView];[self.viewController.view setBackgroundColor:[UIColor clearColor]];[self.viewControll
mysql常用命令
香水浓
mysql
连接数据库
mysql -u troy -ptroy
备份表
mysqldump -u troy -ptroy mm_database mm_user_tbl > user.sql
恢复表(与恢复数据库命令相同)
mysql -u troy -ptroy mm_database < user.sql
备份数据库
mysqldump -u troy -ptroy
我的架构经验系列文章 - 后端架构 - 系统层面
agevs
JavaScript jquery css html5
系统层面:
高可用性
所谓高可用性也就是通过避免单独故障加上快速故障转移实现一旦某台物理服务器出现故障能实现故障快速恢复。一般来说,可以采用两种方式,如果可以做业务可以做负载均衡则通过负载均衡实现集群,然后针对每一台服务器进行监控,一旦发生故障则从集群中移除;如果业务只能有单点入口那么可以通过实现Standby机加上虚拟IP机制,实现Active机在出现故障之后虚拟IP转移到Standby的快速
利用ant进行远程tomcat部署
aijuans
tomcat
在javaEE项目中,需要将工程部署到远程服务器上,如果部署的频率比较高,手动部署的方式就比较麻烦,可以利用Ant工具实现快捷的部署。这篇博文详细介绍了ant配置的步骤(http://www.cnblogs.com/GloriousOnion/archive/2012/12/18/2822817.html),但是在tomcat7以上不适用,需要修改配置,具体如下:
1.配置tomcat的用户角色
获取复利总收入
baalwolf
获取
public static void main(String args[]){
int money=200;
int year=1;
double rate=0.1;
&
eclipse.ini解释
BigBird2012
eclipse
大多数java开发者使用的都是eclipse,今天感兴趣去eclipse官网搜了一下eclipse.ini的配置,供大家参考,我会把关键的部分给大家用中文解释一下。还是推荐有问题不会直接搜谷歌,看官方文档,这样我们会知道问题的真面目是什么,对问题也有一个全面清晰的认识。
Overview
1、Eclipse.ini的作用
Eclipse startup is controlled by th
AngularJS实现分页功能
bijian1013
JavaScript AngularJS 分页
对于大多数web应用来说显示项目列表是一种很常见的任务。通常情况下,我们的数据会比较多,无法很好地显示在单个页面中。在这种情况下,我们需要把数据以页的方式来展示,同时带有转到上一页和下一页的功能。既然在整个应用中这是一种很常见的需求,那么把这一功能抽象成一个通用的、可复用的分页(Paginator)服务是很有意义的。
&nbs
[Maven学习笔记三]Maven archetype
bit1129
ArcheType
archetype的英文意思是原型,Maven archetype表示创建Maven模块的模版,比如创建web项目,创建Spring项目等等.
mvn archetype提供了一种命令行交互式创建Maven项目或者模块的方式,
mvn archetype
1.在LearnMaven-ch03目录下,执行命令mvn archetype:gener
【Java命令三】jps
bit1129
Java命令
jps很简单,用于显示当前运行的Java进程,也可以连接到远程服务器去查看
[hadoop@hadoop bin]$ jps -help
usage: jps [-help]
jps [-q] [-mlvV] [<hostid>]
Definitions:
<hostid>: <hostname>[:
ZABBIX2.2 2.4 等各版本之间的兼容性
ronin47
zabbix更新很快,从2009年到现在已经更新多个版本,为了使用更多zabbix的新特性,随之而来的便是升级版本,zabbix版本兼容性是必须优先考虑的一点 客户端AGENT兼容
zabbix1.x到zabbix2.x的所有agent都兼容zabbix server2.4:如果你升级zabbix server,客户端是可以不做任何改变,除非你想使用agent的一些新特性。 Zabbix代理(p
unity 3d还是cocos2dx哪个适合游戏?
brotherlamp
unity自学 unity教程 unity视频 unity资料 unity
unity 3d还是cocos2dx哪个适合游戏?
问:unity 3d还是cocos2dx哪个适合游戏?
答:首先目前来看unity视频教程因为是3d引擎,目前对2d支持并不完善,unity 3d 目前做2d普遍两种思路,一种是正交相机,3d画面2d视角,另一种是通过一些插件,动态创建mesh来绘制图形单元目前用的较多的是2d toolkit,ex2d,smooth moves,sm2,
百度笔试题:一个已经排序好的很大的数组,现在给它划分成m段,每段长度不定,段长最长为k,然后段内打乱顺序,请设计一个算法对其进行重新排序
bylijinnan
java 算法 面试 百度 招聘
import java.util.Arrays;
/**
* 最早是在陈利人老师的微博看到这道题:
* #面试题#An array with n elements which is K most sorted,就是每个element的初始位置和它最终的排序后的位置的距离不超过常数K
* 设计一个排序算法。It should be faster than O(n*lgn)。
获取checkbox复选框的值
chiangfai
checkbox
<title>CheckBox</title>
<script type = "text/javascript">
doGetVal: function doGetVal()
{
//var fruitName = document.getElementById("apple").value;//根据
MySQLdb用户指南
chenchao051
mysqldb
原网页被墙,放这里备用。 MySQLdb User's Guide
Contents
Introduction
Installation
_mysql
MySQL C API translation
MySQL C API function mapping
Some _mysql examples
MySQLdb
HIVE 窗口及分析函数
daizj
hive 窗口函数 分析函数
窗口函数应用场景:
(1)用于分区排序
(2)动态Group By
(3)Top N
(4)累计计算
(5)层次查询
一、分析函数
用于等级、百分点、n分片等。
函数 说明
RANK() &nbs
PHP ZipArchive 实现压缩解压Zip文件
dcj3sjt126com
PHP zip
PHP ZipArchive 是PHP自带的扩展类,可以轻松实现ZIP文件的压缩和解压,使用前首先要确保PHP ZIP 扩展已经开启,具体开启方法就不说了,不同的平台开启PHP扩增的方法网上都有,如有疑问欢迎交流。这里整理一下常用的示例供参考。
一、解压缩zip文件 01 02 03 04 05 06 07 08 09 10 11
精彩英语贺词
dcj3sjt126com
英语
I'm always here
我会一直在这里支持你
&nb
基于Java注解的Spring的IoC功能
e200702084
java spring bean IOC Office
java模拟post请求
geeksun
java
一般API接收客户端(比如网页、APP或其他应用服务)的请求,但在测试时需要模拟来自外界的请求,经探索,使用HttpComponentshttpClient可模拟Post提交请求。 此处用HttpComponents的httpclient来完成使命。
import org.apache.http.HttpEntity ;
import org.apache.http.HttpRespon
Swift语法之 ---- ?和!区别
hongtoushizi
? swift !
转载自: http://blog.sina.com.cn/s/blog_71715bf80102ux3v.html
Swift语言使用var定义变量,但和别的语言不同,Swift里不会自动给变量赋初始值,也就是说变量不会有默认值,所以要求使用变量之前必须要对其初始化。如果在使用变量之前不进行初始化就会报错:
var stringValue : String
//
centos7安装jdk1.7
jisonami
jdk centos
安装JDK1.7
步骤1、解压tar包在当前目录
[root@localhost usr]#tar -xzvf jdk-7u75-linux-x64.tar.gz
步骤2:配置环境变量
在etc/profile文件下添加
export JAVA_HOME=/usr/java/jdk1.7.0_75
export CLASSPATH=/usr/java/jdk1.7.0_75/lib
数据源架构模式之数据映射器
home198979
PHP 架构 数据映射器 datamapper
前面分别介绍了数据源架构模式之表数据入口、数据源架构模式之行和数据入口数据源架构模式之活动记录,相较于这三种数据源架构模式,数据映射器显得更加“高大上”。
一、概念
数据映射器(Data Mapper):在保持对象和数据库(以及映射器本身)彼此独立的情况下,在二者之间移动数据的一个映射器层。概念永远都是抽象的,简单的说,数据映射器就是一个负责将数据映射到对象的类数据。
&nb
在Python中使用MYSQL
pda158
mysql python
缘由 近期在折腾一个小东西须要抓取网上的页面。然后进行解析。将结果放到
数据库中。 了解到
Python在这方面有优势,便选用之。 由于我有台
server上面安装有
mysql,自然使用之。在进行数据库的这个操作过程中遇到了不少问题,这里
记录一下,大家共勉。
python中mysql的调用
百度之后能够通过MySQLdb进行数据库操作。
单例模式
hxl1988_0311
java 单例 设计模式 单件
package com.sosop.designpattern.singleton;
/*
* 单件模式:保证一个类必须只有一个实例,并提供全局的访问点
*
* 所以单例模式必须有私有的构造器,没有私有构造器根本不用谈单件
*
* 必须考虑到并发情况下创建了多个实例对象
* */
/**
* 虽然有锁,但是只在第一次创建对象的时候加锁,并发时不会存在效率
27种迹象显示你应该辞掉程序员的工作
vipshichg
工作
1、你仍然在等待老板在2010年答应的要提拔你的暗示。 2、你的上级近10年没有开发过任何代码。 3、老板假装懂你说的这些技术,但实际上他完全不知道你在说什么。 4、你干完的项目6个月后才部署到现场服务器上。 5、时不时的,老板在检查你刚刚完成的工作时,要求按新想法重新开发。 6、而最终这个软件只有12个用户。 7、时间全浪费在办公室政治中,而不是用在开发好的软件上。 8、部署前5分钟才开始测试。