Lesson 7: Advanced MySQL Concepts - UniversalClass MySQL Course

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
the purpose of this lesson is to learn how to insert data by using a query how to create views how to import an export data from and to flat files how to create tables from a query how to update and delete information from multiple tables and how to replace existing data in a table I'm going to continue using the classic models database that we've used in previous lessons for this first example I want to make a database table that simply has a list of all of our customers and the total amount of money that each customer is paid now I could do that on the fly I could make it a calculated field but for this example I'm actually going to make it as a as a regular table so what I want to do is I want to get information from our customers table and I also need some information from our payments table so what I'm going to do is I'm going to list everything that is in those two tables so select everything from customers and I will open another tab here so select everything from payments so what I have is a list of all of our customer numbers and for each particular item that they've paid for let's check they use payment date and the amount I don't need this information right now what I need is just simply the customer number and the amount so what I want to do is instead of selecting everything I just want customer number and I want to make I'm out okay and in our other table this is the list of all of our customers and their names I only want their customer name for now I'm going to include the customer number but when I'm done I want to get rid of that information so what I want to do is I want to get the customer name and the customer number from this and now I have a list of all of our customers and their customer numbers all right so we talked in the prior lesson where I can actually combine these two tables together because what I really wanted to say is the name of the customer then customer number 103 and the amount that they paid so what I am going to do is I'm going to get the the customers name and put it beside it so I need to actually do a joint so we're going to select information from payments and also from customers so I want the customers table to be our left table so I'm going to say customers and I'm going to call it C and I'm going to join it with payments and we'll call that one P all right so now if I just issue this query then it will it'll give a list to me of all of the customers and all the payments and they'll all be mixed together so if I have 123 customers and 272 payments I would have 123 times 272 rows that would resolve back I have to provide some sort of criteria to make it limit just to the individual customer so I'm going to say on and then c-dot customer number is equal to P dot customer number so I accidentally deleted my piece and you put that back here so now P is P is our famous table C is our customers table and so I'm selecting the customer number from both tables and I need to also specify up here with these are coming from so the customer number is going to be C dot customer number and the amount is coming from the payments table so P alright so I also want the customer names so I'm going to select C dot customer name and just to show you that this relationship works I'm also going to select the same customer number out of both tables so P customer number okay so I'm selecting the customer name from the customer table because for a number from the customer table the customer number from the payments table and the amount from the payments table when I run this I get back a list of all of the customers so if you notice here we have the name of the customer the customers number listed against that we can verify that these work but I really don't need the list of their customer numbers so I'm going to go ahead and just remove those from this and now starting to look more like what I want it to say all right so I don't want it to be the customer name I want it to be something like customer name spelled over capital C so I'm going to do my ask man and then customer name and our amount over here I'm going to call this as payments so I'm just simply renaming these two columns all right so I don't want to see e to the individual charges I want to see a total so for me to do this I need to use an aggregate function so I'm actually not just going to do P dot amount I want the sum of all of their amounts okay so now for me to use a sum an aggregate function I have to group it by the customer name so I'm going to say group by C customer name and I also want it in alphabetical order so I will put it in order by C customer name and there's our statement all right so what we're doing is we are providing our relationship we are going to tell it to add up all the amounts for this particular customer list the customer name and the sum for each customer and group it by the customer name and then put it all in alphabetical order so I run it and I get something like this all right so this works this does exactly what I want it to do but if you notice the payments now don't necessarily add up to a dollar amount I want to fix that luckily MySQL has functions that will let me do that and the one that I want to use is called format and what I want the format is this particular column so I'm going to put that inside of the format statement so now what I do is I'm telling you to format this thing but instead of just formatting it I need to tell it it's a number so we're gonna put it with two decimal places so now I want to format the sum of the amounts such that there are two decimal places and when I run this I guess something that looks like this now now if you notice because I use the format command it's a notice number and i include two decimal places now it actually has our commas for our thousands place I can take this a little bit further I want the payments to actually show the dollar sign at the beginning well there's no way to simply tell it it's money put a dollar sign so I have to put that in there there is a process called concatenation which what that is is taking two text strings and putting them side-by-side to each other so what I'm going to do is I'm going to tell the system that even though this is a number I want it to treat it as if it were text and let me put it beside some other text so I'm going to use the kink at command and once again we're going to put this whole thing in parentheses okay so what I'm doing by concatenation is I'm telling it that hey we're going to treat this whole thing here as a text string all right so if it's text string I can put it together with other things so what I'm going to do is I'm going to put a text string in here of a dollar sign and now what we'll do is it'll put the dollar sign and then have this number following it so if I run this now I guess it looks more like money I can go step further and put a space in here which will put a space between these and now it starts looking a little bit better so now we have our table that has the customer name and their total amount of all the payments that they have ever made all right so where does this table exist this table that I made exists only in memory I want to make this be a real table I want to save it for later now it will not automatically update so if a customer makes a payment we're not making a table that does that we're just simply taking a snapshot of it maybe I want something for archive purposes but what I am going to do is I'm going to add to this command and what I have is I have a statement already which our select statement and I can put multiple statements together and that's okay so what I want to do is I want to tell the system to create a new table that is laid out like this and then I want to run this query and put the output into that table so what I am going to do is my typical create table command and I'm going to call it ticket tow okay so then what goes inside of there is these values all right so now notice I put a semicolon here which means this is a complete statement up here once I add the entries to it and then this one here also has a semicolon so this is another statement so what it will do is it will run this entire statement when this statement is done then it will run the statement down here so I want to add two columns I'm going to have a column called customer number and like our normal declaration I have to tell it what our data type is which is an integer and 11 now here's the catch is that for me to do this in our original table so our customers table and our payments table I have to look at the way that they're laid out and when I create these columns they have to match so I know that in our customers table the customer number is an integer and it's 11 characters and I also want to make this not null so I don't want it to allow somebody to enter a null values into I'm also going to create a total payments column which is a double now I know that this amount column here is a double so therefore I'm creating my total payments as a double and once again that is not at all and lastly I need to set a primary key and the primary key is going to be customer number okay so what it will do is it will run this statement here it will create this table called ticket total with the two columns called customer number and total payments it will set customer number as our primary key and then when that's done I want it to take whatever was in this query here and stick it into that table now right now the way this is set up it will just simply issue this statement in memory but I want it to actually insert this information into that new table so I'm going to type insert into ticket total and then now what it will do is it will take whatever comes out of this query so essentially this table view that exists only in memory and it will actually commit it to the ticket total table now I originally was going to use the customer number but I actually ended up you the customer names so I need to fix this I'm going to enter the customer name as a ver care because that's what it is in our customers table it's a very character is the length and I also need to specify that our primary key is going to be customer name now the other thing that I can't do is I cannot use my formatting when I import data into another table the formatting needs to not be there so I need to get rid of my as statements and I also need to get rid of my concatenation and formatting so I'm going to take and delete all of this information so that I just strictly have the amount when I run this query now it inserts all the information for me so if I perform another query to select everything I'll refresh this so we can see it here's ticket todo and what to select everything from ticket total there's our table now if you notice it went back to having the values where they have the extra decimal places because our formatting doesn't exist but what it does though is it makes it where for archive purposes I have a snapshot of how much this particular customer had paid total in all the payments up until this point now the thing is is that I just made a table that is static this will not automatically update this would be used for archive purposes but what if I really want to know at any moment's notice what exactly this customer is pay so what I'm going to do is I'm going to go back to this and I'll put back my formatting so just undoing and I want to put back my a statement and so what I'm going to do is I'm going to do away with the section where we created a table and insert into so we're just going back to our original query and rot it and what I want to do is I want to create what's called a view and what a view is for is it will let me run this query as if it were a table okay so instead of creating a table this time I'm going to create a few and so I'm going to call it create a view called customer toes and what am i creating I'm creating it as this stuff here so what I'm doing is I'm creating a view called customer totals as my query and what I'm doing by doing this is I'm actually creating a logical table that doesn't really exist that the system will automatically bring up on the fly when I need to use it so when I execute this you will see that it created this and over here I didn't create a new table but instead what I did was I created a view called customer totals and so I what I can do with that now is I can always do a query so I can do select everything from customer totals run the query and I get the same results but what actually is happening it but the difference between the two of them is that ticket total will never change the values in there will always stay the same however the view called customer totals that one will change on the fly every time a customer adds a new new charge to their account so the difference is if I make a table I'm going to make it static and therefore I'm going to use it for archive purposes I'm going to use a view so I can get information that's live without having to re-type that entire court now I created views I really don't want them so I want to go ahead and get rid of them and we can drop them just like we do table so I can drop a table so drop table ticket Oh and execute it and this will delete that table I can do the same thing with views I can drop the view called customer totals and then run it and it deletes the view so I have another one ever they were called total payments that I created earlier and run it and now they're all gone so I can create tables I can create views and I can drop them which means to delete them but once again the difference between the table want to view the table is going to be if I if I create that table that has the total for all the customers that's for archive purposes if I want it to be updated on the fly I want to use a view and step the next thing that I want to work with is the ability to import and export data to letter called flat files and flat files will be things like a text file or a dot CSV which is a comma separated value file if function is kind of like a spreadsheet or I could export to you an SQL file so what I'm going to do is I have a folder that is under my C Drive called out and I want to create a CSV file here that has a list of all of our customers so the way that I do this is in our query editor I am going to I'm going to perform a query but instead of displaying out to the screen I want to display it out to a file alright so what I'm going to do is I'm going to select everything that's in our customers table so select everything from customers which if I run this I get a list of all of our customers but I don't want it to display to the screen instead I want to put it into what's called an out file and our out file is going to be somewhere on our hard drive so in this case I'm using Windows therefore it's going to be on our C Drive if I were on a UNIX or Linux system or Mac then I would I would have to use the logical path of wherever the files are so in this case I want to put it to the C colon backslash out fuller all right so in Windows I would write it C colon backslash and the out folder is the folder we want to put it into and I want to create a customers CSV file the problem is in SQL a backslash means a delimiter so I need to fix it and the way that I'm going to do it is I'm actually going to put two backslashes for each one of these so what that does is it tells it hey the thing that's coming next is a real character so go and use it otherwise you actually get this put into the C drive into a folder file called out customer CSB and we don't want it to do that all right so what I wanted to do is to put the file out into the C Drive into the out folder and a file called customers dot CSV and what I have to do is I have to tell it how to actually write the files or how to write the fields to the file in this format I don't care how they're actually written to the file all i care is that I have a customer number column that has a number at and a customer name column that has a name it well in our output files I could put them in different formats I could have it as a comma separated value file I could put it as a space separated I could put it as a tab delimited so what I need to do is tell it how I'm actually going to be putting information and how it should be in the sheet the catch is I'm going to put the stuff into a CSV file which is comma separated value and if you notice down here some of our addresses have commas in and these commas will actually break our CSV file if we try to open it up in Excel so what I need to do is I need to tell it how to wrap things around fields so that way whatever program opens it knows that this comment actually belongs inside of a field and isn't a delimiter so we're gonna start with listing our fields are enclosed by something so what are we going to put them in alright so whatever I'm going to put them in I put in single quotes to tell it what's going to be in it so if I wanted to enclose all of our fields with the letter A I put the letter A here well in this case I want to put a double quote ok so then the next thing is they're going to be terminated by and this means that in between our fields what's going to specify the delimiter between each field well we're going , because we want a CSV file and then the last thing is how do we tell the system what actually is a field versus item inside of the fields so what I need to do is tell it how to escape from each individual field so it's going to be escaped by and it's actually a backslash but once again our back slashes are reserved so for me to tell it to use the backslash I have to put two of them all right so then the last thing I have to do is tell it how does it make each individual new line because what will happen is that it will just try to write this all out as one long line and if I already try to open it up in a text editor or something else then it would actually open up and all be on one line which would be very difficult to read so I need to tell it that it's supposed to use a carriage return and make a new line so the way that I do that is I say lines terminated by and then how do we terminate them what we have our backslash R is a carriage return and our backslash n is a newline and so we have something like this so what we're doing is we're telling it to select everything from the customers table put it into the out file call that is in the location of C colon backslash backslash customers CSV enclose the fields with double quotes terminate the fields with a comma so delimit them and escape out of each one with a backslash all right so then our lines are going to be terminated with a carriage return and a newline break so when I when I execute this it will actually create this new file for me all right so it says 123 rows affected now if I if I open up this file I can actually open this up in a text editor and I can see that I now have a CSV file so here's our first record notice is enclosed in double quotes the comma delimited delimits it and then we have the next thing as the name of the company comma the last name of the cause of the contact comma the first name of the contact and so forth and the reason for the slash here is that the the backslash tells that that this is a null value so if I have something that doesn't have a value in it I still have to tell if there's something there so notice this is not enclosed in double quotes if I didn't use the backslash this null value would actually be ignored and we don't want that to happen so this value right here is being delimited and it will import that as being a null value so we have our CSV file and now what I could do is if I wipe out everything that's in the table I have a backup copy of it so let's do that we're going to delete everything that is in the customers table so I'm going to delete from customers now the catch is if I try to run this I'm actually going to get an error message and I'll show you why okay so what it's telling me is that I am in safe update mode and what's safe up to update mode means is that I can't delete something unless I specify a key column and this is a protection in the system to prevent me from accidentally deleting something like an entire record because I I looked for a wrong value so I actually have to specify the key column which in this case our key column if I look at our customers table is customer number so for me to actually perform this I want to delete everybody and I know that all of our customers have a customer number greater than serum so I can actually say we're customer number is greater than zero so what I'm doing is I'm telling it this is the key in my where clause therefore I'm in safe update mode it should let me run this quirk there we go so I just deleted everybody from that table so now if I select everybody from customers there's nobody there I've deleted everybody luckily I have a backup copy of it there's actually a few files so I want to import that file back into our database table so we're gonna take all the stuff that's in there and pull it back in all right so this is not necessarily used for backups but it's more used for exporting certain data and importing into another data table but it works the same way all right so what I want to do this time is I'm not going to put stuff into an out file what I want to do is load data from an in file so I'm going to load data and it's coming from an in file that is in C colon backslash and once it going to fuse two backslashes out backslash backslash customers dot CSV and what am i doing with it well I'm going to put it into a table now here's the catch us I have to fully qualify my table name so classic models dot customers and the catch is that I have to know how it was delimited terminated how it was escaped how the lines are rats and everything in the original version so I know that I enclose everything as saying double quotes I terminated each field with a backslash I escaped I'm sorry with a comma I escaped with a backslash and our lines were terminated with a carriage return and a new line if I didn't know that I would have to either ask whoever developed the CSV file or open it up and something like notepad plus plus and look at the encoding because if you show all symbols it will actually show the newline characters and things of that nature to you luckily I know how we did it so I'm going to specify fields are enclosed by a double quote they are terminated by a comma and they were escaped by a backslash so I put two backslashes okay and then our lines were terminated by a carriage return and a newline character like this so now what I do is I'm telling it load the data from this input file that is located at this location into the table that's fully qualified which is classic models customers the fields are enclosed by the double quotes they are terminated by a comment they are escaped by a backslash the lines are terminated with a carriage return and a newline character and when I run this I will get my file or my users back so now if I select everybody from customers now all of my customers are back this is just one way to get data into and out of our MySQL tables there are other ways to do it that we will discuss in future lessons watch to talk about disaster recovery and backups and restoring and things of that nature but if you just simply need to get data out or if somebody sends a CSV file to you then you actually have a means to get that data into your database the next thing that I want to play with is creating a table by using a query so I'm going to select everything from the customers table where the credit limit is equal to zero and what I want to do is I want to create a table that simply has a list of all our customers that do not have a credit limit so I'm going to create this table and maybe I want to have their name and their telephone number in the contact so what I can do is I can create a new table that just simply has that information or I can make an exact duplicate of this table and that's what I want to do is I want to make an exact duplicate the ways that we do that is we're going to create a new table and we're going to call it no credit and it's going to be like classic models dot customer customers okay so now this is actually a separate statement so I have to end it with a semicolon I have two statements that will get run here so the first one will create the table it'll make a duplicate of this one without any data in it so it actually just simply models the structure of the table and then this statement will actually put data into that table all right so in our customers table we actually have 123 customers in our list of customers with a credit limit of 0 we have 24 so what I'm actually going to be doing is creating a table that should have 24 records in it before I can run this I need to tell it to input this information into this particular table so I'm going to say insert and then list the name of the table where it's going to go so it's going to go into no credit so we create the table we call it no credit it's going to be modeled like our customers table so it has the structure of our customers table we are going to perform a query which we select everybody from the customers table where the limit is equal to 0 and then insert that into no credit execute this query and now we have a new table so if I come over here and refresh now I can see that we do have a table called no credit and if I want to see everybody that's in that table there is everybody so now this table is 24 records it's just simply the people have no credit limit everybody else is in the other table you sometimes you'll encounter a scenario where a customer needs to get a new customer number or let's say I'm using something as a primary key and I need to make changes to it what will happen is I have to go through every table that has that customer in it and change their customer number and that's exactly what we are going to do here so what I want to do is I want to see everything from our customers table and here's our customers table you notice everybody has a customer number so what I want to do is this customer here number 103 they need to change their customer number to three thousand one all right so what I can do is I can look at each of our tables and I can see there's a customer number in here and their customers there is not one under employees the no credit is one that I created we can go ahead and drop that our offices table does not have anything to do with a customer and ever our order details does not have a customer number our first table does have a customer number though okay so so far I have orders customers and then if I come down I also have payments that has a customer number and then products does not so I need to change this person's customer number and not just one table I have to do it in all three tables and so what I need to do is I need to come up with some way to very easily change their number without accidentally changing it to the wrong thing or if I do change it to the wrong number I need to make sure that it gets updated to the wrong number and all the tables alright so what I would do is I would do a transaction where we update the customers table and we set the customer number equal to something and then we update the payments table where we set the customer number equal to something and then we update the orders table and set the customer number equal to something the problem by doing that is I very easily could mistake my actual number so let's let's do that real quick I'm going to say update our customers table and we're going to set the customer number equal to three thousand one we're the customer number it already equals to 103 okay so that works all right I have to do that with the other one so I'm going to say update and then we'll do payments and then we're going to set the customer number equal to three thousand one weird the customer number is equal to 103 oh wait a minute I just typed it as 130 and I don't realize I did it I now end up breaking our database so I don't want to do that but I am going to tell you about the rest of this command and I'll show you how this actually will will work without having to type them a whole bunch times so I'm going to update orders same thing we're going to set the customer number equals equal to three thousand one we're the customer number is equal to 103 okay so this would actually do it but like you said this one right here would be broken because I have the wrong number typed in okay so I'd have to go back and I have to fix it luckily I caught it but if I didn't there's no easy way to go back and find that record and fix it without manually going through the whole database all right so why need do is I need to use we're called variables so I'm going to create a variable by using the set command and then I'm going to call it at old cust names this is the old number sorry the old customer number and I want to set it equal to something and to set it equal to something you put a colon and an equal sign and then the old customer number was 103 and so I also want to set a variable for the new customer name our customer number so new custom and colon equals to set it equal to three thousand one alright so now what that does is lets me down here instead of saying three thousand one I can say at new customer because this is what the new ones going to be we're setting it to the new one where it is equal to the old one so at old custom okay so now I want to change it here and this is the old one and do the same thing here so at new custom and this is the old one so at old now each one of these is a statement so they each get their own semicolon but what this does is creates what's called a session variable which means it's good for all of the statements that occur within this same query window so this session variable get created it gets changed to 103 this one gets created has changed to three oh three thousand one and it will let me run it alright so I think I'm ready to actually do it well the thing is that I'm I need to do what's called a transaction because what would happen is it will issue this update court great then it will issue this update query great and it will do this well what happens if this one works but then this one fails then what will happen is it's broken so what we want to do is we want to use what's called a transaction and what a transaction does is it actually makes it where if if any part if any one of these statements doesn't work we'll want to actually commit the change to the database so what we want to do is we want to tell this section is a transaction so we're going to start our transaction here and then we're going to come all the way to the end and we're going to tell it that when the transaction is done we want it to commit the information to the database table so what will happen is if it runs the first one and the second one fails then none of these will get committed to the database they only get committed if they are all successful all right so I should be able to run it except for one other thing so I want to show that to you I'm going to run this and it says that I'm using seif update mode now let's see if update mode is same thing as before I didn't reference anything on the key column well the problem is is their customer number may or may not be the key and in this case I'm using a session variable so it doesn't check to see if it's the key column so I have a couple of options my options are to flat-out turn off save update mode for the entire system which means everybody can make changes to it without regards to using the key or I can do it temporarily in here so I have one more set command that I can use and the what I want to do is I want to turn off save updates just for the purpose of this course so I'm going to set sequel safe updates equal to zero so I'm going to turn off safe updates and then what if it gets committed or when it gets committed then we're going to turn it back on so sequel safe updates equal to one so now what it will do is it will create the session variable so it puts these values into this variable names it turns off safe updates it starts a transaction which means that all of these statements have to run and be successful and then when they're successful then they will be committed and it will turn a safe updates back on so now when I run this now I get where it actually did it it actually let me you change their name all right so if I go and look at the customers table so select everything from customers run this I know no longer have a 103 so I want to see 103 so let's do this so we're customer number is equal to 103 doesn't exist okay but if I go and search for 3,000 won now I get our customer back but not only did we do it in customers we did in payments and we did it in orders so now what I've done is by creating a transaction I've made it where we update all of them or none of them it can't just do one of them and the other ones fail it has to be successful for all of them and we used a session variable so that way we didn't have to list the name or the number to be used for each of these so that way if I accidentally change it once again I don't break anything because they would be broken in all the tables and therefore they'd actually still work out because it would still be a unique value so in this case I have a session variable for the old number session variable for the new one and then we just simply reference those in all of our statements that belong to our transaction the last thing that I want to do to this database is we receive notice from the vendor that the price of their items is going to be going up so we should increase our sales price so what I want to do is I'm going to look at everything in our products table and every item in here has a price that they call MSRP so what I want to do is I want to look at the product code the product name and MSRP for each of the things that's in this table okay so this is what we have as our table and right now our harley-davidson ultimate shopper is 105 dollars and 27 cents but they have told us that the price these items is going to increase so what we actually need to do is we need to perform a query that will let us increase the price of all the stuff that's in that table so what I want to do is I want to update the products table and I'm going to set the MSRP column equal to whatever the MSRP is right now times whatever I want it to be now the thing is is that I want it to be a 10% increase over the 100 percent of the purchase price so I'm actually going to increase it by one hundred and ten percent so I'm minute I'm sorry I'm not gonna agree so I'm going to set it to hundred and ten percent so I'm going to set it to one point one zero so this is the same as one times whatever the price was now plus an additional ten percent so in other words increase the price by 10% and I want to do this for all of our products but once again we have a column that we're modifying this not the key column so if I look at the columns here our product code is actually our key column and so what I need to do is I have to tell it to do it for all of these well what I know is that this is a text value it's a very care and so what I want to do is I want to say that for all of our products that have a product code greater than no value at all so what I'm going to do is going to make a where clause that says where product code is greater than okay now if it were a number value I would say zero but in this case it's text and I want to say that it's greater than nothing so I'm going to put it in two sets of double quotes so now what it does if the product code is greater than no text value listed at all which remember is different than null this just simply means that nothing was a turd we're going to update the MSRP so right now our Harley chopper was 105 27 and when I run this query it will take all our products and increase the price by 10% all right so watch our price here this 105 27 when i refresh that price now went up but what happened was when I perform the calculation it now has additional decimal places which we really don't want in our in our system we want them to be in the format of money all right so what I'm going to do is I'm going to put it back by dividing by one point one zero so now when I go back now it's back to 105 27 so this time I'm going to multiply but I want to format this so I'm going to use my format command and how do I want to format this way I want a format where the MSRP times one point one zero has two decimal places so now what I'm doing is I'm telling format this value then stick it into the MSRP so that way it only has two decimal places run it and then now when I come back over here my 105 27 should increase but now it is increased to 115 point eight now there are actually two decimal places but by default it will only show me the first decimal place that the remainders are zero so there are a bunch of zeros out here just ignores those but when we pull this up in a program we would actually be able to format this and we will see this is 115 and 80 cents same thing here this is 30 cents and this one is 91 because there are two decimal places but if I scroll down and look you will notice that they all have no more than two decimal places now so what I've done is I updated the table I set the MSRP equal to the MSRP whatever is there right now times one point one zero so one plus ten percent and then I formatted it with only two decimal places and because we have safe safe update mode set I had to tell it that we're looking at the product code for all of our products where the product code is greater than nothing in this lesson you learned how to insert data by using a query how to create views how to import and export data from and to flat files such as CSV s how to create tables from a query how to update and delete information for multiple tables and how to replace existing data in a table
Info
Channel: Universal Class
Views: 15,664
Rating: 4.9111109 out of 5
Keywords: universal class, unviersal class, universalclass, universalclass.com, online course, online class, tutorial, training, how to, how to guide, MySQL Course, SQL Course
Id: NPAaZ0GkSsI
Channel Id: undefined
Length: 44min 33sec (2673 seconds)
Published: Tue Jun 21 2016
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.