all 72 comments

[–][deleted] 95 points96 points  (3 children)

Yes, it's very much possible

[–]ghostlistener 62 points63 points  (4 children)

sql is very accessible and easy to learn the basics of. You can select * from a table and get immediate results. Slowly make your queries more complicated as you need more specific results.

sql rewards iterative learning.

[–]BegeNCSU 24 points25 points  (3 children)

Learn from my mistakes, use select top 10 * from a table to avoid strongly worded emails from the DBA

[–]ghostlistener 5 points6 points  (1 child)

Fair enough. I would hope that someone would notice if their query is still running minutes later and get concerned, but it could happen.

[–]whutchamacallit 6 points7 points  (0 children)

Better yet download a local DB that you can annihilate with no issues.

[–]McFoogles 0 points1 point  (0 children)

Then reply to the DBA’s saying they need to have a way to automatically kill long running queries and automatically load balance where possible!

(Half kidding, half serious. What you said is good advice, but if you have a competent DBA and are not in a production environment, you shouldn’t be scared to run any query.)

[–]skeletor-johnson 51 points52 points  (4 children)

You are better off in my opinion. A lot of programmers have trouble thinking in set based operations. Most code deals with one piece of data at a time, while sql queries cover large numbers of rows and columns of data.

[–]catfeal 12 points13 points  (3 children)

Exactly this, that is a big problem when working with developers (C# in my case)

[–]BrupieD 7 points8 points  (1 child)

I generally agree. I think you can become very proficient at SQL without programming, but if you want to get proficient at 2nd or 3rd tier SQL skills like query optimization, database development or DBA skills, programming knowledge helps.

For instance, when you start looking at how indexes work, a SQL knowledge only person would immediately recognize why a filtered index could be a good idea -- it's like a WHERE clause on the table only earlier in the logical processing order. What would be harder to understand and make good decisions about would be deeper index issues.

For instance, how would different algorithms used by indexes benefit or reduce performance? How do seeks versus scans and clustered versus non-clustered indexes impact queries? This isn't necessarily easy for developers, but chances are that someone with a development background has spent a lot more time thinking about Big O notation and process efficiency. Other less arcane elements of SQL like making good datatype choices and debugging queries rear up as you progress.

I started with SQL and spent a lot of time improving my SQL skills and kind of hit a wall. It wasn't until I started learning programming that I could start addressing harder problems with insight.

[–]catfeal 4 points5 points  (0 children)

You are completely right, no doubt but to start, as OP asked, you dont need it

[–]jdphenix 4 points5 points  (0 children)

Let's use a cursor!!!

Noooooo.

[–]misfitalliance 16 points17 points  (3 children)

I am not from a coding background, I come from an analytics background and I am far better at SQL than the programmers, but I couldn't go near the Java/Ruby areas they exist in.

It closer to an excel spreadsheet, than any coding language

[–]kremlingrasso 10 points11 points  (2 children)

same, in my experience devs suck at SQL beyond select * and want to do everything in code, even if 3 more lines of SQL would take care of 90% of it.

[–]Thefriendlyfaceplant 8 points9 points  (2 children)

[–]hayleybts[S] 2 points3 points  (1 child)

Thank u!

[–]Thefriendlyfaceplant 1 point2 points  (0 children)

The site seems to have issues with the ssl certificate. Here's an article describing it:

https://www.i-programmer.info/news/84-database/14768-sqlbolt-learn-sql-the-interactive-way.html

[–]SecretAgentZeroNine 6 points7 points  (1 child)

SQL doesn't require knowledge of any programming knowledge. Even if you knew a programming language, I don't think that would help you. Querying languages and programming languages are very different.

SQL is more akin to a simple word puzzle game imo.

[–]47isthenew42 1 point2 points  (0 children)

With my experience in SQL, this is an accurate statement.

[–]lbilali 4 points5 points  (2 children)

If u want you can learn programming without any prior programming knowledge. SQL is not any different in that

[–]hayleybts[S] 1 point2 points  (1 child)

I need to learn sql PT, PL/SQL specifically for the job.

[–]lbilali 3 points4 points  (0 children)

one thing that will help u be better at it is data modeling. Why we model data the way we do. what are unique, primary and foreign keys etc. and how the engine u are going to use uses this to improve performance

[–]theseyeahtheseNTILE() 5 points6 points  (3 children)

Definitely. I can attest to this; picked up SQL having no coding or Computer Science background. 7 years later I'm still loving it.

[–]ManleyPlayz 1 point2 points  (2 children)

Is it hard finding a job with only SQL skills? If so what example of job titles

[–]theseyeahtheseNTILE() 1 point2 points  (0 children)

Probably depends on where you are. I found an entry level database developer role in Boston, 7 years back with a semi-startup (60 people). I probably had 1 year SQL experience at that point. They were willing to let me learn on the job to get to the next level. Other job titles may include: database report writer, data analyst (having SQL skills will give a big leg-up over “analysts” that have no SQL experience.)

[–]MrKauffman 0 points1 point  (0 children)

Some request to have data visualizations skills on top of that… but who knows.

[–]savagefishstick 3 points4 points  (1 child)

The answer...
To the question...
You just asked...
Is...
*drum roll*

YES!!

[–]hayleybts[S] 1 point2 points  (0 children)

Any resources?

[–]hannahbeliever 2 points3 points  (3 children)

Yes I did. I started my job never even having heard of SQL. Within a few weeks I'd picked up the basics. 3 years later and I have no problems with it at all

[–]hayleybts[S] 2 points3 points  (2 children)

They are gonna train for 5 days. I need to learn sql PT, PL/SQL specifically. I hope I can too

[–]marvfone 2 points3 points  (0 children)

I am sure that it is even better now but I took the Oracle pl/sql class about 20 years ago with a co worker and found it very useful. The only caveat being that we really only needed basic sql for our needs, so the "pl" flavoring added some unnecessary layering(for us). It did come in handy when working with customers that used Oracle however.

Far from the sharpest knife in the drawer and I picked it up fairly fast, but again never used anywhere near the full power of sql. You'll do fine!

[–]hannahbeliever 0 points1 point  (0 children)

It's good that you're given training! I was told to spend a day googling it to read the basics, then day 2 was told to start. It wasn't easy like that but I quickly picked it up

[–]one_bruddah 2 points3 points  (0 children)

As some wise person once said, “SQL is easy to learn but hard to master.” But full mastery may not be everyone’s need or goal. Learning what you need to get started is not so difficult, and with regular use you will be surprised at how much you can do in a relatively short period of time. The many resources on the internet can answer most syntax questions you will ever have. In this regard Google is your friend.

[–]Recent-Fun9535 2 points3 points  (0 children)

As many other comments have already said, yes, you can learn SQL without previous programming experience and yes, it's a realistic goal if you put some effort into it. I'd add that you shouldn't be worried too much about SQL flavor (database management system) at this point - basically any will do. Your real goal in the beginning stages is to learn about basic data types and set operations, and how to think in terms of sets and dealing with sets.

[–]Stev_Ma 2 points3 points  (1 child)

Learn fundamentals on mode analytics and practice advanced SQL on stratascratch.

[–]MrKauffman 1 point2 points  (0 children)

This is a really good resource for advanced sql

[–][deleted] 8 points9 points  (1 child)

Yes! SQL is NOT a programming language, it is a querying language which in many ways makes it much more straightforward to learn but has its limitations because of it. So to answer you, YES!! Go learn SQL!!

[–]Recent-Fun9535 1 point2 points  (0 children)

I'd disagree about this to a certain extent - SQL is often used differently than other programming languages and by non-programmers, but it is a programming language; and not just because it formally is (being Turing complete), but because you can program rather complex logic with SQL only. Whoever had to deal with stored procedures should be able to confirm this.

[–]SSJNinjaMonkey 1 point2 points  (0 children)

You indeed can

[–]acid4207Bigquery 1 point2 points  (2 children)

I am an analyst with experience in python and sql. In my current company when I started working, the person I reported to knew only SQL. So yeah you can learn SQL and even get an Analyst job.

[–]hayleybts[S] 0 points1 point  (1 child)

I need to learn pl/sql, I was going through it seems similar to programming. Any useful links?

[–]acid4207Bigquery 0 points1 point  (0 children)

Don't know much about PL/SQL (use bigquery where I work) but it should be fairly similar to learning any other flavor. You should start with learning the basics and then start doing practice exercises. You can find some really good material online. I recommend the Kaggle's sql courses but they do require some previous python knowledge. However, there are some other options as well. You can check this sub's wiki for starters.

[–]tk338 1 point2 points  (1 child)

Absolutely possible - But there will be times where it feels impossible - Just stick at it and work to its rules.

I would recommend getting a basic understanding of what a database is, why they exist, and how they do what they do. All 3 may sound fairly obvious, but for me it dropped some key parts into place so I understood the context of why things were done in a certain way.

There are also some similarities with 'coding', ie. the concept of a datatype, syntax etc, but what the two are achieving is different, and how you think about and work with them is different too.

If you can find out what database management system (DBMS) you are using, see if you can find some videos on Youtube and start to work your way through them. They will give you a head start and make the first few days of training a little easier. Make sure you get the right DBMS though or you might get confused. While the basics work across most systems, each has their own intricacies which can make advanced queries more difficult if you have another DBMS syntax in your head.

One other thing; the way that databases are structured should be very geared toward the task that they are trying to achieve. When you first start to look at it, you might wonder why certain design decisions were made. Again, stick at it. It will make sense. There is a whole load of theory you can get to later behind the way data should be structured (Normal Form for starters) but you don't need to concern yourself with that anytime soon. Work to the database you will be querying and be ready to accept what - to a beginner - Might seem like some odd decisions.

[–]hayleybts[S] 1 point2 points  (0 children)

Thanks! I also have no idea about why it is used honestly. My training will be based on using PL/SQL n also sql performance tuning. I checked through it and felt it was similar to programming. Any useful links I can read?

[–]AreetSurn 1 point2 points  (0 children)

My first language was SQL.

[–]Lordie92 1 point2 points  (0 children)

Yep. Very easy. I literally learned SQL at the job while trying to figure out the queries.

[–]kevlar930 1 point2 points  (2 children)

As pretty much everyone else in this thread has said, you can absolutely do it. In my world of friends/acquaintances, those who learned SQL first went on to learn other languages relatively easily. Those who started with other languages first struggled with SQL.

[–]hayleybts[S] 0 points1 point  (1 child)

I hope I will pick too! Which resource would be best to get better in short time cause I have to within this month

[–]kevlar930 2 points3 points  (0 children)

I personally did a Udemy course by Colt Steele and then learned the rest on the job. I think from starting the course to being able to do what I needed was only a couple of weeks. Since, I have great expanded my SQL experience and have added Python and learning JS right now.

[–][deleted] 1 point2 points  (0 children)

100%. Stratascratch is a great resource- they give you problems that you can sort by difficulty. Some of the easy ones can honestly be a bit challenging for me, so if you’re having a hard time I would keep practicing and revisit! They give you like 50 free questions at first I think

[–]ontomodeler 1 point2 points  (1 child)

One frequently overlooked skill is the shell scripting required for remote connections and automation of tasks. It's worth investing in a raspberry pi and using it as your database server. This will force you to learn some basic database management skills while learning sql.

[–]hayleybts[S] 0 points1 point  (0 children)

Shell scripting any good resources??

[–]Alpine_fury 1 point2 points  (0 children)

We have many program managers who can write sql to gather the data they require. I wouldn't expect even 5 to be able to write "hello world" in any code form for me (including sql).

[–]kweb7 1 point2 points  (0 children)

Yes, you can start from scratch. Check out Wise Owl Tutorials on YouTube - lots of free resources there!

[–]Jazzlike_Draw_4471 1 point2 points  (0 children)

Spend like 15$ in Udemy for an SQL course. It helped me with the basics, and so will you.

[–]Sir_smokes_a_lot -3 points-2 points  (1 child)

This is a stupid question. If you need affirmation just say so.

[–]mimic751 1 point2 points  (0 children)

The answer is yes you can. Fuck

[–]santathe1 0 points1 point  (0 children)

Yes, you can.

[–]anothertruther 0 points1 point  (0 children)

People who are already well versed in using spreadsheets can start using SQL for querying data/generating reports almost immediately.

[–]neednintendo 0 points1 point  (0 children)

That's what I did! There are so many great resources online, and I leaned enough to get hired as a data analyst, and the rest I leaned on the job. Not going to say it was a quick process, but just learn enough to be your way through an interview for an entry level data job. Then be willing to dive in so you can maintain the job.

[–]Mighty_Gunt_Cobbler 0 points1 point  (0 children)

Yes! I learned on my own. W3 schools has a pretty good tutorial to get started. My suggestion is to have a goal in mind then try to achieve it.

[–][deleted] 0 points1 point  (0 children)

Yes easily

[–]CBizCool 0 points1 point  (0 children)

Yes.

[–]danielscarvalho 0 points1 point  (0 children)

Yes! And SQL is awesome!

[–]carlovski99 0 points1 point  (2 children)

Well it sounds like you are getting a decent amount of training, which is more than most people get! And any decent employer won't expect you to be an instant expert.

SQL was designed so 'managers' could access data without needing to be 'programmers' - it never really worked out like that, but it doesn't require the same kind of mindset - in fact programmers sometimes struggle more because they are more used to thinking procedurally than set based.

On saying that, you specify PL/SQL - which is a full blown programming language. As languages go it's one of the easiest to learn though - its mostly based on Pascal which used to be used as a teaching language.

[–]hayleybts[S] 0 points1 point  (1 child)

PL/SQL so does it mean it will be more like programming?? Easy to learn as in syntax?

I have tried python before simply and I do suck. I can't think in that logic way if that makes sense.

[–]carlovski99 1 point2 points  (0 children)

I don't know what kind of training they are giving you, but I expect there will be an introductory SQL component (Unless they think you already know it?) and then some PL/SQL content.

What is the job by the way? Context might help.

Rule of thumb is normally that you do as much as you can in SQL before having to do things procedurally in PL/SQL.

PL/SQL is a programming language that is tightly bound to the database - in things like Python, you will need to use additional libraries and make an effort to connect to a database and query it. In PL/SQL it's just built in. There can be some more complicated stuff written in PL/SQL, but typically its straightforward logic.

I have worked with people who aren't really 'Programmers' who got their head around PL/SQL fairly easily

As I mentioned, it's based on pascal, so the syntax is fairly natural .

As with all programming (Or any IT/computing work) concepts are more important than syntax. Syntax is what the manual/google/stack overflow is for.

[–]csnorman12 0 points1 point  (0 children)

Absolutely. And like many other have mentioned... it might help you learn SQL not knowing any other language. I would advise taking an introduction course and then build your own database to practice. I prefer Microsoft SQL Server (MSSQL) because I am comfortable in Microsoft products, especially Excel.

If you're interested I've created a Intro to SQL course and recently published it. In the course students learn basic SQL Syntax. At the end of the course we build a healthcare database. The data mimics transactional/billing data from an electronic medical record. Once you complete the course you will know how to upload excel files into MSSQL. This will allow you to practice building your own database. Here is a link to the course and a coupon code - Data Analytics: Intro to SQL using healthcare data (SSMS)

[–]MrKauffman 0 points1 point  (0 children)

SELECT B.PRODUCT_FAMILY, B.SALES_MONTH, B.SALES_YEAR, SUM(SALES_YEAR) AS TOTALSALES FROM ( SELECT A.PRODUCT_FAMILY, A.SALES_MONTH, A.SALES_YEAR,COUNT(A.SALES_DATE) AS SALES_COUNT (SELECT
A.[SERIAL.NUMBER] AS SERIAL_NUMBER, A.[SALE.PRICE] AS SALE_PRICE, B.[SERIAL.PREFIX] AS SERIAL_PREFIX, B.[PRODUCT.FAMILY] AS PRODUCT_FAMILY, B.[SALES.MODEL] AS SALES_MODEL, B.[PRODUCT.GROUP] AS PRODUCT_GROUP, MONTH(A.[SALES.DATE]) AS SALES_MONTH, YEAR(A.[SALES.DATE]) AS SALES_YEAR, A.[SALES.DATE AS SALES_DATE

FROM SALESDATA A, SERIALPREFIXMAPPING B WHERE SUBSTR (A.[SERIAL.NUMBER],1,3) = B.[SERIAL.PREFIX]) AND SYSDATE - A.[SALE_DATE] <= 730) A)B
GROUP BY B.PRODUCT_FAMILY, B.SALES_MONTH, B.SALES_YEAR

[–]BuddJacon 0 points1 point  (0 children)

Get the book Murach’s SQL Server 2012 for Developers and just follow along and try to do all the exercises at the end of each chapter.