窥探SQL: 1.环境搭建与基本介绍
窥探SQL: 1.环境搭建与基本介绍
- MySQL安装与配置
- 环境搭建
- 通过terminal配置和访问MySQL
- 使用MySQLWorkBench链接MySQL数据库
- 初识数据库与SQL
- 数据库基本介绍
- SQL基本介绍
- 基本概念
- 常见语句
- 基本书写规范
- 数据类型
- 练习题
MySQL安装与配置
工作之后,愈发觉得SQL编程语言的基础性与重要性,SQL虽然看似简单,但是也是需要系统化标准化的掌握也是需要投注一定精力的。
借助datawhale组队学习活动,对SQL进行一次系统化的学习。
环境搭建
MySQL 官网上社区版软件的下载地址为https://dev.mysql.com/downloads/, 选择MySQL Community Server可以进一步选择下载 macOS操作系统下的最新版 MySQL. 如果需要安装历史版本, 可以选择最后的Download Archives后选择MySQL Installer,然后在新页面里选择所需历史版本的社区版.
之前已经安装了MySQL8.0.11版本,由于MySQL的卸载较为复杂,涉及注册表等事项,故暂时不升级最新版本,依然使用8.0.11版本进行各项操作,后续如有必要会进行版本升级。
注意:下载安装过程中会要求设置“root user password”,务必牢记此密码!
通过terminal配置和访问MySQL
安装之后, 如果我们直接在终端输入mysql, 会提示找不到命令, 需要配置一下环境变量才可以, 输入以下命令:
PATH="$PATH":/usr/local/mysql/bin
再通过终端输入mysql登录命令后, 就可以看到mysql的交互式界面了。
然后输入以下内容, 将自己电脑的mysql路径配置到环境变量中, 如果在安装过程中你没修改过安装路径, 那么你的电脑上MySQL的路径应该和下述代码中所使用的路径是一致的。
export PATH=$PATH:/usr/local/mysql/bin
运行上述配置后, 通过输入下面这条命令使修改生效
source ~/.bash_profile
接下来, 在你的终端中输入命令来登录到MySQL
mysql -u root -p
之后,如果看到以下界面, 则表示你的电脑上: 1.MySQL8.0已经正确安装, 2.已经正确配置了MySQL8.0的环境变量,并且3.已经启动MySQL服务器程序. 如果并没有出现下属界面, 请按照上述三个顺序逐个检查.
注意:使用终端(或者windows下的命令行)与MySQL进行交互是非常便捷和高效的, 但是对于平时不怎么使用终端的普通人来说, 使用终端在做数据查询时, 在查询结果的显示和导出方面有诸多不便, 特别是当我们对 SQL 查询不熟练的时候, 这种方式很不利于我们进行查询语句的调试,因此更推荐使用图形化界面的数据库客户端工具,如MySQLWorkBench和Sequel Pro.
使用MySQLWorkBench链接MySQL数据库
MySQL Workbench 是 MySQL 官方的客户端工具, 支持windows, macOS和Linux. 对于windows用户。MySQL Workbench 是一款功能强大的数据库管理工具, 它既可以用于设计数据库, 也可以用于连接数据库进行查询, 我们这个课程主要使用它的连接数据库进行查询的功能。
对于macOS的用户, 可以在https://dev.mysql.com/downloads/workbench/ 选择macOS版本进行下载安装。
首次打开后的界面:
注意:MySQL Workbench客户端的版本,与MySQL server版本不必一致。
初识数据库与SQL
数据库基本介绍
数据库是将大量数据保存起来,通过计算机加工而成的可以进行高效访问的数据集合。该数据集合称为数据库(Database,DB)。
用来管理数据库的计算机系统称为数据库管理系统(Database Management System,DBMS)。
所以人们常说的数据库,如MySQL、SQL Server、DB2这些,实际上指的是数据库管理系统。
SQL基本介绍
基本概念
数据库中存储的表结构类似于excel中的行和列,需清楚明白几个概念之间的区别:数据库,表,行,列,单元格。
常见语句
根据对 RDBMS 赋予的指令种类的不同,SQL 语句可以分为以下三类:
- DDL(Data Definition Language,数据定义语言) 用来创建或者删除存储数据用的数据库以及数据库中的表等对象。DDL 包含以下指令:
- CREATE : 创建数据库和表等对象
- DROP : 删除数据库和表等对象
- ALTER : 修改数据库和表等对象的结构
- DML(Data Manipulation Language,数据操纵语言) 用来查询或者变更表中的记录。DML 包含以下几种指令:
- SELECT :查询表中的数据
- INSERT :向表中插入新数据
- UPDATE :更新表中的数据
- DELETE :删除表中的数据
- DCL(Data Control Language,数据控制语言) 用来确认或者取消对数据库中的数据进行的变更。除此之外,还可以对 RDBMS 的用户是否有权限操作数据库中的对象(数据库表等)进行设定。DCL 包含以下几种指令:
- COMMIT : 确认对数据库中的数据进行的变更
- ROLLBACK : 取消对数据库中的数据进行的变更
- GRANT : 赋予用户操作权限
- REVOKE : 取消用户的操作权限
基本书写规范
SQL语法规范总得的原则是,清楚、易读并且层次清晰。
SQL的基本书写规则如下:
- SQL语句要以分号( ; )结尾
- SQL 不区分关键字的大小写,但是插入到表中的数据是区分大小写的
- win 系统默认不区分表名及字段名的大小写
- linux / mac 默认严格区分表名及字段名的大小写
- 常数的书写方式是固定的
‘abc’, 1234, ‘26 Jan 2010’, ‘10/01/26’, ‘2010-01-26’… - 单词需要用半角空格或者换行来分隔
注意: SQL 语句的单词之间需使用半角空格或换行符来进行分隔,且不能使用全角空格作为单词的分隔符,否则会发生错误,出现无法预期的结果。
常见注意事项如下:
- MySQL本身不区分大小写,但强烈要求关键字大写,表名、列名用小写;
- 创建表时,使用统一的、描述性强的字段命名规则保证字段名是独一无二且不是保留字的,不要使用连续的下划线,不用下划线结尾;最好以字母开头
- 关键字右对齐,且不同层级的用空格或缩进控制,使其区分开,见样例二;
- 列名少的时候写在一行里无伤大雅;多的时候以及涉及到CASE WHEN 或者聚合计算的时候,建议分行写;个人习惯是逗号在列名前面,方便之后删除某些列,放列名后亦可;
- 表别名和列别名尽量用有具体含义的词组,不要用a b c,不然以后review的时候会非常痛苦;
- 运算符前后都加一个空格;
- 当用到多个表时,请在所有列名前写上引用的表别名,不要嫌麻烦;
每条命令用分号结尾; - 养成随手写注释的习惯,注释方法如下:
单行注释 #注释文字
单行注释 -- 注释文字
多行注释:/* 注释文字 */
数据类型
数据库创建的表,所有的列都必须指定数据类型,每一列都不能存储与该列数据类型不符的数据。
四种最基本的数据类型,分别是:INTEGER, CHAR,VARCHAR,DATE
INTEGER 型
用来指定存储整数的列的数据类型(数字型),不能存储小数。CHAR 型
用来存储定长字符串,当列中存储的字符串长度达不到最大长度的时候,使用半角空格进行补足,由于会浪费存储空间,所以一般不使用。VARCHAR 型
用来存储可变长度字符串,定长字符串在字符数未达到最大长度时会用半角空格补足,但可变长字符串不同,即使字符数未达到最大长度,也不会用半角空格补足。DATE 型
用来指定存储日期(年月日)的列的数据类型(日期型)。
练习题
1.1 编写一条 CREATE TABLE 语句,用来创建一个包含表 1-A 中所列各项的表 Addressbook (地址簿),并为 regist_no (注册编号)列设置主键约束
表1-A 表 Addressbook (地址簿)中的列
Solution:
CREATE TABLE addressbook
(regist_no INTEGER NOT NULL,
name VARCHAR(128) NOT NULL,
address VARCHAR(256) NOT NULL,
tel_no CHAR(10),
mail_address CHAR(20),
primary KEY (regist_no));
1.2 假设在创建练习1.1中的 Addressbook 表时忘记添加如下一列 postal_code (邮政编码)了,请把此列添加到 Addressbook 表中。
列名 : postal_code
数据类型 :定长字符串类型(长度为 8)
约束 :不能为 NULL
Solution:
ALTER TABLE addressbook ADD COLUMN postal_code CHAR(0) NOT NULL;
1.3 编写 SQL 语句来删除 Addressbook 表。
Solution:
DROP TABLE addressbook;
1.4 编写 SQL 语句来恢复删除掉的 Addressbook 表。
Solution: SQL 语句不能恢复删除掉的表格,只能重新建立,所以在删除表格时需要尤其慎重。
重新建立的方法,可见1.1题。
窥探SQL: 1.环境搭建与基本介绍相关推荐
- 搭建mysql注入_常见的sql注入环境搭建
常见的sql注入环境搭建 By : Mirror王宇阳 Time:2020-01-06 PHP+MySQL摘要 $conn = new mysqli('数据库服务器','username','pass ...
- 大数据介绍、集群环境搭建、Hadoop介绍、HDFS入门介绍
大数据介绍.集群环境搭建.Hadoop介绍.HDFS入门介绍 文章目录 大数据介绍.集群环境搭建.Hadoop介绍.HDFS入门介绍 1.课前资料 2.课程整体介绍 3.大数据介绍 3.1 什么是大数 ...
- Day15(Js入门、jquery入门、ajax入门、前后端分离开发跨域问题、linux环境准备、jdk_tomcat环境搭建、docker介绍及应用(docker安装、基本命令、安装tomcat))
js入门 js代码辅助 window–>preferences–>javaScript–>Content Assist .abcdefghijklmnopqrstuvwxyz alt ...
- Murano环境搭建、使用介绍和思考
murano是OpenStack的Application Catalog服务,推崇AaaS(Anything-as-a-Service)的概念,通过统一的框架和API实现应用程序快速部署和应用程序生命 ...
- BurpSuite武器库打造之环境搭建和API介绍(上)
0x00前言 在使用Burp Suite(以下简称Burp)来开展渗透工作的途中可能需要验证一些脑洞大开的想法,但Burp自带的功能可能无法满足你的需求,于是你迫切需要一个高度定制化的插件来实现这个功 ...
- docker运行sentinel、Docker打包Sentinel 镜像、控制台环境搭建及使用介绍
1.Sentinel 介绍 Sentinel 提供一个轻量级的开源控制台,它提供机器发现以及健康情况管理.监控(单机和集群),规则管理和推送的功能. Sentinel 控制台包含如下功能: 查看机器列 ...
- Sentinel(一)Linux搭建Sentinel 控制台环境搭建及使用介绍
目录 1.概述 2.下载启动 3.配置项目说明 4.控制台介绍 5.linux自启部署 6.整合SpringCloud使用 1.概述 Sentinel 提供一个轻量级的开源控制台,它提供机器发现以及健 ...
- SQL注入系列(一)——超详细SQL注入环境搭建
首先准备一台:windows2008 sever 的虚拟机(如果电脑配置较低的,可以开自己本机) phpstudy2016(个人喜好) 下载chrome浏览器(用google浏览器,存属于个人爱好哈~ ...
- 厦门感芯科技MC3172(1):介绍和环境搭建
厦门感芯科技MC3172(1):介绍和环境搭建 文章目录 厦门感芯科技MC3172(1):介绍和环境搭建 1. MC3172介绍 2. MC3172的开发环境 2.1 首先安装ide 2.2 找到配置 ...
最新文章
- Python 标准库之 subprocesss
- html5中上传图片
- 耐寂寞谋定未来-农业大健康·国情讲坛:乡村振兴守公益心
- html 5笔记:理解与学习
- MATLAB不定积分的运算,matlab中怎么把积分函数 int 得到的不定积分式代入 solve 函数中进行计算?...
- 【mark】linux 终端命令行下的快捷键(自己已验证所有)
- mysql登录不了_登录不了MySQL的解决方法
- 前端学习(2164):runtimeonly和runtimecompiler
- 【编程好习惯】通过命名规则区分变量
- 【Flink】FlinkException The file LOG does not exist on the TaskExecutor
- Android日期控件如何兼容不同手机
- IOS transform的使用(移动,放大,旋转)
- IT小天博客APP版本
- arcgis之建模实现矢量图层批量按属性分割导出Kmz文件
- 从零开始学WEB前端——HTML理论讲解
- yolo批量检测图片
- Python求解二元二次函数梯度
- Ubuntu衍生发行版使用体验(lubuntu、xubuntu、kubuntu)
- python定义一个函数实现整数的幂运算_Leetcode练习(Python):第326题:3的幂:给定一个整数,写一个函数来判断它是否是 3 的幂次方。...
- Linux之open虚拟专业网安装部署