MySQL help figuring out structure of databases - mysql

I am a java programmer trying to make the jump to web development and database management. I am trying to figure out the structure of web services in general and I will try to ask some questions that lead to definite non-abstract answers, but I barely understand MySQL so please forgive me if my question has no answer, or is wrong or something.
I understand the concept of a relational database, but I don't understand the how it is implemented in MySQL or SQL in general. Is there a database file somewhere I don't know... Basically my question is how does MySQL store databases and what is the proper way to interact with them?
also is there a way to set up a MySQL database that is not on a server?

Follow the directions here: http://docs.oracle.com/javase/tutorial/jdbc/basics/gettingstarted.html , for MySQL.
Most RDBMSs, including MySQL, are implemented as servers to which your Java program connects using the JDBC interfaces. There are a few that have local files -- derby, sqlite, access -- but not in general.
Basically, it goes like this:
Java program issues a connect request to a server.
RDBMS Server accepts connect request.
Java program prepares a SQL query, like
SELECT name, address FROM customer WHERE status = 'active' and zip = ?
Java program binds variables to the query. e.g. variable 1 = string '90210'.
Java program issues query.
RDBMS carries out query, and sends a result set to Java.
Java program receives result set row - by - row and does what it needs to do

Related

connecting already existing database in a local environment

I have an access database that connects to a vb6 application and this whole thing is connected between two computers via a shared network one running win 8 and other a win 7, and there is no internet involved in any sorta way nor should it be that is a requirement in fact
sorry I advance I have tried researching on the net but there is really short time and a lot of confusing material online
I am creating a WPF app connected to MySQL DB
now I have copied the access file and imported the contents of the DB in MySQL
things are a real mess in the imported DB so I am fixing it
what I am confused is how I am going to make it work there
do I go and install MySQL and do the whole process manually there, repeating all the steps and changes
is made
make a document that contains the code/script for all the changes I have made and run the data through
it, and is there even a way to implement that as a whole in a singular go
connect both databases together, i don't even know if this is possible
yes, in place of a simple "file share" of the Access file, you now are going to run some kind of SQL server system. In this case MySQL. But it could be PostgreSQL or any kind of "server" database.
That instance of "sql server" thus has to be setup, installed and you ensure that the "box" running that instance of MySQL also allows external connections (often by default the given computer firewall settings prevent this).
At that point, 2 or 10 different computers on that same network can now simply connect to the SQL server. The code of course is going to be VERY simular. You almost for sure used the oleDB provider for use with Access. However, you can use the ODBC provider, or even use the provider from MySQL. Those providers thus means you change the connect object, datareader object etc. However the "base" .net types such as row, or datatable, or dataset can remain as before (so you only change the provider). If you have a lot of code based on oleDB, then you could well consider to contine to use that oleDB provider code in .net, and thus you change the connection strings to now point to MySQL.
If you don't have a lot of code, then for sure do adopt the mySQL provider for .net. But as noted the least amount of changes would be to continue to use a oleDB provider for mysql, and that would suggest the least amount of code to be changed.
As for the msaccess data migration? Well, it not clear what tools and how you doing that now. But, once you transfer the data to the MySQL server (assuming you installed + setup my sql to run on one computer). The it is a simple matter to point your .net connection(s) in your code to Now MySQL as opposed to Acess. As a result, most if not all of your code logic for working with the tables can remain as before - but as noted you have to swap out the provider parts in .net
Now, if your REALLY lucky and the .net code used the ODBC provider? Then all you have to do is change your connection strings. And of course "some" SQL syntax in your code may have to be tweaked, as like Oracle, MS SQL server, postgreSQL, and MySQL?
Well, they all have some features and syntax that is different - this is especially in regards to date/time calculations, datediff() etc. But the general sql you have/had in your .net code should continue to run mostly un-changed against MySQL data tables.
As for how to migrate the data? I think that a really good tool is of course to use MS-Access. What you do is get MySQL up and running. Then use ms-access to open that database. You then add linked tables from MS-access to the MySQL tables.
At that point, you can now run append queries from Access to move/send the data to MySQL. It really depends on how many tables, and how many related tables are in that database. The more complex and the greater number of related tables in Access then the more the challenge to move such data up to MySQL.
Transferring Excel or a small or even big table is a breeze. (again, use MS Access and link to the tables on the sql server). However, where things can become messy is that if you have say 25 tables, and they are all related, many have cascade delete and say enforced parent to child relationships. So the more tables, and especially a larger number of related data tables, then the more work such a data migration task will become.
I think MS Access is a really good tool, since if you setup a connection to MySQL, then you can execute a transferDatabase commend in Access to send up one table to MySQL, and even all the columns and data types for those columns will be automatic created for you. So not only can Access transfer the data, but MORE valuable is it has the abilty to create the target tables on MySQL for you - and that will save you large amounts of time to build + setup the tables on MySQL.

SQL database questions [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 7 years ago.
Improve this question
So I have a couple questions that I would like to have cleared up for me. I have searched all over the internet for a month trying to find an answer to these questions. I really want to learn SQL and understand how the language interacts with its database. So here are a couple questions that I have had.
My understanding is that there is MySQL and other software applications that help you interact with your database. What are some other applications that could let me interact with my database?
If I am using MySQL where is the data being stored? On my computer or on a database somewhere else?
Where can I go to get a free SQL server and interact with it using an oracle application to interact with my database?
Can I store files and images in an SQL server?
So, lets say I have an SQL database and it has TONS of traffic running through it. What would I do to split the servers up, but still have then interact with each other? Would I create a database that tells where to send that data?
I know that Oracle, Microsoft, etc. have free SQL servers. Can somebody point me in the right direction? I am not exactly sure where to go to actually put my tables and such on a database. I do have the application however.
I have tons of other questions, but I will search as hard as I can for those. Thanks you for your response in the advance.
My understanding is that there is MySQL and other software applications that help you interact with your database. What are some other applications that could let me interact with my database?
MySQL , SQL Server , Oracle are softwares to be precise
Relational Database management systems RDBMS, they Manage (Store, retrieve ,
modify) data for you.
If I am using MySQL where is the data being stored? On my computer or on a database somewhere else?
Data will be stored in a database, database is really a file on your computer's
file system but you will not directly work with the actual physical
file, you will only work with the RDBMS and the RDBMS will manage that
file for you.
Where can I go to get a free SQL server and interact with it using an oracle application to interact with my database?
SQL Server Express is a free version.
Can I store files and images in an SQL server?
Yes in SQL Server you have the ability of storing files/documents using a feature
called FILESTREAM.
So, lets say I have an SQL database and it has TONS of traffic running through it. What would I do to split the servers up, but still have then interact with each other? Would I create a database that tells where to send that data?
For load balancing SQL Server has a feature called Replication
I know that Oracle, Microsoft, etc. have free SQL servers. Can somebody point me in the right direction? I am not exactly sure where to go to actually put my tables and such on a database.
Download link for Microsoft® SQL Server® 2012 Express
1) I think you might be getting the actual database software and the user interfaces confused for example MySQL is a piece of database software that manages the data stores retrieves it etc. phpMyAdmin is a GUI that you can use to interface with MySQL rather that writing SQL queries. There are other variants of SQL like SQL*Plus and i'm sure there are phpMyAdmin equivalents for all of them however I have only ever used them with the command line. Another alternative is something like MongoDB which is a noSQL database.
2) The data is stored wherever the database is installed. You could run it on a local server. LAMP (linux), WAMP(windows) or MAMP(mac) is the easiest way to get this set up. again look on youtube 100s of tutorials on this
3) http://www.oracle.com/technetwork/developer-tools/sql-developer/downloads/index.html I havent fully looked into this I must admit
I wont bother carrying on because M.Ali has posted a very good answers to the rest of the questions
Let's see if I can help you with this:
My understanding is that there is MySQL and other software applications that help you interact with your database. What are some other applications that could let me interact with my database?
MySQL, SQL-Server and others are Relational Database Management Systems (RDBMS for short); they are database software that help you store your data, following the relational model (columns are fields, rows are data-tuples, etcétera). RDBMSs handle the task of storing, updating and retrieving the data, but they are not, by themselves, "applications". An application (as I understand it) is a program designed to interact with a user, and sits between the user and the data stored in the database. So, this is a little schematic of what is going on
Database Application User
-------- ----------- ----
Stores data Receives user input/output Interacts with the app
and sends / updates / reads
data to/from the database
If I am using MySQL where is the data being stored? On my computer or on a database somewhere else?
It's stored in the computer where it's installed (in the simplest configuration). Each RDBMS may handle the data storage differently, but the bottom line is that the RDBMS "worries" about the data storage, and let's you handle the data with a "simple" and "consistent" language (most cases, using the particular SQL "dialect" of the RDBMS)
Where can I go to get a free SQL server and interact with it using an oracle application to interact with my database?
What do you mean by "Oracle application"? Oracle, as far as I know, is a RDBMS. If you want to get the free SQL-Server, go to the Microsoft Site and download it.
Can I store files and images in an SQL server?
Yes
So, lets say I have an SQL database and it has TONS of traffic running through it. What would I do to split the servers up, but still have then interact with each other? Would I create a database that tells where to send that data?
Many RDBMSs have tools to handle this (partitions, replication, etcetera). Read the documentation.
I know that Oracle, Microsoft, etc. have free SQL servers. Can somebody point me in the right direction? I am not exactly sure where to go to actually put my tables and such on a database. I do have the application however.
Google around. MySQL is free, PostgreSQL is free. SQL server has a free version. Also, Google around for a good SQL tutorial (I'd recommend you to learn how to use MySQL, because it's one of the easiest ones).
You should narrow your research. If you want a free, fully featured RDBMS, I'd recommend you use MySQL or PostgreSQL (I don't use SQL server, but that's just me). Also, if you want to develop applications, you should learn how to develop with other languages. Most (if not all) languages have libraries designed to interact with databases.
I would start here: http://www.w3schools.com/sql/sql_intro.asp. W3Schools does a decent job explaining the basics. From there you could branch out to http://www.tutorialspoint.com/sql/sql-rdbms-concepts.htm. A Google search from there would suffice to answer any other questions you may have.
MySQL, Oracle, and SQL Server are some that are used to create SQL databases.
MySql can be stored locally or on a host (godaddy).
MySql is free. I believe you have to pay to use the others.
Yes.
When you get to that point, you'll want to either hire someone, or work on databases and web traffic till you understand a good amount.
I would check with Godaddy, or some other web hosting site, and they can provide free advice.

Transfer data from Oracl to MySQL -- script

I have two databases. The first one is a Oracle Database and contains a table that I want to transfer to a MySQL Database. The databases are not on the same server.
Which programming language should I use ?
Is there an other method instead of writing a programm ?
And how can I do it ?
In addition this transfer should happen in a regular frequency. For example every hour.
(I can tell the Task Manager to run a programm at a specific time so that would be no problem if I would have a program.)
I already tried Python, but as I have to install every single module for MySQL and Oracle and the Oracle module is not working I decided to give up on this.
It should be simple and quick.

Configuring mysql linked server with db2

I have two database server one is mysql another is db2 both are running on different machine.I want to fetch records from tables from both the database by using a join.i have studied about linked server concept but the problem is i couldnt find any example for creating a linked server with db2(all i can find is SSMS i.e use Sql Server Mannagement Studio for creating linked server) but mine is case is of mysql and db2 and i need to create a linked server to one of them/vice versa.
Please suggest some help how can i achieve this.
Thanks in advance!
In DB2, there is a feature called federation (part of Information Integration), that allows you to present external resources to DB2 (wrapper and nickname); you can query those external resources from DB2, and even you can do joins between different sources (Other DB2 databases, Informix | MSSQL server | Oracle | MySQL databases, flat files, etc.)
In order to query external resources, this feature requieres a special licence. Instead, if you want to query other DB2 or informix databases, this feature does not requiere extra license because it is included as free (these are the IBM databases).
In order hand, there is an option called table functions. These functions return a table when they are called, and then, you can join the returned data with other table. These functions can be developed in SQL PL (IBM procedure language), C or Java.
With this second option, you can create a table function in Java, that queries the MySQL table, and then returns the data to DB2.
I have written an example about how to query a 'topic' in Twitter, and return that data to DB2. You have to do almost the same, but instead of querying Twitter, you configure your other database.
http://angocadb2.blogspot.fr/2012/02/accediendo-tweeter-desde-db2-table.html
#AngocA it doesnt work but thanx for ur suggestion .
After a long search i myself come up with an answer for the above self post and thought of posting it here as it will be helpful for others in case of any combination of scenario where we need to fetch data from two different database server which r remote/local in nature and when linked server concept fails.
We may use a third party jar called as Unity Jdbc which we can use in our java code in simple manner for loading driver then getting connection same like old jdbc.
1)Load driver like thisClass.forName("unity.jdbc.UnityDriver");
2) Get connection like this DriverManager.getConnection(jdbc:unity://test/xspec/mysqldb2.xml);
3) Get Records(DDL/DML)
4)Close Connection
one can visit Unity Jdbc http://www.unityjdbc.com/
Using this jdbc in our code we actualy load an xml based file which has definition of desired datasource of our requirement.
once everything is set one can then easily form a query from two different tables from two different remote databases. syntax : dbname.tablename.fieldname
Addingly we dont need to handle any further xml configuration for closing internal connection created after closing the outer actual connection.
Any issues write revert back.

Update MySQL database from SQL Server in different domain

I am SQL Server developer and the current assignment is little different than what I have done in past. I found Stack Overflow very promising for my problem. I am working on the SQL Server 2005 database for the internal application for my client and the client also got the public facing web application with MySQL database. I do not have any details about this web application, but I got the assignment to update the MySQL database (on public domain) from the SQL Server database (internal domain) on daily basis as auto process. How can I achieve this through the SQL Server?
You might want to try Pentaho Data integrator.
http://wiki.pentaho.com/display/EAI/Latest+Pentaho+Data+Integration+%28aka+Kettle%29+Documentation
The product would allow you to speak to both data technologies. (MSSQL+MySQL) You will find the product similar to DTS. You may be able to construct your solution will little to no code.
SSIS will do this just fine. The hard part is determining how you want to transform the data from one structure to the other (I assume they are not exactly alike in terms of table design.)
But basically you create a dataflow task, connect to the SQL Server for the source data and use a query to define what data you are going to copy, then you do any transformations needed to make the data fit into the MySQL structure and connect to a MySQL destination.
Repeat this process for mulitple data sets you want to send to differnt places.
Once the SSIS pacakge is done, set up configurations so that you can run the package on the production server (you will want to test development to development of course!) then schedule the package to run at an appropriate time.
Depending on how different the two databases are and how much data you need to move, this can be a relatively simple process or very complicated.