文章目录
SQLite数据库
数据库基本概念
常用的数据库
基于嵌入式的数据库
SQLite 基础
sqlite3数据库的安装
创建数据库
数据库常用命令介绍
系统命令,都以' . '开头
显示所有命令
退出sqlite3
显示当前打开的数据库文件
显示数据库中所有表名
显示数据库表的结构
打开(创建)一个sqlite3数据库文件
SQL命令,不以".“开头,但以”;"结束
创建一张表
向表中添加新记录
查询表中记录
按指定条件删除表中记录
更新表中记录(修改)
在表中添加字段
在表中删除字段
删除表
SQLite编程接口
打开(或创建)sqlite数据库
关闭数据库sqlite数据库
得到错误信息的描述
执行SQL操作
不使用回调函数执行SQL语句(操作)
代码示例
SQLite数据库
数据库基本概念
数据(Data)
能够输入计算机并能被计算机程序识别和处理的信息集合
数据库 (Database)
数据库是在 数据库管理系统管理 和控制之下,存放在存储介质上的数据集合
常用的数据库
大型数据库
Oracle公司是最早开发关系数据库的厂商之一,其产品支持最广泛的操作系统平台。目前Oracle关系数据库产品的市场占有率名列前茅。 IBM 的DB2是第一个具备网上功能的多媒体关系数据库管理系统,支持包Linux在内的一系列平台。
中型数据库
Server是微软开发的数据库产品,主要支持windows平台。
小型数据库
mySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQL AB公司,2008年被Sun公司收购,开放源码。
基于嵌入式的数据库
基于嵌入式Linux的数据库主要有SQLite, Firebird, Berkeley DB, eXtremeDB
Firebird是关系型数据库,功能强大,支持存储过程、SQL兼容等
SQLite关系型数据库,体积小,支持ACID事务
Berkeley DB中并没有数据库服务器的概念,它的程序库直接链接到应用程序中
eXtremeDB是内存数据库,运行效率高
SQLite 基础
SQLite的源代码是C,其源代码完全开放。SQLite第一个Alpha版本诞生于2000年5月。 他是一个轻量级的嵌入式数据库。
SQLite有以下特性:
零配置一无需安装和管理配置;
储存在单一磁盘文件中的一个完整的数据库;
数据库文件可以在不同字节顺序的机器间自由共享;
支持数据库大小至2TB;
足够小,全部源码大致3万行c代码,250KB;
比目前流行的大多数数据库对数据的操作要快;
sqlite3数据库的安装
本地安装
libsqlite3-0_3.7.2-1ubuntu0.1_i386.deb sqlite3_3.7.2-1ubuntu0.1_i386.deb libsqlite3-dev_3.7.2-1ubuntu0.1_i386.deb
sudo dpkg -i *.deb
在线安装
sudo apt-get install sqlite3
安装成功显示
在终端输入sqlite3,出现如下信息,表示安装成功
linux@linux:~/Desktop/SQL/test$ sqlite3
SQLite version 3.7.2
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
创建数据库
手工创建 使用SQLite3工具,通过手工输入SQL命令行完成数据库创建. 用户在Linux的命令行界面中输入SQLite3可启动SQLite3工具
代码创建 在代码中常动态创建数据库 在程序运行过程中,当需要进行数据库操作时,应用程序会首先尝试打开数据库,此时如果数据库并不存在,程序则会自动建立数据库,然后再打开数据库
数据库常用命令介绍
系统命令,都以’ . '开头
显示所有命令
sqlite> .help
退出sqlite3
sqlite> .quit
显示当前打开的数据库文件
sqlite> .database
显示数据库中所有表名
sqlite>.table
显示数据库表的结构
sqlite>.schema
打开(创建)一个sqlite3数据库文件
在终端下运行sqlite3 <*.db>,出现如下提示符 ·SQLite version 3.7.2 ·Enter “.help” for instructions ·Enter SQL statements terminated with a “;” ·sqlite>
<*.db> 是要打开的数据库文件。若该文件不存在,则自动创建
linux@linux:~/Desktop/SQL/test$ sqlite3 student.db
SQLite version 3.7.2
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> .schema
CREATE TABLE stu(id integer, name char, socre integer);
sqlite> .schema stu
CREATE TABLE stu(id integer, name char, socre integer);
sqlite>
SQL命令,不以".“开头,但以”;"结束
创建一张表
语法格式
create table 表名 (字段名1 字段类型1, 字段名2 字段类型2, …) ;
代码示例
sqlite> create table stu (id integer, name char, socre integer);
sqlite> .schema
CREATE TABLE stu (id integer, name char, socre integer);
向表中添加新记录
语法格式
insert into 表名 (字段1, 字段2, …) values (字段1的值, 字段2的值, …) ;
代码示例
sqlite> insert into stu values(1001,"张三",88);
sqlite> insert into stu values(1002,"李四",88);
sqlite> insert into stu values(1002,"王五",88);
sqlite> insert into stu values(1002,"赵六",88);
查询表中记录
查询所有字段 语法格式 sqlite>select * from ;
sqlite> select * from stu;
1001|张三|88
1002|李四|88
1002|王五|88
1002|赵六|88
|王五|96
查询指定的字段 select name,score from ;
sqlite> select name from stu;
张三
李四
王五
赵六
王五
sqlite> select id from stu;
1001
1002
1002
1002
按条件查询数据库中的内容 sqlite>select * from where < expression> select * from stu where score = 80; select * from stu where score = 80 and name= ‘张三’; select * from stu where score = 80 or name=‘王五’; select * from stu where score >= 85 and score < 90;
select * from stu where id = 1001 ;
1001|张三|88
select * from stu where socre = 88 ;
1001|张三|88
1002|李四|88
1002|王五|88
1002|赵六|88
按指定条件删除表中记录
语法格式
sqlite>delete from where
不加where会删除整张表
sqlite> select * from stu;
1001|张三|88
1002|李四|88
1002|王五|88
1002|赵六|88
|王五|96
sqlite> delete from stu where name="王五"and socre=96 ;
sqlite> select * from stu;
1001|张三|88
1002|李四|88
1002|王五|88
1002|赵六|88
更新表中记录(修改)
语法格式
sqlite>update set , … where ;
sqlite> update stu set id=1012 where name="王五";
sqlite> select * from stu;
1001|张三|88
1002|李四|88
1012|王五|88
1002|赵六|88
在表中添加字段
语法格式
sqlite>alter table add column default …;
sqlite> alter table stu add column address char;
sqlite> .schema
CREATE TABLE stu (id integer, name char, socre integer, address char);
sqlite> update stu set address="北京";
sqlite> select * from stu;
1001|张三|88|北京
1002|李四|88|北京
1012|王五|88|北京
1002|赵六|88|北京
在表中删除字段
语法格式 Sqlite中不允许删除字段,可以通过下面步骤达到同样的效果
sqlite> create table stu as select no, name, score from student //创建一张新的表
sqlite> drop table student // 删除原有的表
sqlite> alter table stu rename to student // 将新的表的名字改成原有的旧表名字
sqlite> create table stu1 as select id,name,socre,address from stu;
sqlite> .table
stu stu1
sqlite> drop table stu;
sqlite> alter table stu1 rename to stu;
sqlite> select *from stu;
1001|张三|88|北京
1002|李四|88|北京
1012|王五|88|北京
1002|赵六|88|北京
删除表
语法格式 sqlite>drop table
SQLite编程接口
打开(或创建)sqlite数据库
int sqlite3_open(
const char *filename, /* Database filename (UTF-8) */
sqlite3 **ppDb /* OUT: SQLite db handle */
);
参数: filename:数据库文件路径 ppDb: 指向sqlite句柄的指针(数据库的操作句柄)
返回值 如果成功打开(和/或创建)数据库,则 返回SQLITE_OK。否则返回错误代码
int sqlite3_open(
const char * filename,/ *数据库文件名(UTF-8)* /
sqlite3 ** ppDb / * OUT:SQLite数据库句柄* /
);
int sqlite3_open16(
const void * filename,/ *数据库文件名(UTF-16)* /
sqlite3 ** ppDb / * OUT:SQLite数据库句柄* /
);
int sqlite3_open_v2(
const char * filename,/ *数据库文件名(UTF-8)* /
sqlite3 ** ppDb,/ * OUT:SQLite数据库句柄* /
int flags,/ *标志* /
const char * zVfs / *要使用的VFS模块的名称* /
);
关闭数据库sqlite数据库
int sqlite3_close(sqlite3 *db);
功能:关闭sqlite数据库
返回值:成功返回0,失败返回错误码
得到错误信息的描述
const char *sqlite3_errmg(sqlite3 *db);
执行SQL操作
typedef int (*sqlite3_callback)(void *, int, char **, char **);
int sqlite3_exec(sqlite3 *db, const char *sql, sqlite3_callback callback, void *, char **errmsg);
不使用回调函数执行SQL语句(操作)
int sqlite3_get_table(sqlite3 *db, const char *sql, char ***resultp, int*nrow, int *ncolumn, char **errmsg);
功能:执行SQL操作
db:数据库句柄
sql:SQL语句
resultp:用来指向sql执行结果的指针
nrow:满足条件的记录的数目
ncolumn:每条记录包含的字段数目
errmsg:错误信息指针的地址
返回值:成功返回0,失败返回错误码
代码示例
#include
#include
#include
#include
#define DATABASE "./student.db"
#define N 128
int do_insert(sqlite3 *db);
int do_query(sqlite3 *db);
int do_delete(sqlite3 *db);
int do_update(sqlite3 *db);
int main(int argc, const char *argv[])
{
sqlite3 *db;
//创建数据库
if(sqlite3_open(DATABASE, &db) != SQLITE_OK )
{
printf("%s\n",sqlite3_errmsg(db));
return -1;
}
else
{
printf(" Open DATABASE Success \n");
}
char *errmsg = NULL;
//创建一张数据库的表格
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");
}
int input_cmd;
while(1)
{
printf("********************************************\n");
printf("1: insert 2:query 3:delete 4:update 5:quit\n");
printf("********************************************\n");
printf("Please select:");
scanf("%d", &input_cmd);
getchar();
switch(input_cmd)
{
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("Input Error Cmd !!!\n ");
break;
}
}
return 0;
}
int do_insert(sqlite3 *db)
{
int id;
printf("Input id:");
scanf("%d",&id);
char name[32] = {};
printf("Input name:");
scanf("%s",name);
char sex[10] = {};
printf("Input sex:");
scanf("%s",&sex);
int score;
printf("Input score:");
scanf("%d",&score);
char sql[N] = {};
sprintf(sql,"insert into stu values(%d,'%s','%s','%d');", id, name, sex, score);
char *errmsg = NULL;
if(sqlite3_exec(db, sql, NULL, NULL, &errmsg) != SQLITE_OK)
{
printf("%s\n", errmsg);
}
else
{
printf("Insert done\n");
}
return 0;
}
int callback(void* arg,int ncolumns ,char** f_value,char** f_name)
{
int i=0;
// printf("col = %d\n",ncolumns);
for(i=0; i%s\n", __func__, __LINE__, errmsg);
}
else
{
printf("Query done.\n");
}
return 0;
}
int do_query1(sqlite3 *db)
{
char** resultp;
char *errmsg;
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
你可能感兴趣的:(SQL数据库)
ERROR 1872 (HY000): Replica failed to initialize applier metadata structure from the repository
元气满满的热码式
数据库 mysql
ERROR1872(HY000):Replicafailedtoinitializeappliermetadatastructurefromtherepository是MySQL数据库中的一个错误。它表示在复制过程中,从存储库初始化应用程序元数据结构时出现了问题。这个错误通常发生在MySQL复制设置中,其中一个从服务器(replica)试图从主服务器(master)获取复制数据时遇到问题。复制是一
MySQL--查询数据
君君学姐
mysql 数据库
在MySQL数据库中,查询数据是数据库操作中最为基础和频繁的任务之一。通过查询,用户可以检索存储在数据库表中的数据,以满足特定的业务需求或分析目的。MySQL提供了强大而灵活的查询语言——SQL(StructuredQueryLanguage),特别是其数据查询部分,即DQL(DataQueryLanguage),允许用户以多种方式检索数据。以下将详细探讨MySQL中查询数据的方法,包括基本查询、
基于 WEB 开发的图书销售系统设计与实现
赵谨言
论文 经验分享 毕业设计
标题:基于WEB开发的图书销售系统设计与实现内容:1.摘要摘要:随着互联网技术的飞速发展,电子商务在全球范围内得到了广泛的应用。本文介绍了一个基于WEB开发的图书销售系统的设计与实现。该系统采用了B/S架构,使用Java语言和MySQL数据库进行开发。系统实现了图书的展示、搜索、购买、订单管理等功能,为用户提供了便捷的购物体验。通过对系统的测试和优化,系统性能稳定,具有良好的用户界面和可扩展性。本
如何把图片或者图片地址存到 MySQL 数据库中以及如何将这些图片数据通过 JSP 显示在网页中
m0_74824687
面试 学习路线 阿里巴巴 数据库 mysql java
如何优雅地管理图片:从MySQL数据库存储到JSP展示的全流程解析在互联网时代,一张引人入胜的图片往往能为网站带来巨大的流量。而作为开发者的我们,如何高效地管理和展示这些图片资源则成为了一项重要的技术挑战。今天,我们就一起来探讨一下,如何通过MySQL数据库存储图片(或其地址),并在JSP页面上实现美观大方的展示。一、存储策略选择图片存储方式存储图片有两种常见的方法:直接存储图片文件和存储图片路径
MySQL基础知识
洛洛呀。
mysql 数据库
通用语法:1.语句可以单行或多行书写,以分号结尾2.MySQL数据库的SQL语句不区分大小写,关键字建议写大写3.注释:单行注释:--注释内容或#注释内容(MySQL特有)多行注释:/*注释内容*/DDL语法:1.查询SHOWDATABASES;2.创建CREATEDATABASE数据库名称;3.判断后创建数据库CREATEDATABASEIFNOTEXISTS数据库名称4.删除4.1删除数据库:
python mysql库的三个库mysqlclient mysql-connector-python pymysql如何选择,他们之间的区别
zhangfeng1133
数据库 python mysql
三者的区别1.mysqlclient特点:是一个用于Python的MySQL数据库驱动程序,用于与MySQL数据库进行交互。依赖于MySQL的本地库,因此在安装时需要确保系统上已安装了必要的依赖项,如libmysqlclient-dev等。性能较好,但安装过程可能较为复杂,尤其是在某些操作系统上。安装:直接使用pip安装可能会遇到各种问题,如缺少依赖项、编译失败等。可以尝试使用预编译的二进制文件(
使用ndoe实现自动化完成增删改查接口
光头程序员
自动化 运维
使用ndoe实现自动化完成增删改查接口最近工作内容比较繁琐,手里需要开发的项目需求比较多,常常在多个项目之间来回切换,有时候某些分支都不知道自己开发了什么、做了哪些需求,使用手写笔记的方式去记录分支到头来也是眼花缭乱,作为前端工作3年的弟弟想着为啥不能自己直接将这些数据存在数据库里,实现一个增删改查的日常工作记录管理呢?说干就开始搞!!!1、首先我们先安装mysql数据库1.1、这个就直接搜一个教
MongoDB 全文检索
lsx202406
开发语言
MongoDB全文检索MongoDB是一个流行的NoSQL数据库,以其灵活的数据模型和强大的查询语言而闻名。在MongoDB中,全文检索是一种功能,允许用户对存储在数据库中的文本数据进行复杂的搜索。全文检索对于构建搜索引擎、内容推荐系统和文本分析工具等应用非常有用。什么是全文检索?全文检索是一种信息检索技术,它允许用户通过搜索关键字或短语来查找文档中的文本。与传统的基于关键字的搜索不同,全文检索考
MongoDB 数据库备份和恢复全攻略
翻晒时光
数据库 数据库 mongodb
在当今数据驱动的时代,数据库的稳定运行和数据安全至关重要。MongoDB作为一款流行的NoSQL数据库,以其灵活的文档模型和高扩展性备受青睐。然而,无论数据库多么强大,数据丢失的风险始终存在,因此掌握MongoDB的备份和恢复方法是数据库管理的关键环节。本文将深入探讨MongoDB的备份和恢复策略,帮助你更好地保护数据资产。一、备份的重要性数据丢失可能由多种原因导致,如硬件故障、软件错误、人为误操
Redis学习笔记
csdn_bobo_6
redis 学习 数据库
认识NoSQLNoSQL,泛指非关系型的数据库。随着互联网web2.0网站的兴起,传统的关系数据库在处理web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,出现了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,特别是大数据应用难题。NoSQL特点方便扩展(
MongoDB成为最好NoSQL数据库的原因是什么?思维导图 代码示例(java 架构)
用心去追梦
mongodb nosql java
MongoDB成为最受欢迎的NoSQL数据库之一,有多个因素促成了其成功和广泛采用。以下是从不同角度分析MongoDB成为最好NoSQL数据库的原因:MongoDB成为最好NoSQL数据库的原因文档型数据模型灵活模式:支持动态模式,无需预定义固定的表结构,易于适应快速变化的需求。嵌套结构:允许复杂的数据类型如数组、嵌入式文档,简化了数据建模。高性能与可扩展性读写性能:通过索引优化、内存映射文件等技
Hive数据仓库中的数据导出到MySQL的数据表不成功
sin2201
出错问题 数据仓库 hive mysql
可能的原因:(1)没有下载flume和sqoop(2)权限问题:因为MySQL数据库拒绝了root用户从hadoop3主机的连接请求,root用户没有从hadoop3主机进行连接的权限解决:通过MySQL的授权命令来授予权限mysql>GRANTALLPRIVILEGESONsqoop_weblog.*TO'root'@'hadoop3'IDENTIFIEDBY'2020';QueryOK,0ro
解锁 Python 与 MySQL 交互密码:全方位技术解析与实战攻略
秋夜Autumn
python MySQL
目录一、引言二、环境准备2.1安装MySQL2.2安装Python及相关库2.2.1使用mysql-connector-python2.2.2使用pymysql三、基本连接与操作3.1连接到MySQL数据库3.2创建游标对象3.3执行SQL查询3.3.1查询单条记录3.3.2查询多条记录3.4插入数据3.5更新数据3.6删除数据3.7关闭连接四、错误处理五、高级操作5.1使用事务5.2处理大型结果
Redis集群的高可用架构及维护
AI天才研究院
Python实战 自然语言处理 人工智能 语言模型 编程实践 开发语言 架构设计
作者:禅与计算机程序设计艺术1.简介2019年,随着云计算、微服务架构和容器技术的流行,NoSQL数据库和缓存技术越来越受到企业应用需求的关注。Redis集群作为一款开源内存键值存储数据库,在高性能、易用性等方面都给予了开发者更高的满意度。但在实际生产环境中运行Redis集群却并不容易,如何保证Redis集群的高可用、可靠性和持久化一直是很多公司关心的问题。本文将从以下两个角度出发,分析Redis
最新外卖霸王餐系统程序源码|美团/饿了么霸王餐系统(含数据库)(可对接公众号)
AALoveTouch
霸王餐 php
一款特别好用的霸王餐系统,搭建也特别简单,个人需要自备服务器和域名。下面是一些系统图片:下面是有关部分代码展示:部分代码展示配置数据库
数据库基础:从概念到 MySQL 实战
东锋1.3
数据库 数据库 mysql
数据库基础:从概念到MySQL实战在当今数字化时代,数据的重要性不言而喻,而数据库作为数据管理的核心工具,发挥着关键作用。对于技术爱好者和开发者来说,深入了解数据库知识是必不可少的。今天,就让我们一起走进数据库的世界,从基础概念到MySQL数据库的实战应用,进行一次全面的探索。一、数据库的基本概念1.数据库发展历程数据库的发展是随着数据处理量的不断增加而逐步演进的,主要经历了四个阶段:人工管理阶段
mysql数据库的学习(二)--sql语句用法及约束介绍
文艺小少年
数据库 mysql sql
目录一、引言二、SQL常用操作语句------>2.1、连接数据库------>2.2、DDL语句------>2.3、DML三、DQL语句------>3.1、简单查询------>3.2、条件查询------>3.3、模糊查询------>3.4、分组查询------>3.5、分页------>3.5、排序四、数据库约束------>4.1、主键约束------>4.2、唯一约束------>
MySQL数据库入门到大蛇尚硅谷宋红康老师笔记 基础篇 part 5
E___V___E
数据库 mysql 笔记
第05章_排序与分页排序#第05章_排序与分页#1.排序#如果没有使用排序操作,默认情况下查询返回的数据是按照添加数据的顺序显示的。SELECT*FROMemployees;#1.1基本使用#使用ORDERBY对查询到的数据进行排序操作。#升序:ASC(ascend)#降序:DESC(descend)#练习:按照salary从高到低的顺序显示员工信息#使用ORDERBY对查询到数据排序操作SELE
【Mysql】Mysql数据库基本操作-------DDL(中)
爱学习的小何同学!
数据库 mysql
1、对表结构的常用操作----创建表创建表格式:creattable(ifnotexists)(可以省略)表名(字段一类型[(宽度)][约束条件][comment'字段说明'],字段二类型[(宽度)][约束条件][comment'字段说明'],...)(表的一些设置);创建表是构建一张空表,指定这个表的名字,这个表有几列,每一列叫什么名字,以及每一列存储的数据类型。示例:2、数据类型数据类型是指在
python连接MYSQL数据库(连接MYSQL数据库报错解决方法)
Oblinto
数据库学习 数据库 mysql
一、连接前的准备(如果报错可以从以下几个方面检查一下)1.检查mysql服务查看mysql服务是否开启sudosystemctlstatusmysql若没开启,开启mysql服务sudosystemctlstartmysql2.检查mysql的3306端口查看3306端口是否打开netstat-an|grep3306若没打开,打开3306端口sudoufwallow3306/tcp3.修改配置文件
mysql-connector-c++-1.1.7 多线程connect崩溃( 0xC0000005)
卐兜兜飞卍
c++ mysql mysql c语言 多线程
问题:使用mysqlconnector(C++)连接mysql数据库,多线程同时connect的时候会直接崩溃解决办法:两种第一种:先在主线程中connect一次,之后再并发就没问题了第二种:对connect过程加锁,毕竟connect并不差加锁的那点时间…
mysql之group by语句
程序研
mysql mysql 数据库
MySQL的GROUPBY语句详细介绍在MySQL数据库中,GROUPBY子句用于将查询结果按照一个或多个列进行分组。这在数据分析和报表生成中非常有用,因为它允许我们对数据进行汇总和聚合,从而提取有价值的信息。本文将详细介绍GROUPBY语句的用法、注意事项以及通过多个代码例子来演示其功能。1.基本概念GROUPBY子句通常与聚合函数(如COUNT、SUM、AVG、MAX、MIN等)一起使用,以便
高校物品捐赠管理系统(11291)
codercode2022
java 后端 spring boot typescript spring javascript actionscript
有需要的同学,源代码和配套文档领取,加文章最下方的名片哦一、项目演示项目演示视频二、资料介绍完整源代码(前后端源代码+SQL脚本)配套文档(LW+PPT+开题报告)远程调试控屏包运行三、技术介绍Java语言SSM框架SpringBoot框架Vue框架JSP页面Mysql数据库IDEA/Eclipse开发
【neo4j】neo4j和Cypher 查询语言相关知识点
杰九
neo4j
【neo4j】neo4j和Cypher查询语言相关知识点1.什么是neo4jNeo4j是一个广泛使用的图形数据库管理系统(GraphDatabaseManagementSystem)。它是一种NoSQL数据库,专为存储和查询图形数据而设计。Neo4j支持图形数据模型,允许用户以节点(Nodes)和关系(Relationships)的形式存储数据,并通过属性(Properties)来丰富这些节点和关
Pyside6(PyQT5)中的QTableView与QSqlQueryModel、QSqlTableModel的联合使用
深蓝海拓
pyside6系统学习 pyside6学习笔记 数据库 python pyqt qt
QTableView是QT的一个强大的表视图部件,可以与模型结合使用以显示和编辑数据。QSqlQueryModel、QSqlTableModel都是用于与SQL数据库交互的模型,将二者与QTableView结合使用可以轻松地展示和编辑数据库的数据。QSqlQueryModel的简单应用importsysfromPySide6.QtWidgetsimportQApplication,QMainWin
mysql 学习2 MYSQL数据模型,mysql内部可以创建多个数据库,一个数据库中有多个表;表是真正放数据的地方,关系型数据库 。
hunandede
数据库 mysql 学习
在第一章中安装,启动mysql80服务后,连接上了mysql,那么就要使用SQL语句来操作mysql数据库了。那么在学习SQL语言操作mysql数据库之前,要对于mysql数据模型有一个了解。MYSQL数据模型在下图中客户端将SQL语言,发送给mysql数据库服务器mysql数据库服务器内部有一个软件DBMS,通过DBMS会去维护操作数据库,而数据库中可以有多张表,真正的数据就是存放在表中的概念整
12 分布式事务
40岁的系统架构师
分布式
分布式事务产生的原因我们拿mysql数据库来说,当数据库为单体数据库的时候,我们打开事务,执行sql为预执行阶段,最后commit时通过日志控制最终全部提交后存储到磁盘中,如果commit失败,可以通过日志控制回滚回来,但是当我们的数据库实例为多个的时候,不同的数据源,我们的日志已经无法控制落入磁盘的数据正常的回滚。当我们分库的时候旧无法通过传统的方式控制事务的正常运转,这个时候就产生了分布式事务
c#连接MySql数据库
一 一
数据库 mysql c#
1.右击引用点击管理NuGet程序包2.下载MySql.Data数据包3.引用usingMySql.Data.MySqlClient;4.利用ADO.NET技术就可以连接到MySql数据库了
C#连接MySQL操作详解
TechPr
c# mysql android C#
C#连接MySQL操作详解在这篇文章中,我们将详细介绍如何使用C#连接和操作MySQL数据库。我们将提供完整的源代码和相应的描述,以帮助您更好地理解。步骤1:引用MySQLConnector/Net首先,您需要安装并引用MySQLConnector/Net,这是一个官方提供的用于在C#中连接MySQL数据库的库。您可以从MySQL官方网站上下载并安装这个驱动程序,然后在您的项目中添加对MySQLC
[C#]C#连接MySql数据库
赵闪闪168.
C# 数据库 c# mysql
1、要连接MySql数据库必须首先下载MySql官方的连接.net的文件,文件下载地址为http://dev.mysql.com/downloads/connector/net/6.6.html#downloads,下载平台选择.Net&Mono,下载ZIP免安装版。2、解压缩刚才下载的mysql-connector-net-6.6.6-noinstall.zip文件,里面有几个版本选择,在这里我
mysql主从数据同步
林鹤霄
mysql主从数据同步
配置mysql5.5主从服务器(转)
教程开始:一、安装MySQL
说明:在两台MySQL服务器192.168.21.169和192.168.21.168上分别进行如下操作,安装MySQL 5.5.22
二、配置MySQL主服务器(192.168.21.169)mysql -uroot -p &nb
oracle学习笔记
caoyong
oracle
1、ORACLE的安装
a>、ORACLE的版本
8i,9i : i是internet
10g,11g : grid (网格)
12c : cloud (云计算)
b>、10g不支持win7
&
数据库,SQL零基础入门
天子之骄
sql 数据库入门 基本术语
数据库,SQL零基础入门
做网站肯定离不开数据库,本人之前没怎么具体接触SQL,这几天起早贪黑得各种入门,恶补脑洞。一些具体的知识点,可以让小白不再迷茫的术语,拿来与大家分享。
数据库,永久数据的一个或多个大型结构化集合,通常与更新和查询数据的软件相关
pom.xml
一炮送你回车库
pom.xml
1、一级元素dependencies是可以被子项目继承的
2、一级元素dependencyManagement是定义该项目群里jar包版本号的,通常和一级元素properties一起使用,既然有继承,也肯定有一级元素modules来定义子元素
3、父项目里的一级元素<modules>
<module>lcas-admin-war</module>
<
sql查地区省市县
3213213333332132
sql mysql
-- db_yhm_city
SELECT * FROM db_yhm_city WHERE class_parent_id = 1 -- 海南 class_id = 9 港、奥、台 class_id = 33、34、35
SELECT * FROM db_yhm_city WHERE class_parent_id =169
SELECT d1.cla
关于监听器那些让人头疼的事
宝剑锋梅花香
画图板 监听器 鼠标监听器
本人初学JAVA,对于界面开发我只能说有点蛋疼,用JAVA来做界面的话确实需要一定的耐心(不使用插件,就算使用插件的话也没好多少)既然Java提供了界面开发,老师又要求做,只能硬着头皮上啦。但是监听器还真是个难懂的地方,我是上了几次课才略微搞懂了些。
JAVA的遍历MAP
darkranger
map
Java Map遍历方式的选择
1. 阐述
对于Java中Map的遍历方式,很多文章都推荐使用entrySet,认为其比keySet的效率高很多。理由是:entrySet方法一次拿到所有key和value的集合;而keySet拿到的只是key的集合,针对每个key,都要去Map中额外查找一次value,从而降低了总体效率。那么实际情况如何呢?
为了解遍历性能的真实差距,包括在遍历ke
POJ 2312 Battle City 优先多列+bfs
aijuans
搜索
来源:http://poj.org/problem?id=2312
题意:题目背景就是小时候玩的坦克大战,求从起点到终点最少需要多少步。已知S和R是不能走得,E是空的,可以走,B是砖,只有打掉后才可以通过。
思路:很容易看出来这是一道广搜的题目,但是因为走E和走B所需要的时间不一样,因此不能用普通的队列存点。因为对于走B来说,要先打掉砖才能通过,所以我们可以理解为走B需要两步,而走E是指需要1
Hibernate与Jpa的关系,终于弄懂
avords
java Hibernate 数据库 jpa
我知道Jpa是一种规范,而Hibernate是它的一种实现。除了Hibernate,还有EclipseLink(曾经的toplink),OpenJPA等可供选择,所以使用Jpa的一个好处是,可以更换实现而不必改动太多代码。
在play中定义Model时,使用的是jpa的annotations,比如javax.persistence.Entity, Table, Column, OneToMany
酸爽的console.log
bee1314
console
在前端的开发中,console.log那是开发必备啊,简直直观。通过写小函数,组合大功能。更容易测试。但是在打版本时,就要删除console.log,打完版本进入开发状态又要添加,真不够爽。重复劳动太多。所以可以做些简单地封装,方便开发和上线。
/**
* log.js hufeng
* The safe wrapper for `console.xxx` functions
*
哈佛教授:穷人和过于忙碌的人有一个共同思维特质
bijian1013
时间管理 励志人生 穷人 过于忙碌
一个跨学科团队今年完成了一项对资源稀缺状况下人的思维方式的研究,结论是:穷人和过于忙碌的人有一个共同思维特质,即注意力被稀缺资源过分占据,引起认知和判断力的全面下降。这项研究是心理学、行为经济学和政策研究学者协作的典范。
这个研究源于穆来纳森对自己拖延症的憎恨。他7岁从印度移民美国,很快就如鱼得水,哈佛毕业
other operate
征客丶
OS osx
一、Mac Finder 设置排序方式,预览栏 在显示-》查看显示选项中
二、有时预览显示时,卡死在那,有可能是一些临时文件夹被删除了,如:/private/tmp[有待验证]
--------------------------------------------------------------------
若有其他凝问或文中有错误,请及时向我指出,
我好及时改正,同时也让我们一
【Scala五】分析Spark源代码总结的Scala语法三
bit1129
scala
1. If语句作为表达式
val properties = if (jobIdToActiveJob.contains(jobId)) {
jobIdToActiveJob(stage.jobId).properties
} else {
// this stage will be assigned to "default" po
ZooKeeper 入门
BlueSkator
中间件 zk
ZooKeeper是一个高可用的分布式数据管理与系统协调框架。基于对Paxos算法的实现,使该框架保证了分布式环境中数据的强一致性,也正是基于这样的特性,使得ZooKeeper解决很多分布式问题。网上对ZK的应用场景也有不少介绍,本文将结合作者身边的项目例子,系统地对ZK的应用场景进行一个分门归类的介绍。
值得注意的是,ZK并非天生就是为这些应用场景设计的,都是后来众多开发者根据其框架的特性,利
MySQL取得当前时间的函数是什么 格式化日期的函数是什么
BreakingBad
mysql Date
取得当前时间用 now() 就行。
在数据库中格式化时间 用DATE_FORMA T(date, format) .
根据格式串format 格式化日期或日期和时间值date,返回结果串。
可用DATE_FORMAT( ) 来格式化DATE 或DATETIME 值,以便得到所希望的格式。根据format字符串格式化date值:
%S, %s 两位数字形式的秒( 00,01,
读《研磨设计模式》-代码笔记-组合模式
bylijinnan
java 设计模式
声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/
import java.util.ArrayList;
import java.util.List;
abstract class Component {
public abstract void printStruct(Str
4_JAVA+Oracle面试题(有答案)
chenke
oracle
基础测试题
卷面上不能出现任何的涂写文字,所有的答案要求写在答题纸上,考卷不得带走。
选择题
1、 What will happen when you attempt to compile and run the following code? (3)
public class Static {
static {
int x = 5; // 在static内有效
}
st
新一代工作流系统设计目标
comsci
工作 算法 脚本
用户只需要给工作流系统制定若干个需求,流程系统根据需求,并结合事先输入的组织机构和权限结构,调用若干算法,在流程展示版面上面显示出系统自动生成的流程图,然后由用户根据实际情况对该流程图进行微调,直到满意为止,流程在运行过程中,系统和用户可以根据情况对流程进行实时的调整,包括拓扑结构的调整,权限的调整,内置脚本的调整。。。。。
在这个设计中,最难的地方是系统根据什么来生成流
oracle 行链接与行迁移
daizj
oracle 行迁移
表里的一行对于一个数据块太大的情况有二种(一行在一个数据块里放不下)
第一种情况:
INSERT的时候,INSERT时候行的大小就超一个块的大小。Oracle把这行的数据存储在一连串的数据块里(Oracle Stores the data for the row in a chain of data blocks),这种情况称为行链接(Row Chain),一般不可避免(除非使用更大的数据
[JShop]开源电子商务系统jshop的系统缓存实现
dinguangx
jshop 电子商务
前言
jeeshop中通过SystemManager管理了大量的缓存数据,来提升系统的性能,但这些缓存数据全部都是存放于内存中的,无法满足特定场景的数据更新(如集群环境)。JShop对jeeshop的缓存机制进行了扩展,提供CacheProvider来辅助SystemManager管理这些缓存数据,通过CacheProvider,可以把缓存存放在内存,ehcache,redis,memcache
初三全学年难记忆单词
dcj3sjt126com
english word
several 儿子;若干
shelf 架子
knowledge 知识;学问
librarian 图书管理员
abroad 到国外,在国外
surf 冲浪
wave 浪;波浪
twice 两次;两倍
describe 描写;叙述
especially 特别;尤其
attract 吸引
prize 奖品;奖赏
competition 比赛;竞争
event 大事;事件
O
sphinx实践
dcj3sjt126com
sphinx
安装参考地址:http://briansnelson.com/How_to_install_Sphinx_on_Centos_Server
yum install sphinx
如果失败的话使用下面的方式安装
wget http://sphinxsearch.com/files/sphinx-2.2.9-1.rhel6.x86_64.rpm
yum loca
JPA之JPQL(三)
frank1234
orm jpa JPQL
1 什么是JPQL
JPQL是Java Persistence Query Language的简称,可以看成是JPA中的HQL, JPQL支持各种复杂查询。
2 检索单个对象
@Test
public void querySingleObject1() {
Query query = em.createQuery("sele
Remove Duplicates from Sorted Array II
hcx2013
remove
Follow up for "Remove Duplicates":What if duplicates are allowed at most twice?
For example,Given sorted array nums = [1,1,1,2,2,3],
Your function should return length
Spring4新特性——Groovy Bean定义DSL
jinnianshilongnian
spring 4
Spring4新特性——泛型限定式依赖注入
Spring4新特性——核心容器的其他改进
Spring4新特性——Web开发的增强
Spring4新特性——集成Bean Validation 1.1(JSR-349)到SpringMVC
Spring4新特性——Groovy Bean定义DSL
Spring4新特性——更好的Java泛型操作API
Spring4新
CentOS安装Mysql5.5
liuxingguome
centos
CentOS下以RPM方式安装MySQL5.5
首先卸载系统自带Mysql:
yum remove mysql mysql-server mysql-libs compat-mysql51
rm -rf /var/lib/mysql
rm /etc/my.cnf
查看是否还有mysql软件:
rpm -qa|grep mysql
去http://dev.mysql.c
第14章 工具函数(下)
onestopweb
函数
index.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/
POJ 1050
SaraWon
二维数组 子矩阵 最大和
POJ ACM第1050题的详细描述,请参照
http://acm.pku.edu.cn/JudgeOnline/problem?id=1050
题目意思:
给定包含有正负整型的二维数组,找出所有子矩阵的和的最大值。
如二维数组
0 -2 -7 0
9 2 -6 2
-4 1 -4 1
-1 8 0 -2
中和最大的子矩阵是
9 2
-4 1
-1 8
且最大和是15
[5]设计模式——单例模式
tsface
java 单例 设计模式 虚拟机
单例模式:保证一个类仅有一个实例,并提供一个访问它的全局访问点
安全的单例模式:
/*
* @(#)Singleton.java 2014-8-1
*
* Copyright 2014 XXXX, Inc. All rights reserved.
*/
package com.fiberhome.singleton;
Java8全新打造,英语学习supertool
yangshangchuan
java superword 闭包 java8 函数式编程
superword是一个Java实现的英文单词分析软件,主要研究英语单词音近形似转化规律、前缀后缀规律、词之间的相似性规律等等。Clean code、Fluent style、Java8 feature: Lambdas, Streams and Functional-style Programming。
升学考试、工作求职、充电提高,都少不了英语的身影,英语对我们来说实在太重要