{"id":20110949,"url":"https://github.com/nohomey/mysql-oqm","last_synced_at":"2026-04-19T10:32:36.826Z","repository":{"id":86019591,"uuid":"56083150","full_name":"NoHomey/mysql-oqm","owner":"NoHomey","description":"Simple MySql Object Querry Mapper","archived":false,"fork":false,"pushed_at":"2020-11-17T14:14:09.000Z","size":55,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-07-10T08:02:50.360Z","etag":null,"topics":["inserts","mysql","mysql-oqm","querry-mapper","writing-mysql-querries"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/NoHomey.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-04-12T17:17:30.000Z","updated_at":"2020-11-17T14:14:33.000Z","dependencies_parsed_at":"2023-03-03T16:45:28.921Z","dependency_job_id":null,"html_url":"https://github.com/NoHomey/mysql-oqm","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/NoHomey/mysql-oqm","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NoHomey%2Fmysql-oqm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NoHomey%2Fmysql-oqm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NoHomey%2Fmysql-oqm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NoHomey%2Fmysql-oqm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NoHomey","download_url":"https://codeload.github.com/NoHomey/mysql-oqm/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NoHomey%2Fmysql-oqm/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32004035,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-18T20:23:30.271Z","status":"online","status_checked_at":"2026-04-19T02:00:07.110Z","response_time":55,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["inserts","mysql","mysql-oqm","querry-mapper","writing-mysql-querries"],"created_at":"2024-11-13T18:14:08.533Z","updated_at":"2026-04-19T10:32:36.792Z","avatar_url":"https://github.com/NoHomey.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# mysql-oqm\nMySql Object Querry Mapper started as automatic [elsys-db-practices](https://github.com/thebravoman/elsys-db-practices) test generator and solver, acessor of [db-machine](https://github.com/NoHomey/db-machine).\n\n\"Пускаш скрипта и готово ;)\" - You run the script and it's done ;)\n\n# Creating no password mysql user:\n\n```sql\ncreate user 'ivo'@'localhost';\ngrant all privileges on *.* to 'ivo'@'localhost' with grant option;\n/* mysql -u ivo */\n```\n\n# Makefile:\n\n```makefile\n\nfolder=Borislav_Stratev_B_2# Folder FirstName_LastName_Class_Number\n\ndb=exam# DB Name\n\nuser=ivo# mysql user Name\n\nip=192.168.0.103# machine IP\n\n$make all# Generates all sql files in $(folder) if $mysql can be accesed with $(user) then exports are also generated.\n\n$make get class=А/Б num=[1..29]# gets exam\n\n$make picture# opens mysql-workbench\n\n$make tar/zip# generates archive\n\n$make post# posts exam\n\n```\n\n# Sequence example:\n\n```\nmake get class=Б num=2\nmake\nmake picture\nmake tar\nmake post\n```\n\n# mysql.cc:\n\n## Syntax upper/lower case (set as global varibels before int main(...):\n\n```c++\nbool Table::upper = true; //upper case\nbool DB::upper = true; //upper case\n```\n\n```c++\nbool Table::upper = false; //lower case\nbool DB::upper = false; //lower case\n```\n## Creating DB:\n\n```c++\nDB db(\"exam\"); // DB(const char* Name);\n```\n\n## Creating Table:\n\n```c++\nTable article(\"Article_1\"); // Table(const char* Name = \"\");\n```\n\n## Adding table fields:\n\n```c++\narticle.field(\"password\", string_(), password_); // void field(const char* name, std::string sql, std::string (*pattern) (unsigned int), bool random = true);\n```\n\n### hardcoded.hh:\n\n```c++\nstd::string varchar_(void);\nstd::string date_(void);\nstd::string currency_(void);\nstd::string string_(void);\nstd::string long_string_(void);\nstd::string boolean_(void);\nstd::string long_text_(void);\nstd::string double_(void);\nstd::string integer_(void);\nstd::string float_(void);\nstd::string varchar_6_(void);\nstd::string int_(void);\nstd::string varchar_16_(void);\n\nstd::string name_(unsigned int i);\nstd::string published_on_(unsigned int i);\nstd::string price_(unsigned int i);\nstd::string created_on_(unsigned int i);\nstd::string url_(unsigned int i);\nstd::string content_(unsigned int i);\nstd::string visible_(unsigned int i);\nstd::string password_(unsigned int i);\nstd::string description_(unsigned int i);\nstd::string date_created_on_(unsigned int i);\nstd::string priority_double_(unsigned int i);\nstd::string created_by_(unsigned int i);\nstd::string age_(unsigned int i);\nstd::string income_(unsigned int i);\nstd::string picture_url_(unsigned int i);\nstd::string twitter_(unsigned int i);\nstd::string priority_int_(unsigned int i);\nstd::string gender_(unsigned int i);\nstd::string hash_(unsigned int i);\nstd::string second_priority_(unsigned int i);\n```\n\n### Adding custom field set:\n\n```c++\nstd::string my_field(unsigned int i) {\n  return std::string(\"\\\"My Field# \") + std::to_string(i) + std::string(\"\\\"\"); // Note the escaping quotes -\u003e it will be evaled as string when generating inserts.\n}\n\narticle.field(\"my_field\", std::string(\"tinyblob\"), my_field, false); // Note that all sql types need to be written is lower case. Setting random to false -\u003e my_field will be called with [1..num of inserts].\n```\n\n## Adding table relations:\n\n### One to one:\n\n```c++\ndb.one_to_one(\u0026tag, \u0026article); // void one_to_one(Table* T1, Table* T2); (Tag has one to one connection with Article)\n```\n\n### One to many:\n\n```c++\ndb.one_to_many(\u0026tag, \u0026article); // void one_to_many(Table* T1, Table* T2); (Tag has one to many connection with Article)\n```\n\n### Many to one:\n\n```c++\ndb.many_to_one(\u0026tag, \u0026article); // void many_to_one(Table* T1, Table* T2); (Tag has many to one connection with Article)\n```\n\n### Many to many:\n\n```c++\nTable tag_article; // Note that for each amny to many connection new connection table is required\ndb.many_to_many(\u0026tag, \u0026article, \u0026tag_article); // void many_to_many(Table* T1, Table* T2, Table* T3); (Tag has many to many connection with Article)\n```\n\n## Adding table to db if no connection to it was provided:\n\n```c++\ndb.add_if_missing(\u0026article) // void add_if_missing(Table* T); (If table not added in db relation priority queue it will be added).\n```\n\n# Up so far mysql.cc looks like this:\n\n```c++\n#include \u003ciostream\u003e\n#include \u003cfstream\u003e\n#include \u003cstring\u003e\n#include \"DB.hh\"\n#include \"Table.hh\"\n#include \"Pattern.hh\"\n#include \"Type.hh\"\n\n#include \"hardcoded.hh\" //192.168.113.98\n\nbool Table::upper = false;\nbool DB::upper = false;\n\nint main(void) {\n\tDB db(\"exam\");\n\n\tTable article(\"Article_1\");\n\tarticle.field(\"visible\", boolean_(), visible_);\n\tarticle.field(\"password\", string_(), password_);\n\tarticle.field(\"name\", varchar_(), name_);\n\n\tTable category(\"Category\");\n\tcategory.field(\"name\", varchar_(), name_);\n\tcategory.field(\"date_created_on\", date_(), date_created_on_);\n\n\tTable user(\"User\");\n\tuser.field(\"created_on\", date_(), created_on_);\n\tuser.field(\"description\", long_text_(), description_);\n\tuser.field(\"picture_url\", string_(), picture_url_);\n\n\tTable tag(\"Tag\");\n\ttag.field(\"second_priority\", float_(), second_priority_);\n\ttag.field(\"description\", varchar_(), description_);\n\n\tTable user_article;\n\tdb.many_to_one(\u0026category, \u0026tag);\n\tdb.one_to_one(\u0026tag, \u0026article);\n\tdb.one_to_one(\u0026article, \u0026user);\n\n\tdb.add_if_missing(\u0026article);\n\tdb.add_if_missing(\u0026category);\n\tdb.add_if_missing(\u0026user);\n\tdb.add_if_missing(\u0026tag);\n```\n\n## Writing mysql querries for DB creation:\n\n```c++\nstd::ofstream creates(\"creates.sql\", std::ios::out);\ncreates \u003c\u003c db.create(); // std::string create(void);\n```\n\n### creates.sql:\n\n```sql\ndrop database if exists exam;\ncreate database exam;\nuse exam;\n\ncreate table User (\n\tid int not null primary key auto_increment,\n\tcreated_on date,\n\tdescription longtext,\n\tpicture_url varchar(256)\n);\n\ncreate table Article_1 (\n\tid int not null primary key auto_increment,\n\tvisible bit,\n\tpassword varchar(256),\n\tname varchar(256),\n\tUser_id int not null unique,\n\tforeign key (User_id) references User (id)\n);\n\ncreate table Tag (\n\tid int not null primary key auto_increment,\n\tsecond_priority float(8, 4),\n\tdescription varchar(256),\n\tArticle_1_id int not null unique,\n\tforeign key (Article_1_id) references Article_1 (id)\n);\n\ncreate table Category (\n\tid int not null primary key auto_increment,\n\tname varchar(256),\n\tdate_created_on date,\n\tTag_id int not null,\n\tforeign key (Tag_id) references Tag (id)\n);\n\n```\n\n## Writing mysql querries for DB inserts (fake filling db):\n\n```c++\nstd::ofstream inserts(\"inserts.sql\", std::ios::out);\ninserts \u003c\u003c db.use() \u003c\u003c db.insert(3); // std::string use(void);, std::string insert(unsigned int count);\n```\n\n### inserts.sql:\n\n```sql\nuse exam;\n\ninsert into User (created_on, description, picture_url) values\n\t(\"2016-04-01\", \"It should have some description at page 1\", \"http://imgur.com/gallery/gzr2BG\"),\n\t(\"2016-04-03\", \"It should have some description at page 2\", \"http://imgur.com/gallery/gzr3BG\"),\n\t(\"2016-04-02\", \"It should have some description at page 3\", \"http://imgur.com/gallery/gzr1BG\");\n\ninsert into Article_1 (visible, password, name, User_id) values\n\t(1, \"qweqwe1231\", \"Liam South\", 3),\n\t(0, \"qweqwe1233\", \"Emma Watson\", 2),\n\t(1, \"qweqwe1232\", \"Mason Scot\", 1);\n\ninsert into Tag (second_priority, description, Article_1_id) values\n\t(1.1, \"It should have some description at page 2\", 2),\n\t(3.3, \"It should have some description at page 3\", 3),\n\t(2.2, \"It should have some description at page 1\", 1);\n\ninsert into Category (name, date_created_on, Tag_id) values\n\t(\"Emma Watson\", \"2016-04-03\", 1),\n\t(\"Liam South\", \"2016-04-01\", 2),\n\t(\"Mason Scot\", \"2016-04-02\", 3);\n\n```\n\n## Selecting by making relational querry:\n\n```c++\nselects1 \u003c\u003c db.select(\u0026article, \u0026category, JoinType::inner, 3); // std::string select(Table* wich, Table* given, enum JoinType join_type, unsigned int id = 0);\n\n//working even for 3 many to many connections:\nTable t1, t2, t3;\ndb.many_to_many(\u0026tag, \u0026user, \u0026t1);\ndb.many_to_many(\u0026user, \u0026article, \u0026t2);\ndb.many_to_many(\u0026article, \u0026category, \u0026t3);\n```\n\n### Joining:\n\n```c++\nenum JoinType {\n\tinner,\n\tleft,\n\tright,\n\touter,\n\tleft_excld,\n\tright_excld,\n\touter_excld\n};\n```\n\n### Example:\n\n```c++\nstd::ofstream selects1(\"selects1.sql\", std::ios::out);\nselects1 \u003c\u003c db.use();\nselects1 \u003c\u003c db.select(\u0026article, \u0026category, JoinType::inner, 3); // Select Article for a given Category (id == 3) (id must be in range [1..number of inserts] \n```\n\n### select1.sql:\n\n```sql\nuse exam;\n\nselect Article_1.id from Article_1\ninner join Tag on Tag.Article_1_id = Article_1.id\ninner join Category on Category.Tag_id = Tag.id\nwhere Category.id = 3;\n\n```\n\n## Migrating a table (spliting):\n\n```c++\nstd::ofstream migrates(\"migrates.sql\", std::ios::out);\nTable migrate(\"Tag_part1\"); //  Each migration requires a migration table (Separate Tag into twp tabes)\nstd::vector\u003cstd::string\u003e fields; // Fields wich new table will contain, all other are left in second table.\nfields.push_back(std::string(\"description\")); // Only one field in this case\nmigrates \u003c\u003c db.use();\nmigrates \u003c\u003c db.migrate(\u0026migrate, fields, \u0026tag, std::string(\"Tag_part2\")); // std::string migrate(Table* T1, std::vector\u003cstd::string\u003e fields, Table* T2, std::string name);\n```\n\n### migrates.sql:\n\n```sql\nuse exam;\n\ncreate table Tag_part1 (\n\tid int not null primary key auto_increment,\n\tdescription varchar(256)\n);\n\ninsert into Tag_part1 (description) select description from Tag;\nalter table Tag drop column description;\nalter table Tag rename Tag_part2;\n\n```\n\n### All joining type selects example:\n\n```c++\nstd::ofstream selects2(\"selects2.sql\", std::ios::out);\n\tselects2 \u003c\u003c db.use();\n\tselects2 \u003c\u003c db.select(\u0026user, \u0026tag, JoinType::inner, 2);\n\tselects2 \u003c\u003c db.select(\u0026user, \u0026tag, JoinType::left);\n\tselects2 \u003c\u003c db.select(\u0026user, \u0026tag, JoinType::right);\n\tselects2 \u003c\u003c db.select(\u0026user, \u0026tag, JoinType::outer);\n\tselects2 \u003c\u003c db.select(\u0026user, \u0026tag, JoinType::left_excld);\n\tselects2 \u003c\u003c db.select(\u0026user, \u0026tag, JoinType::right_excld);\n\tselects2 \u003c\u003c db.select(\u0026user, \u0026tag, JoinType::outer_excld);\n```\n\n### select2.sql:\n\n```sql\nuse exam;\n\nselect User.id from User\ninner join Article_1 on Article_1.User_id = User.id\ninner join Tag_part2 on Tag_part2.Article_1_id = Article_1.id\nwhere Tag_part2.id = 2;\n\nselect User.id from User\nleft join Article_1 on Article_1.User_id = User.id\nleft join Tag_part2 on Tag_part2.Article_1_id = Article_1.id;\n\nselect User.id from User\nright join Article_1 on Article_1.User_id = User.id\nright join Tag_part2 on Tag_part2.Article_1_id = Article_1.id;\n\nselect User.id from User\nleft join Article_1 on Article_1.User_id = User.id\nleft join Tag_part2 on Tag_part2.Article_1_id = Article_1.id\nunion all\nselect User.id from User\nright join Article_1 on Article_1.User_id = User.id\nright join Tag_part2 on Tag_part2.Article_1_id = Article_1.id;\n\nselect User.id from User\nleft join Article_1 on Article_1.User_id = User.id\nleft join Tag_part2 on Tag_part2.Article_1_id = Article_1.id\nwhere Tag_part2.id is null;\n\nselect User.id from User\nright join Article_1 on Article_1.User_id = User.id\nright join Tag_part2 on Tag_part2.Article_1_id = Article_1.id\nwhere User.id is null;\n\nselect User.id from User\nleft join Article_1 on Article_1.User_id = User.id\nleft join Tag_part2 on Tag_part2.Article_1_id = Article_1.id\nunion all\nselect User.id from User\nright join Article_1 on Article_1.User_id = User.id\nright join Tag_part2 on Tag_part2.Article_1_id = Article_1.id\nwhere User.id is null or Tag_part2.id is null;\n\n```\n\n## Full version of sql.cc:\n\n```c++\n#include \u003ciostream\u003e\n#include \u003cfstream\u003e\n#include \u003cstring\u003e\n#include \"DB.hh\"\n#include \"Table.hh\"\n#include \"Pattern.hh\"\n#include \"Type.hh\"\n\n#include \"hardcoded.hh\" //192.168.113.98\n\nbool Table::upper = false;\nbool DB::upper = false;\n\nint main(void) {\n\tDB db(\"exam\");\n\n\tTable article(\"Article_1\");\n\tarticle.field(\"visible\", boolean_(), visible_);\n\tarticle.field(\"password\", string_(), password_);\n\tarticle.field(\"name\", varchar_(), name_);\n\n\tTable category(\"Category\");\n\tcategory.field(\"name\", varchar_(), name_);\n\tcategory.field(\"date_created_on\", date_(), date_created_on_);\n\n\tTable user(\"User\");\n\tuser.field(\"created_on\", date_(), created_on_);\n\tuser.field(\"description\", long_text_(), description_);\n\tuser.field(\"picture_url\", string_(), picture_url_);\n\n\tTable tag(\"Tag\");\n\ttag.field(\"second_priority\", float_(), second_priority_);\n\ttag.field(\"description\", varchar_(), description_);\n\n\tTable user_article;\n\tdb.many_to_one(\u0026category, \u0026tag);\n\tdb.one_to_one(\u0026tag, \u0026article);\n\tdb.one_to_one(\u0026article, \u0026user);\n\n\tdb.add_if_missing(\u0026article);\n\tdb.add_if_missing(\u0026category);\n\tdb.add_if_missing(\u0026user);\n\tdb.add_if_missing(\u0026tag);\n\n\tstd::ofstream creates(\"creates.sql\", std::ios::out);\n\tcreates \u003c\u003c db.create();\n\n\tstd::ofstream inserts(\"inserts.sql\", std::ios::out);\n\tinserts \u003c\u003c db.use() \u003c\u003c db.insert(3);\n\n\tstd::ofstream selects1(\"selects1.sql\", std::ios::out);\n\tselects1 \u003c\u003c db.use();\n\tselects1 \u003c\u003c db.select(\u0026article, \u0026category, JoinType::inner, 3);\n\n\tstd::ofstream migrates(\"migrates.sql\", std::ios::out);\n\tTable migrate(\"Tag_part1\");\n\tstd::vector\u003cstd::string\u003e fields;\n\tfields.push_back(std::string(\"description\"));\n\tmigrates \u003c\u003c db.use();\n\tmigrates \u003c\u003c db.migrate(\u0026migrate, fields, \u0026tag, std::string(\"Tag_part2\"));\n\n\tstd::ofstream selects2(\"selects2.sql\", std::ios::out);\n\tselects2 \u003c\u003c db.use();\n\tselects2 \u003c\u003c db.select(\u0026user, \u0026tag, JoinType::inner, 2);\n\t/*selects2 \u003c\u003c db.select(\u0026user, \u0026tag, JoinType::left);\n\tselects2 \u003c\u003c db.select(\u0026user, \u0026tag, JoinType::right);\n\tselects2 \u003c\u003c db.select(\u0026user, \u0026tag, JoinType::outer);\n\tselects2 \u003c\u003c db.select(\u0026user, \u0026tag, JoinType::left_excld);\n\tselects2 \u003c\u003c db.select(\u0026user, \u0026tag, JoinType::right_excld);\n\tselects2 \u003c\u003c db.select(\u0026user, \u0026tag, JoinType::outer_excld);*/\n\n\treturn 0;\n}\n\n```\n\n# G++ -v\n\nSupporting g++ versions \u003e= g++-4.8.x\n\n```\nivo@ivo-Inspiron-5558:~$ g++ -v\nUsing built-in specs.\nCOLLECT_GCC=g++\nCOLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/4.8/lto-wrapper\nTarget: x86_64-linux-gnu\nConfigured with: ../src/configure -v --with-pkgversion='Ubuntu 4.8.4-2ubuntu1~14.04.1' --with-bugurl=file:///usr/share/doc/gcc-4.8/README.Bugs --enable-languages=c,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.8 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.8 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --disable-libmudflap --enable-plugin --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-4.8-amd64/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-4.8-amd64 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-4.8-amd64 --with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --enable-objc-gc --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu\nThread model: posix\ngcc version 4.8.4 (Ubuntu 4.8.4-2ubuntu1~14.04.1)\n\n```\n\n# Output:\n\n## No mysql installed or no access:\n\n```\nivo@ivo-Inspiron-5558:~/MySql_OQM$ make\nrm -f *.o sql *.sql\ng++ -std=c++11 -Wall -c toUpper.cc\ng++ -std=c++11 -Wall -c Table.cc\ng++ -std=c++11 -Wall -c Connection.cc\ng++ -std=c++11 -Wall -c DB.cc\ng++ -std=c++11 -Wall -c Pattern.cc\ng++ -std=c++11 -Wall -c Type.cc\ng++ -std=c++11 -Wall -c hardcoded.cc\ng++ -std=c++11 -Wall -o sql sql.cc toUpper.o Table.o Connection.o DB.o Pattern.o Type.o hardcoded.o\n./sql\nmkdir -p Borislav_Stratev_B_2 \nmv *.sql Borislav_Stratev_B_2 \nmake clean\nmake[1]: Entering directory `/home/ivo/MySql_OQM'\nrm -f *.o sql *.sql\nmake[1]: Leaving directory `/home/ivo/MySql_OQM'\nmysql -u ivo  \u003c Borislav_Stratev_B_2 /creates.sql\n/bin/sh: 1: mysql: not found\nmake: *** [all] Error 127\nivo@ivo-Inspiron-5558:~/MySql_OQM$\nivo@ivo-Inspiron-5558:~/MySql_OQM$ ls Borislav_Stratev_B_2/\ncreates.sql  inserts.sql  migrates.sql  selects1.sql  selects2.sql\nivo@ivo-Inspiron-5558:~/MySql_OQM$ \n\n```\n\n## With mysql and access:\n\n```\nivo@ivo-Inspiron-5558:~/MySql_OQM$ make\nrm -f *.o sql *.sql\ng++ -std=c++11 -Wall -c toUpper.cc\ng++ -std=c++11 -Wall -c Table.cc\ng++ -std=c++11 -Wall -c Connection.cc\ng++ -std=c++11 -Wall -c DB.cc\ng++ -std=c++11 -Wall -c Pattern.cc\ng++ -std=c++11 -Wall -c Type.cc\ng++ -std=c++11 -Wall -c hardcoded.cc\ng++ -std=c++11 -Wall -o sql sql.cc toUpper.o Table.o Connection.o DB.o Pattern.o Type.o hardcoded.o\n./sql\nmkdir -p Borislav_Stratev_B_2\nmv *.sql Borislav_Stratev_B_2\nmake clean\nmake[1]: Entering directory `/home/ivo/MySql_OQM'\nrm -f *.o sql *.sql\nmake[1]: Leaving directory `/home/ivo/MySql_OQM'\nmysql -u ivo \u003c Borislav_Stratev_B_2/creates.sql\nmysql -u ivo \u003c Borislav_Stratev_B_2/inserts.sql\nmysqldump -u ivo exam \u003e Borislav_Stratev_B_2/export1.sql\nmysql -u ivo \u003c Borislav_Stratev_B_2/selects1.sql\nid\n2\nmysql -u ivo \u003c Borislav_Stratev_B_2/migrates.sql\nmysql -u ivo \u003c Borislav_Stratev_B_2/selects2.sql\nid\n1\nmysqldump -u ivo exam \u003e Borislav_Stratev_B_2/export2.sql\nivo@ivo-Inspiron-5558:~/MySql_OQM$\n```\n\n# Examples:\n\nhttps://github.com/NoHomey/NoHomey-_Rep/tree/master/sql\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnohomey%2Fmysql-oqm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnohomey%2Fmysql-oqm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnohomey%2Fmysql-oqm/lists"}