I'm working as a software engineer, so I'll add my 2p.
On SQL - there are lots of different 'flavours' depending on the vendor/implementation, including Oracle, MySQL, MariaDB, SQL Server, Firebird, PostgreSQL, SQLite, and many more. SQL itself is possibly the most widely-used language in software engineering because it's the defacto "language of databases" and transcends all other technologies (i.e. when you're writing any kind of app, SQL is probably involved somewhere); the vendor you choose to learn with doesn't matter too much. Databases are hugely important nonetheless.
JavaScript is only necessary if you're interested in web development. Realistically many enterprise apps these days tend to have a web front-end, so in addition to JavaScript you'd also be looking at HTML, CSS, JQuery (JavaScript library) and Bootstrap (CSS Library) as being the technologies that most employers would expect you to be familiar with for web development.
Java is a general-purpose language very similar to C# - both are very widely applicable to a whole range of different kinds of software. Commercial and enterprise software development is fairly evenly split between Java and C# but the skills from one are comfortably transferrable to the other. People developing front-end web apps frequently write their back-end services using either one of those languages.
Java is also the de-facto language of Android (there are others, but if Android app development interests you then Java is the obvious language to pick up)
One thing worth mentioning is that the libraries and frameworks which come with those languages are important too once you're already confident in the language itself. For Java that would be things like Spring Boot, JavaFx and the Android toolkit. For C# it's ASP.NET, Entity Framework, and maybe Xamarin or WPF.
Also, for any programming language, you'd also want to learn about things like Lists/Dictionaries, File I/O, String manipulation, Threading/Concurrency, Regular Expressions, Data Serialisation with XML/JSON, Network programming and using Numeric libraries.
C++ is fairly important in game development and systems/hardware programming (e.g. robotics), however C++ has otherwise become rather a 'niche' language in that regard. I wouldn't prioritise C++ any time soon unless game development or hardware programming is something which specifically interests you. Very few people these days still write apps or web services in C++ because the likes of Java and C# are so much better at that kind of thing
As for courses, you could try some of these - they're all free as long as you click the right links
(Everything on EdX and Coursera can be accessed for free, and most things on Udacity can be accessed for free too, but the links for doing so are less obvious - however the content on these sites is developed by large tech companies who are writing courses for their own tech, or global top universities who are making their undergraduate content available for free online).
Software development series focused on full-stack web development and Java, by Duke University in North Carolina:
(You need to enrol on individual courses and click the 'Audit' link rather than the one which asks you for a free trial/pay) - This covers a lot of software development skills - unfortunately it uses a slightly weird IDE called BlueJ but otherwise the content is pretty good. (If you want a better IDE for Java then grab JetBrains IntelliJ instead, you'll be able to do most of the content using IntelliJ)
Another software engineering series from University of British Columbia:
(Again, click individual courses and audit them, and avoid the paid certificate buttons). This course focuses on core programming skills to begin with using a 'beginner' language - the lecturers have taken the approach of beginning by teaching how to "be a programmer" by focusing on using the beginner language to solve problems in the first 2 courses, before later moving on in the 3rd/4th courses to using Java to build bigger, more complex apps - its a very different approach compared with the Duke course, but both of them aim to teach a broader range of software development skills than just a language.
You could have a look at Google's Android development course if Android apps interest you - (it's specifically about writing android apps so assumes you already know Java, although Udacity has an a free intro java course too, but their java course is just about the Java language)
For C#, there's Microsoft Courses here (In this order - Again, don't click the buttons for the paid certificates):
Course on relational databases from Georgia Tech. It goes beyond just teaching SQL and covers the important conceptual aspects of database design too: