What to learn next
Congratulations on learning SQL! Now that you've learned all that, here are some ideas for how to keep going.
Try SQL in other environments
On Khan Academy, we created a playground for you to try out SQL with small amounts of fake data. We encourage you to keep experimenting with it here, but you'll likely want to use your skills in an environment with real data.
Try SQL for data analysis. These days, SQL is often used to analyze data that comes from all sorts of places. One way that you can start analyzing data immediately is with Google's BigQuery, which includes a SQL-like language, and lets you upload data or use public data sets. Learn more from the BigQuery documentation.
Try SQL on the server-side. SQL can be used to manage the data in an app's server-side database. A user uses the app via the "frontend" (webpage or mobile app), the frontend sends HTTP requests to the "backend" (server), and the backend issues SQL commands to the database. You can set up a server-side app on your own computer using many different languages/frameworks, two popular stacks are LAMP and LAPP.
Try SQL in a webpage. If you don't have a server setup or data to analyze, you could use SQLite inside a webpage, to store data that the user creates while using the webpage. The data won't be stored when the user leaves the page, however. You can spin-off this example of using SQLite in a webpage.
Learn more SQL
We covered a lot of SQL, but as you use it more, particularly for creating read/write databases to power apps, you should familiarize yourself with all the features available. You can learn more about indexes and query planning, constraints, triggers, views, and foreign keys. It's best if you know which SQL environment you'll be using those features in first, so you can read the most accurate documentation for it.
You could also learn different versions of SQL that are used with popular database vendors, like MySQL, PostGreSQL, Oracle, MS SQL, and DB2, perhaps in combination with learning SQL on the server-side.
Go deeper on databases
SQL is a way to interact with databases, so by learning SQL, you've also learned a fair bit about how databases work. However, you can go much deeper in the area of databases - learning more about the theories, principles, and design - like relational design theory, relational algebra and unified modeling language. One way to learn those is with Stanford's self-paced Intro to Databases class.
Want to join the conversation?
- What websites would you recommend for learning more SQL?(81 votes)
- I would recommend http://www.w3schools.com/sql/ or maybe http://www.sqlcourse.com/(11 votes)
- I want to enroll in a biochemistry related camp at a local university. What kind of computer skills do you think I should learn to be able to research in a biochemistry lab? (Ex: Java, C++, databases)(20 votes)
- I'd say learn Python. It's extremely easy to learn and can be used in practically any discipline. In fact, I just Googled python and biochemistry and found a Python package that can be used for biochemistry at http://pysb.org/.(44 votes)
- Can you provide sample data for a more complex database so students can try messing around with that?(13 votes)
- From the author:Currently it looks like we can't support more than a few hundred rows in our in-browser SQL environment, so the most complex data (found linked from Project: Data Dig) isn't all that complex. I'd love to be able to support bigger sets, but we need to improve the performance first. In meantime, I think BigQuery may have some built in datasets to play around with.(37 votes)
- Thanks for a very well laid out tutorial. The only area I was personally left wishing for "one more section" on would be FOREIGN KEYs if you ever would considering expanding this course.(20 votes)
- Can you use SQL in HTML? For example, in HTML, there is the
- No. The client has ABSOLUTELY no direct access to ANY DB that is not stored on the client. A way to work around this is to issue secured queries using AJAX. If the client did have direct access, it could issue any query it wanted. This would allow it to: wipe the db, steal others' passwords, modify others' passwords, delete records, delete tables, and a bunch of other horrible things.(17 votes)
- But how do you actually incorporate SQL into an application and let it interact with the users? If it's a complex topic, where do I learn about it? Thanks.(7 votes)
- It is usually done on the server side. So the web pages post information to the web server, and on the web server there are scripts or programs that use the posted information and send them to the SQL server and respond.
There are functions for this in the server side programs, like in PHP or Python etc...
So you can learn those or search for some other server side programming.(10 votes)
- I was wondering if khan academy was ever going to release a scratch course(4 votes)
- If you mean drag and drop coding, you can use it here https://www.khanacademy.org/computing/hour-of-code/hour-of-code-blocks/v/intro-to-drawing-with-blocks(15 votes)
- Thank you for this information. Although I know this space is for questions, I really wanted to share gratitude(9 votes)
- Where should I try and get a certification for SQL?(5 votes)
- There are several flavors of SQL, Oracle, Microsoft, MySQL come to mind. Decide which one you want a certificate in and search for a local (usually 2 year) college which may offer class room training and test prep. The tests are not "easy" and you may need to take a series of them to achieve your certificate. Beware of website that guarantee to help you pass your tests. Training and tests can cost a lot of money. Often each test will cost $100 and if you fail, it will cost another $100 to retake it. There are training centers which often have 1 week classes these may cost over $1000 for the training alone.(8 votes)
Which are the preferable environments for practicing SQL outside Khanacademy? Is it possible to practice SQL while offline? Many thanks.(5 votes)