数据分析——SQL基础知识概要介绍

 SQL作为面向数据库的通用数据处理语言规范,是数据分析、数据开发必备语言之一。

不必说数据分析师和数据开发了,很多大厂已经开始推行全员数据SQL能力了。但这里的SQL和真正意义的SQL,是有很大区别的,即SQL≠select。

01 什么是SQL(SQL≠select)

首先,什么是SQL?

SQL是一种面向数据库的通用数据处理语言规范,说白了,就是一种代码语言,主要是对结构化数据库进行操作的语音。

SQL的主要数据类型有:

  • CHAR():定长字符串  最大长度为 254

  • VARCHAR():变长字符  最大长度为 4000 

  • SMALLINT:短整型数字  长度为 2 字节

  • INTEGER:整型数字  长度为 4 字节

  • REAL:单精度浮点  32 位近似值

  • DOUBLE:双精度浮点  64 位近似值

  • DECIMAL(m,n):数字  精度为m小数位为n

  • DATE:日期时间

  • TIME:日期时间

  • TIMESTAMP:日期时间

它主要能完成以下几类功能。

(1)数据定义(DDL)

数据定义的含义,就是对数据表的表结构等进行定义。

主要包括的语句有:CREATE,ALTER,DROP,DECLARE

(2)数据操纵(DML)

数据操纵的含义,就是对基本表和视图的数据插入、删除和修改。这里最最最重要的,就是具有很强的数据查询功能,查询功能是SQL里最常用的功能了。

主要包括的语句有:SELECT,DELETE,UPDATE,INSERT。其中SELECT就是查询。

(3)数据控制(DCL)

数据控制的含义,主要是对用户的访问权限加以控制,以保证系统的安全性。

主要包括的语句有:GRANT,REVOKE,COMMIT,ROLLBACK

看到了吧,其实SQL语言包括的内容是很多的。大家常常说的用的select其实只是SQL中的一个查询语句而已,但这个语句,确是SQL中最最重要的语句。尤其是作为数据分析师或者业务,在绝大部分场景下都是取数需求,所谓的取数需求,就是对数据进行查询而已,因此用的都是select语句。

至于其他语句,绝大部分时间是用不太到的。毕竟分析师不需要对数据进行维护。但作为数据开发,需要。

02 SQL语句介绍:数据定义DDL

DDL—数据库定义语言:直接提交的。

  • CREATE:用于创建数据库对象

  • DECLARE:除了是创建只在过程中使用的临时表外,DECLARE语句和CREATE语句非常相似。唯一可以被声明的对象是表。并且必须放入用户临时表空间

  • DROP:可以删除任何用CREATE(数据库对象)和DECLARE(表)创建的对象

  • ALTER:允许修改某些数据库对象的信息。不能修改索引

下面主要基于对象介绍基本的语法:

(1)数据库

创建数据库:

CREATE DATABASE database-name [USING CODESET codeset TERRITORY territory]

删除数据库:

drop database dbname

(2)表

创建新表:

create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..)

根据已有的表创建新表:

create table tab_new like tab_old;

create table tab_new as select col1,col2… from tab_old definition only

修改表:增加一个列:

Alter table tabname add column col type

注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。

添加主键:

Alter table tabname add primary key(col)

删除主键:

Alter table tabname drop primary key(col)

删除表:

drop table tabname

(3)表空间

创建表空间:

create tablespace tbsname pagesize 4k managed by database using (file ‘file’ size)

表空间加入容器:

alter tablespace tablespace_name add(file 'filename' size)

注:该操作是不可逆的,加入容器后将不能将其删除,因此在加入的时候注意。

删除表空间:

drop tablespace tbsname

(4)索引

创建索引:

create [unique] index idxname on tabname(col….)

删除索引:

drop index idxname

注:索引是不可更改的,想更改必须删除重新建。

(5)视图

创建视图:

create view viewname as select statement

删除视图:

drop view viewname

注:视图唯一能修改的是引用类型列,改变列的范围。其他定义好了都不能修改。当视图基于的基表drop后,视图变为无效。

03 SQL语句介绍:数据操纵DML

DML—数据库操纵语言,它不隐式地提交当前事务 ,是否提交视环境设定而定。

(1)SELECT:从表中查询符合数据

关于select的具体语句,由于内容丰富,将在后面逐一展开,这里不详细阐述。

select时,注意索引谓词和非索引谓词,尽量在有索引的列上使用索引谓词。谓词类型可索引注释

(2)DELETE:删除已有表的数据

从表中删除记录语法格式:

DELETE FROM tablename WHERE (conditions)

(3)UPDATE:更新已有表的数据

语法格式:

UPDATE tabname SET (col1=values1,col2=values2,…) WHERE (conditions);

注:update的速度比较慢,要在相应列上建立索引。

(4)INSERT:向已有表中插入数据

向表中插入记录语法格式:

INSERT INTO tablename (col1,col2,…) VALUES (value1,value2,…);INSERT INTO tablename (col1,col2,…) VALUES (value1, value2,…), (value1, value2,…),……

Insert不会等待任何程序,不会导致锁定。

04 SQL语句介绍:数据控制DCL

DCL—数据控制语言,主要包括以下语句:

(1)GRANT—授予用户权限

所有者或者管理员把访问权限赋给其他用户,语法格式:

grant [all privileges|privileges,….] on tabname | viewname  to [public|user,….]

(2)REVOKE—撤消用户权限

取消某一用户的某中访问权限,语法格式:

Revoke [all privileges|privileges,….] on tabname | viewname  from [public|user,….]

注:不能取消实例级别的用户的任何权限,他们不是通过grant授权的,是通过组实现的权限。

(3)COMMIT—提交事务,可以使数据库的修改永久化 

COMMIT:把事务中所做的修改永久化记录到数据库。语法格式:

commit [work]

(4)ROLLBACK—回滚事务,消除上一个COMMIT命令后的所做的全部修改,使得数据库的内容恢复到上一个COMMIT执行后的状态.。

ROLLBACK:将上次提交以来所做的更改全部撤消。语法格式:

Rollback [work]

今天主要是这些,后续将主要针对一些常用语句进行分享

-END-

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注