本文由美国文理学院毕业、现就职于纽约九大投行之一的Nick导师为你详细讲解主流数据库的结构以及SQL的基本操作,为有意向申请金融及其他数据分析岗位的同学提供参考与帮助。
1作者介绍
我是Nick,毕业于美国一个文理学院,本科时自学了精算考试,毕业后去保险公司担任精算师,经常用SQL做data analysis。之后攻读了金融工程硕士学位,现在在纽约九大投行之一的量化交易与分析部门工作。
2 数据库基本知识
数据库最简单理解为两部分:data + DBMS (Database Management System)
DBMS帮助用户创造新数据库并且存储、利用里面的数据。数据本身非常大,DBMS就提供途径来帮助用户取得数据,QUERY这个词本身意思是question to data,就是在数据库中找到想要的数据。DMBS要能够support a large amount of data,这些数据一般就是保险公司、金融公司存储了几十年的数据。还需要有durability,如果数据fail的话,DMBS必须能帮助user recover from failure。还有就是需要保证公司里的人都能成功access数据库,而且互相之间不会影响。一个database最终的目标就是让所有的数据organize in a certain way,但是不同的用户可以看到不同的view。
Relational database是database的一种,SQL就是非常典型的relational database。下面的component是table,可以想成一个excel表格上不同的fields,就是column pattern,第一行里面会列有这个数据的特性等等,每一行叫做一个record,所以一个数据库表格的每一列代表特性,每一行代表individual。优点是不管背后的data管控多么复杂,展现在你面前的是有列有行的表格,而且create的速度非常快。其他还包括document database, hierarchy database等等。
举个Relational database的例子:PPT里有五个表格,每个表格里面由不同的department来保持。第一个叫产品,包括product name, product ID等等;第二个叫orders user score product,这可能是一个whole seller,只能看到每个order ID买到哪些product,可能是retailer在maintain这个表格,可以看到跟costumer有关的信息;最右边的表格是customer information,能看到更详细的顾客信息。这几个表格的某些field是可以连接起来的,以此类推,当这些表格通过SQL一样的语言进行连接之后会变得非常有用。当你想知道一个顾客购买的产品名字、颜色、价格是什么,就可以通过这个relational database来获得信息。
有了SQL,用户就有了给management system下命令的途径。可以通过SQL去describe data、添加数据、最主要的是帮助access data。也有很多系统比如微软、Oracle,SQL本身有非常多的variants。很多公司用Oracle access的码和MY SQL的码不一样,如果你在网上搜码的话要先知道你的系统。
3 如何install SQL
不管是什么系统,都可以下载免费的MYSQL SERVER。所有数据库都assume你的data size非常大,而电脑是存不下的,所以要用一个server把所有数据存进去。还需要language去命令这个server,之后才能运行代码,做design modeling database migration等等。如果还是没法下载成功,网上有网站进行测验。下载SERVER后一定要turn on。
MYSQL workbench interface 创建数据库后会左边会出现my database,看到里面存了哪些table,右边是写代码的地方,如果有编程经验,一般interface会把系统命令code成蓝色、橙色,创建一个新的SQL script就可以写代码了。
4 在SQL做programming
SQL在写了每一行代码后都要加分号,在MYSQL里面的话就用井号键来comment code。码的大小写并不重要,但是我在网上搜索码的时候看到都是大写的。基本的码就是select start from … ,也就是define what you want to say,通过select statement,你的data就会有result set,如果你想把它变成一个永久的table的话要存储。
快捷键 MAC系统是command,windows是control enter。作为text value,用single code、double code都可以。
这个点“.” 如果你想应用一个database的一个具体的table,就会写database name. table name,就是在access某一个特定的数据库,告诉系统你想要哪一个table。
关注“JumpStart Career 愉越求职”微信公众号和官方网站:http://www.jumpstart.org.cn,第一时间收获求职求学干货指导和独家资源。
![7465ac7e1a2308d15b02f0c6a2d02d26.png](https://img-blog.csdnimg.cn/img_convert/7465ac7e1a2308d15b02f0c6a2d02d26.png)