一直想找机会学习下SQL,感谢Datawhale提供的资源和平台,之前参加的很多都半途而废了,虽然有别的ddl,但谁没有呢,所以一定要坚持下去啊,给2020 画上完美的句号!
搭建mysql环境
贴个安装教程链接:https://github.com/datawhalechina/team-learning-sql/blob/main/Task00%EF%BC%9A%E7%BB%AA%E8%AE%BA%20-%20%E7%8E%AF%E5%A2%83%E6%90%AD%E5%BB%BA.md#1-mysql-80-%E7%9A%84%E5%AE%89%E8%A3%85
需要注意的是我用的MySQL 官网上的社区版软件的下载地址:https://dev.mysql.com/downloads/ ,选择Full,但是没有选择安装路径的地方,之后有空了尝试怎么转个盘吧。
初始数据库
- DB:数据集合称为数据库(Database)。
- DBMS:用来管理数据库的计算机系统称为数据库管理系统(Database Management System)
DDL
数据定义语言, 用于创建或者删除存储数据用的数据库以及数据库中表的对象
- CREATE:创建数据库和表等对象
- DROP: 删除数据库和表等对象
- ALTER:修改数据库和表等对象的结构
DML
数据操纵语言用来查询或者变更表中的记录
- SELECT: 查询表中的数据
- INSERT: 向表中插入新数据
- UPDATE:更新表中的数据
- DELETE:删除表中的数据
DCL
数据控制语言:用来确认或者取消对数据库中数据的变更
- COMMIT: 确认对数据库中的数据进行的变更
- ROLLBACK:取消对数据库中的数据进行变更
- GRANT : 赋予用户操作权限
- REVOKE : 取消用户的操作权限
SQL语法规范
- MySQL本身不区分大小写,但强烈要求关键字大写,表名、列名用小写;
- 创建表时,使用统一的、描述性强的字段命名规则保证字段名是独一无二且不是保留字的,不要使用连续的下划线,不用下划线结尾;最好以字母开头
- 关键字右对齐,且不同层级的用空格或缩进控制,使其区分开;
- 表别名和列别名尽量用有具体含义的词组,不要用a b c,不然以后review的时候会非常痛苦;
- 运算符前后都加一个空格;
- 当用到多个表时,请在所有列名前写上引用的表别名;
- 每条命令用分号结尾;
- 养成随手写注释的习惯
四种基本数据类型
- INTEGER:用来制定存储证书的列的数据类型(数字型), 不能存储小数。
- CHAR:用来存储定长字符,当列中存储的字符串长度达不到最大长度时,使用半角空格补足,浪费存储空间,一般不使用
- VARCHAR: 用来存储可变长度字符串,节省空间
- DATE:用来制定存储日期的列
约束设置
除了数据类型外,对列中存储的数据进行限制或者追加条件的功能
-NOT NULL 非空约束,该列必须输入数据
-PRIMARY KEY 主键约束,代表该值是唯一值,可以通过该列取出特定的行的数据