本笔记为阿里云天池龙珠计划SQL训练营的学习内容,链接为:https://tianchi.aliyun.com/specials/promotion/aicampsql
目前学习数据库,基本都是以mysql为主流,其他的数据库要么是市场份额不大,要么是不开源或者体量太大。
以mysql为例,在数据库中存储的表结构可以抽象理解为excel的行列,行也被叫做记录,列则被称为字段,从数据库的用户管理,权限分离,数据变更,增删改差,我们可以将sql的语法分为三类。
数据定义语言ddl,负责对数据库和表管理;数据操纵语言dml,负责查询和变更表内数据;dcl数据控制语言,负责数据库的权限等控制。
如果你不了解数据库,那从ddl和dml开始学习无疑是最正确的选择,因为先学使用再学控制是任何工具学习的捷径。
DDL
首先是ddl,如果我们要给excel存放数据,那必定是要先新建一个excel文件,这个部分就是ddl中的create database,创建数据库;而只有文件没有sheet页,自然是不对的,虽然excel会自动创建一个sheet页,sql却不会,需要我们手动创建,这就是ddl中的create table。
然后说到数据(针对大部分数据库都是如此),mysql中存储的数据类型可以理解为强类型,哪怕是如今出现的复杂类型,array等,它里面的泛型也是固定的,不能只写array<>,必须是array之类。
初步学习,只需要掌握int类型,也就是整数类型;然后是char,定长的字符串,哪怕你长度比定长短,也会自动用半角补足剩余空间;不定长的varchar,和char正好相反还有日期的date。
再从excel类比,excel里面可以针对列规定单元格数据不能为空,sql里面not null一样可以做到;然后锁定某一列,我们可以变相理解为主键primary key,主键默认不能为空。
DML
最后说一下dml语言,这就是增删改差,drop table删除表;alter table可以对表的名称,字段信息修改;truncate table清空表数据;update table set 修改表内数据;insert into给表内插入数据;select col_name(字段名) from查询数据。