What is a good Visio Enterprise Architect replacement? [closed] - sql

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking us to recommend or find a tool, library or favorite off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Closed 9 years ago.
Improve this question
I've been using Visio 2002/2003 Enterprise Architect to do my database schema design visually and then forward-generate the DDL to create the database.
I wanted to switch to Visio 2007, but while it does have database diagramming support, it doesn't have the ability to generate DDL. Bummer.
I am really disappointed because it seems like Microsoft has completely abandoned this feature. You can't do it in Visual Studio (that I've found). You can sorta do it with SQL Server Management Studio if you insert database diagrams into your database, but any edits to the schema immediately take effect.
Has anyone found a good program to do this? I'm hoping to find one that is free and can generate DDL/SQL for SQL Server.

Unfortunately, I have recently faced the same problem, hoping that MS would provide a new version of Visio Enterprise Architect since I have used it FOREVER to do ERDs/database design. Since this does not seem to be forthcoming from them however, I have been forced to research other tools. The ones I checked out included the following:
Embarcadero ER/Studio
Visual Paradigm DB Visual Architect
Altova DatabaseSpy
Dezign for Databases
Sybase PowerDesigner
Also, I tried to check out DevGEMS Data Modeler but kept getting "the setup files are corrupted" after downloading it. I never considered ERWin as the interface seems too old school/legacy plus it is too expensive. Just when I had almost given up all hope of finding a well-rounded but [relatively] cheap alternative I came across ModelRight. I find it curious that I haven't heard more about this company given that their product is EXCELLENT and inexpensive (under $1000 for multi-DB support or under $500 for a single DB type) compared to other high-end DB modeling tools. Further, the company was founded by one of the first developers to work on ERwin (see their company's "About" page for more info).
To make a long story short, if you want to save yourself a day's worth of research on this subject, check out ModelRight FIRST and go from there. BTW, for full disclosure - I have no affiliation with the ModelRight company! ;^)
P.S. - From what I can tell currently, VS 2010 isn't going to offer a full DB modeling environment but only enough to support the Entity Framework which I am not currently sold on (especially having spent the time to roll my own ORM layer).

This functionality is only available in the "for Enterprise Architects"-edition of Visio. This edition is apparently not sold as a stand-alone product, but it is included in MSDN Premium.
See this article on Office Online: What happened to the Generate and Update commands on the Database menu?

Not free, but very good and simple to use: Dezign for Databases
Draw your model and then you can generate DDL for lots of different databases.

I use Sparks Enterprise Architect. It can create the basic by taking all your database with an ODBC than you can design and reverse change too. It's not free.

Oh, and DBDesigner is pretty good, and free.
http://www.fabforce.net/downloads.php

If you are referring to the Object Role Model diagrams, you can google for that, or for Terry Halpern.
I reverted to VisioModeler, which is available free (but unsupported) at
http://www.microsoft.com/downloads/details.aspx?familyId=27fe6786-a439-4286-b8b6-7a9b84cfa709&displaylang=en

The 'big' ones are CA's ErWin and Embarcadero's ErStudio.
On a side-note, Microsoft appear to have realized the need for modelling tools so they're working on some new modelling tools ("Oslo") that will [probably] be included in VS 2010.

I got tired of hand-coding my DDL from Visio 2007 Diagrams, so I wrote a script to do it for me. I know it's not perfect. But, it works for me. You are welcome to try it out at aboutwhatever.net/posts/visio-2007-database-model-ddl-generation. If there is enough interest, I will look into expanding it's capabilities.

I found Visio to be useful for 2 things:
1) Flows (flowcharts, wireframing, sitemaps)
2) Reverse engineering Databases
other than that, it's really of no use. But still valuable for those things.
Enterprise Architect is the only way to go with DB Modeling.

I recommend Sybase Power Designer
It's easy to use, intuitive, offers partial SQL DDL preview (for selected objects) and uses scripts for automation.
The scripting feature is not very well documented, but after reading some of their sample scripts I was able to do what I wanted.

Visual Studio 2010 Beta 1 has some pretty cool tools for data modeling, especially the ADO .Net Entity Data Model Tools. And yes, you can generate DDL from the models.

Related

What's a quality development environment for writing Oracle SQL? [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking us to recommend or find a tool, library or favorite off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Closed 9 years ago.
Improve this question
The project I'm working on has an Oracle backend, and we use SQL Navigator 5.5 for SQL development and it really sucks: the intellisense doesn't work for queries with more than one table and you can't browse the schema and write a query on the screen at the same time. Not fun.
I also tried using Oracle SQL Developer. That's not much of an improvement either - the graphics on the query results window get all fudged up and have to be repainted frequently by clicking around the screen.
The extent to which I'm writing SQL is pretty basic: a procedure here and there, mostly queries. Can someone recommend a decent tool, preferably one with a low cost?
You may want to check out PL/SQL Developer (http://www.allroundautomations.com/plsqldev.html). It does more than just PL/SQL. Cost is pretty reasonable. On Linux try Tora It is suppose to be a replacement for Toad. Have used to other 2 personally but not the latter.
I'm pretty sure that TOAD is the most used tool. I don't recall how much it costs now days, but I'm generally very satisfied with it even with a slightly older version.
All IDE:s for Oracle DB are more or less bad, TOAD is the best but still nothing comapared to real IDE like Visual Studio or Eclipse.
Main problem with TOAD is the default texteditor. Find is nightmare and you can't change shortcuts and auto alignment uses spaces even if you configure it to use tabs and other annoying features. Also cancelling queries or making query to disconnected session might crash it. Also the intellisense is kinda slow imo but it works which is better than what others offer.
There are several tools out there you could give a try.
TOAD or DbVisualizer are examples for tools which could make you happier than SQLDeveloper. Altough, most of the available tools are commercial.
SQL*Plus: it's free with the database, and always guaranteed to be there - and there's nothing you can't do with it :)
I used [CAST](http://en.wikipedia.org/wiki/CAST_(software) for 2004-6, and it's quite good. One of the principal reasons for using it was that it supports locking of PL/SQL packages when editing them. Now I use jEdit for almost all developments, and Oracle SQL Developer for easy lookup of table properties and such.
There is a freeware version of TOAD, though it's not as fully featured as the paid ones. You can find it at:
http://www.toadsoft.com/
There is fairly decent support in Emacs using sql-mode and plsql-mode. I wouldn't recommend it unless you are an Emacs user though.
Failing that Toad is fairly good, although it fairly heavy weight.
If you're looking for an open source solution SQuirreL SQL Client is pretty good. It isn't Oracle specific though. It works with any jdbc client.
Another open source tool which works really well is SQL Workbench (http://sql-workbench.net/). Works with all JDBC clients, but we've had alot of success with Oracle. Also includes some scripting support which can be helpful for importing/exporting large amounts of data.
I personally use PL/SQL Developer to develop and Spotlight on Oracle to profile.
Two more options (just for completeness):
Hora
Aqua Data Studio

What does the term legacy database mean? [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Closed 9 months ago.
Locked. This question and its answers are locked because the question is off-topic but has historical significance. It is not currently accepting new answers or interactions.
I read this term a lot. What exactly is a legacy database? I ask because I had thought it meant an old database like dbase or rdb, but I don't think I'm right.
When looking at RoR or Django and "legacy database" integration, what does legacy database really mean? Is it different than a generic term "legacy database"?
In the general context, it can refer to any of the older database technologies.
In a more specific context, it can refer to a database system that was inherited by a team from previous project owners.
legacy: anything from the past that keeps coming around to haunt you.
A legacy database is generally something that you will have to inherit and base some of your design decisions around. Most companies that put out work may already have some other (usually horrible) solution and you need to give them a bigger and better product...
BUT
It has to work with all of their old legacy data. The company is not going to want to manage two different applications just so they can keep all their old records. You will need to develop your solution to be able to migrate the data from the legacy system over into your system. This can have a massive impact on the overall design of the new database, because it cannot stray too far from the previous without introducing a lot of problems in terms of data integrity.
It's usually derogatory in my experience:
Something no-one wants to touch in case it breaks
Databases that can't be maintained (say that SQL 6.5 box lying around)
Someone else's badly designed and implemented database
Something that someone is trying to replace
Supported by the 93 year old wierdo
If it's in-use but still has maintenance or development activities, it can't be legacy...
Edit:
Given the age of the SQL language and the RDBMS, everything is legacy (including my new system due next year) compared to the software listed. At what point does Ruby turn legacy from the database perspective..?
We mostly use the term 'legacy database' as a db schema we can not 'easily' modify without breaking other software/systems using this schema.
this sums it up pretty well.
[edit] Broken link. Here's the quote from FOLDOC:
Legacy System -- A computer system or application program which continues to be used because of the cost of replacing or redesigning it and often despite its poor competitiveness and compatibility with modern equivalents. The implication is that the system is large, monolithic and difficult to modify.
If legacy software only runs on antiquated hardware the cost of maintaining this may eventually outweigh the cost of replacing both the software and hardware unless some form of emulation or backward compatibility allows the software to run on new hardware.
Flat file, hierarchy, and network databases are usually referred as legacy databases. They represent the ways people used to organize information in prehistoric times — about 30 years ago.
Legacy is used to denote the old thing. legacy database is something which continues to be used because of it cost of replacing and redesigning it.
In general context refers to old code inherited. Tipycally cobol code.
It is used for code which it is still used for historcal reasons.
It applies also for DB schemas

Would you consider using an alternative to MS SQL Server Management Studio? [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
At work we recently upgraded from Microsoft SQL Server 7 to SQL 2005. The database engine is a lot more advanced, but the management studio is pretty awful in a number of ways. Most of our developers decided they preferred to stick with the old Query Analyzer tool, even though it had a lot of limitations.
In my spare time, I decided to write a replacement for Query Analyzer / Management Studio that did the things our developers most needed to do. I finally got permission to release it for free: Versabanq Squel (versabanq.com/squel).
Like I said, it's free, so this isn't a sales pitch. But it got me thinking. What I'm wondering is: are most of you satisfied with SQL Studio the way it is? Do people just use it because it's what Microsoft pushes on them? Are there many people out there looking for something better? Maybe I can get some support for long-term development of this, if it looks like there might be some wider interest.
By the way, check out SQL Server Management Studio Alternatives, someone else's earlier question on this topic. What I see there is that there are surprisingly few options. Why do you think that is?
Ha, I came from exactly the same standpoint, so I made a tool, code completion and all, plus there's a free edition available. It's at http://www.atlantis-interactive.co.uk - it's basically for people who miss QA. Your tool looks nice, good job.
While I would love something better, it would have to be significantly better and free. SMS is definetly a hog but I've gotten used to it. What I miss the most is Query Analyzer. I don't mind using SSMS to manage the server but having a fast lightweight, editor for SQL queries would be awsome...
Did I mention free? Not something I'm willing to pay for right now.
EDIT
FYI I downloaded your tool looks neat but you need to add support for Windows Authentications unless I am just missing how its done.
I think Management Studio is far superior to the old SQL 2000 tools. Enterprise Manager was a shocker of a tool, forever hanging and crashing. Query Analyzer is still ok if ALL you ever do is create and run SQL queries, but to be honest once I started using Management Studio I never went back to EM/QA.
I've used Apex SQL Edit before and preferred it over Management Studio. It provided intellisense well before SQL Server 2008's Management Studio.
http://www.apexsql.com/sql_tools_edit.asp
I just moved to developing on linux with mysql and boy do I miss MS SQL Management Studio. It is a fantastic tool. I agree it takes a bit getting used to after using query analyzer, but the query tool in management studio is actually better. I really do not think there is a better alternative. I tried the Apex SQL Edit also but found MS to be superior.
I also suggest using SQL Prompt from Red-Gate to get intellisense (autocomplete). Their other tools are also excellent.
If you are currently developing (or will start developing) using the .NET 3.5 Framework, then I suggest you give your developers this little handy application: LINQPad
This will help your developers learn LINQ (an Integrated O/R Mapper that makes .net developers' lives much easier) syntax, and at the same time use a more-light weight SQL management application
This advice is only valid if you're developers are using Microsoft's .net 3.5 Framework
I was quite happy with the Enterprise Manager of 7.0 and 2000. I kind of liked the ideas of MMC snapins. As long as you remembered to hit refresh, it wasn't that bad.
The new 2005 Management Studio is ok too. I see no point in choosing anything else. I fail to see the grand improvement that could justify a move for me. Everybody seems to use the stuff that comes with SQL Server, and compared to the stuff that comes with Oracle, it is pretty good. Oracle developers have more choice, and it is no mystery!
Books Online is great, and has been since 7.0.
My favourite part about Query Analyzer is and has always been the execution plan view. It's such a Good Thing!
Every new version of SQL Server has a lot of new stuff, but sadly some stuff gets dropped too. I think it's sad that English Query is gone. I never found a project for it, pushing it in Norway was part of the problem, but I thought it was brilliant.
I have tried a handful of them including TOAD, ApexSqlEdit and a couple of others. The problem with all of them is that while they include great features Management Studio is missing they also lack critical features Management Studio already has, I always found myself with two windows open, my third party editor and Management Studio. This is one area where I think Red-Gate has really nailed it, they don't try to replace management studio, just make up for it's deficiencies by extending it, adding intellisense, light refactoring, and code formatting. So far my favorite solution by quite a margin is Management Studio with RedGate SqlPrompt Pro added in for the intellisense and formatting which boost my productivity quite a bit.
SQL Server Management Studio 2008, when used against a SQL Server 2008 database, supports Intellisense for SQL Queries. Nuff said!
edit: sorry, didn't realize you said SQL 2005. Eh, I like SSMS 2005 as well.
I, for one, would definitely like something other than Management Studio. Is it just me, or do other people feel that it is wayyyyy slower than SQL Server 2000's Enterprise Manager? More features or not, I need something that can get the job done quickly.
I was having issues determining how to set up user permissions on SSMS. Eventually I accidentally ran into the correct way to do it and it works nicely now. I never used any tools previously for SQL Server so I can't compare but I think this does everything I need it to at the moment.
Anything is better than the tripe called SQL Server Management Studio. Sorry, but it's plain awful for us non-DBA guys. Maybe you DBA and programmer types like it, but it's a major PITA for those of us who are just the Server guys who schedule backups and such. It's slow. SLOW. And the Maintenance Plan interface is a living nightmare of bugs and gotcha's. Enterprise Manager wasn't perfect, but it was far, far easier to use than SSMS.
It really reminds me of Visual Basic 4 compared to VB3 - MS was trying to go in the right direction, they just did a really poor job. Of course, we eventually got VB6, so maybe in MSSQL Server 2011 we'll have something decent again. But for now, I just wish I could run Enterprise Manager against my SQL2005 servers, as SMSS makes me batty.
However, I haven't yet had any problems running the Query Manager from 2000 against my 2005 servers, at least not for the simple queries I do. At least that still works.
Management Studio is imperfect, and has a few bugs but I find it FAR and away better than the old 2000 tools. No contest. I use SSMS 2008 to manage all my servers including the SQL Server 2000 (ack!) instances.
Even with its warts, I have yet to see someone create a tool that is better for what it does - nobody probably has time to (re)build out every feature.
My 2 cents.
Yes, but they have almost always had their own problems.
Out of all of them, I used Toad for quite a bit, but found it to be a bit less responsive compared to Management studio. Maybe it was the building of intellisense (which was also very picky - it always required me to put in the Database.owner. prefix and had trouble with aliases), but it just didn't feel as comfy.
Back to SQLMS...

Is Microsoft BizSpark a good deal for startups? [closed]

Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 10 years ago.
Improve this question
I learned about Microsoft BizSpark the other day and started the sign up process. Has anyone else heard about it or had success with it?
I can't speak for BizSpark specifically (it's so new), but Microsoft has had the similar Empower program in place for 5 or so years. When our company was originally getting started, we joined the program (and participated for two years) and it was an excellent program.
The main benefit, of course, is that you get access to MSDN Subscriptions at such a low cost. Aside from that, though, it put us in touch with the local Microsoft office and gave us a clear path to working toward the typical ISV Partner relationship. You also get some technical support incidents, which are handy when/if you need to escalate an issue you're running into.
The requirements for Empower were/are pretty straightforward... basically commit to releasing a commercial software product based on the current Microsoft stack within two years.
Hope that helps... I look forward to hearing more about how BizSpark is different - or if it's simply the next evolution of Empower.
Well I have just signed up... yes of course there is an "end game" amount to pay.. but if you were going to use Microsoft technologies anyway.. then it's an awesome deal.. I have the software now (today), and there is everything I need to develop the project I am working on... Open source is excellent, don't get me wrong.. but you have to decide for the right reasons...
I think it is a great initiative, they are giving away the highest (most expensive) licenses of Visual Studio and VS Team System. With Empower you get Visual Studio Professional Edition with MSDN.
It is important to point out that this is NOT intended for consultatnts, there is a seperate program called Microsoft Action Pack Subscription that is more geared toward that audience. The Bizspark program is for software vendors, I suppouse it will have some kind of requirement similar to what Empower had, where you have to release commercial software within certain time period.
Let us know how your enrollment goes...
I joined it and empower recently. I think it is a great deal. I had an old MSDN set of software I was using and wasn't relishing the thought of spending all that money for my startup that has no current revenue.
Apparently MS really wants to get back to enticing developers to its platform.
One of the downsides I could see (or upsides depending on your view) [and this requires a health cynicism] is that MS uses this program to
identify potential markets for it to jump into and trounce the competition
identify startups it wants to purchase.
It has all your information in its database - the type of business, etc.
I still joined - no big deal, but for those who already think MS if the big bad wolf this might rub them the wrong way.
I think BizSpark is a great opportunity for startups which either
know they will use Microsoft technology
doesn't know what technology to use
The ones who doesn't know which software tools or programming language to use can test the Microsoft ones along with Open Source or other freely or inexpensive alternatives.
This way they can choose the technologies which suit them best - also when it comes to expenses for licenses - and remember to calculate the time you use to manage the licenses too.
The most enjoyable greetings
Claus Agerskov, SALDI - the Danish Open Source ERP
My $0.02 is that it's a trap. MS knows that many startups, especially the ones without venture capital (which in my book makes them "real" startups), are flocking to open source technologies both because of the cost savings and the control over your destiny -- the ability to fix bugs, modify things, and prevent vendor lockin that are the best parts of open source. MS is trying to trick them into becoming locked in. I'd steer clear. But I'd also steer clear of venture capital for similar reasons. IMHO, a startup that is going to actually go places (more than just being acquired and becoming a money sink like most bubble companies) is founded by a small group of knowledgeable people and funded out of those people's own pockets. Doing what you love because you want to, not because you're getting rich at it is why they have the drive to succeed and innovate that bigger companies don't have.

Tips for getting started with SQL? [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Closed 1 year ago.
Locked. This question and its answers are locked because the question is off-topic but has historical significance. It is not currently accepting new answers or interactions.
I've never had much need for programming with databases. Since their use is so widespread it seems like a good thing for me to learn. SQL seems like the place to start, possibly SQLite and maybe the Python bindings. What would you recommend for someone new to this? Libraries, tools and project ideas are all welcome.
Structure Query Language (SQL) is the language used to talk to database management systems (DBMS). While it's a good thing to learn, it's probably best to do it with a project in mind that you'd like to do. It's funny you say you've never had a need, because I'm the opposite, almost every program I've ever written has used a database of some sort. The vast majority (mostly web-based) revolve around using a database.
Learn about relations and database architecture. This means how to structure your tables, make foreign keys and relations.
For example, you might have a movies database. In it, you store information about the Movies, Studios that released the movies, and the Actors in the movies. Each of these becomes a table. Each Movie is released by one Studio. Since you don't want to store duplicate the studio information (address, etc) in each Movie entry, you store a relation to it, so each Movie item contains a reference to a Studio item. This is called a one-to-many relationship (one studio has many movies). Likewise, you don't want to store Actor information for each Movie. But one Actor can be in many Movies, so this is stored as a many-to-many relationship.
Learn SQL itself. SQLCourse is a good place to get started, but there are many other books and resources. SQL is a standard, but each RDBMS has its own vendor-specific ways of doing certain things and other limitations (for example, some systems don't support sub-queries, there are several different syntaxes for limiting the number of rows returned, etc). It's important to learn the syntax for the one you're using (eg, don't learn Oracle syntax and then try and use it in MySQL) but they are similar enough that the concepts are the same.
Tools depend on the DBMS you use. MySQL is a pretty popular database, lots of tools are available, and lots of books. SQLite and Postgresql are also quite popular, and also free/open-source.
If you can, you really want to find someone who knows how to use it, and pick their brains. That's because there are a lot of important principles (eg 3rd normal form) which will are a lot easier to learn through discussion rather than from books.
If you want to teach yourself, you should learn the syntax for doing basic selects, joins, updates, deletes, and group by queries. You should also learn the "Swiss army knife" of selects, the CASE statement. Too many people don't. Many of the tutorials recommended in this thread will do that. Then you need to try to solve SQL problems. I'm sure that Joe Celko's SQL Puzzles and Answers is a good source of them, though it may be a little advanced.
This will let you actually write SQL. But you still need to learn how to organize a database. Which for most purposes means that you really need to learn what 3rd normal form looks like. You don't have to be able to give a formal definition of it, just recognize it when you see it, and know how to adjust something to be in that format.
Lots of references will explain it, but you won't know if you're reading them correctly. This is where it really, really helps to have access to someone who can look at a table layout and tell you, "That's right" vs "That's wrong, here's what needs to be changed." Failing all else, you could post a question here with a proposed layout. But a back and forth discussion with a live person would still be preferable IMO.
Try Wikipedia, http://www.w3schools.com/sql/default.asp and http://www.sql-tutorial.net/ Also check YouTube for SQL Videos.
You are correct, SQLite is a great place to start because it is free, lightweight, and available on many platforms. This is only a start though. SQLite is very liberal on SQL syntax and lacks an intneral programming language like DBMS systems have. Still, if you want to start and learn with minimal overhead, SQLite is the way to go.
SQLite is nice and they have really nice documentation, however you should be aware that it is not a full featured SQL database like MySQL, Postgres or the commercial variants. SQLite's API relies on callbacks which is a fine model, but not all database APIs work that way. If you are familiar with Perl, then DBI is another nice way to explore SQL.
/Allan
"A Gentle Introduction to SQL" - You can even practice "live queries" right on this tutorial website.
http://sqlzoo.net/
I always recommend The Practical SQL Handbook for a good starting point for beginners - especially those who have seen SQL but never understood how to build up a query them selves or how they work.
All Celko's books are great.
Hernandez's Mere Mortals book is good.
Ken Henderson's books are also excellent.
Reading up a bit on relational algebra is a good way to understand the underlying concepts of relational databases.
Jeo Clecko's SQL for smarties is excellent.
I recommend the exercises at this site: sql-ex.ru
You can even get a certificate if you do the right.
Start with Ideone and try queries on line just with a web browser.
If you program using the .NET framework, then learning LINQ might be a good place to start. The LINQ "engine" will handle the back end communication with the database (or objects, or entities, or XML, etc.) for you. If you want to dig deeper, you can explore the SQL generated by the LINQ that you write.
If you already know a thing or two about web applications, then that would be a good place to start. Nearly every serious webapp uses an SQL database as its backend.
The folks at Head First have come out with a book. Going by how good their other books are, I'd recommend this one. Haven't read it yet though. (LINK)
You may want to consider starting with MySQL as it is widely documented and very easy to get started with. You can download the Community Edition and then add the GUI Tools and you'll both GUI and command line interfaces.
Read a book to start learning about SQL. I read Beginning SQL Queries from Apress not long ago, and found it clear and logically written for a beginner (I reviewed it for a colleague).
I learnt 90% of what I know about SQL from here. In 1997.
I think it still stands up.
Hey although not complete it's great to get hands on with SQLite as mentioned above, Google 'Learn SQL the hard way' and there is an online book which you can work through which uses SQLite.
Google is great for downloading pdf's for free 'Cough Cough' but try http://www.sqlfiddle.com/
It's an online platform which is free! No log in required just go to their page, create your database in whichever language you want (That's the best bit I choose T-SQL as I'm learning that), and then you can query it as much as you like. I'm learning with a pdf file which has opensource SQL files you can download to follow along, and SQLFiddle has been great to learn vendor specific SQL.