java转型之路 - 数据库篇(一)
律己者足以服人,积跬步可至千里。
作为移动端开发人员,虽然java语法熟知一二,但对于后端开发来说,只是冰山一角。自律不是一时脑热,想法必要付诸于行动,在此记录自己的学习成果,也为想入坑后端开发,却不知从何入手的道友们提供一条学习路线(挖出一片无底深渊)。
开发环境
windows和macOs对一些软件的安装配置也不太一样,我macOs系统,以后的环境安装都会按照mac的步骤来操作,windows相对简单,就不多做介绍了。
Mysql
Mysql是最流行的关系型数据库管理系统,而数据库作为后端开发的基础,便从mysql开始学起罢!
1. Mysql 安装
首先去Mysql官网,下载自己系统对应的安装包,一路next安装即可。注意一定要下载系统对应的版本,不然以后运行会报错,还要卸载重装,我的系统架构是是macOS 11 (x86, 64-bit), DMG Archive,不要问我为什么知道。。。
安装完成后在系统偏好设置中会多出一个MySql的图标
点击Start MySQL Server,即可启动mysql服务。
2. 环境变量
接下来我们要在命令行中使用sql语句,首先需要配置环境变量,在终端中输入vim ~/.base_profile 打开配置文件,在path后面追加mysql环境变量:
export MYSQL=/usr/local/mysql/bin
export PATH=$MYSQL:$PATH;
键入i
进行编辑,完成之后按esc退出编辑模式,使用:wq
进行保存即可,配置完成之后在终端输入命令 source ~/.base_profile
刷新资源。
检查环境变量是否配置成功:
在终端输入命令
mysql —version
,将会打印出mysql的版本号。
Mysql语法
注意每条命令后面必须带一个分号,代表命令输入完成。
Mysql连接
在终端键入命令
kangfan@bogon ~ % mysql -u root -p
Enter password:
第一次安装密码是空的,直接回车即可。登录成功进入mysql命令模式:
Mysql退出
使用exit
或quit
命令即可退出mysql模式
mysql> exit;
Bye
mysql> quit;
Bye
Mysql修改密码
在mysql命令模式下,使用set password for root@localhost = password(123456);
即可修改密码,其中root是你自己的数据库用户名,123456替换为你自己想要的密码。
创建数据库
使用create database 数据库名,创建一个数据库
mysql> create database empdb;
Query OK, 1 row affected (0.00 sec)
如上说明创建成功
查看所有数据库
使用show databases;
命令,可以查看当前服务器中的所有数据库
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| empdb |
| information_schema |
| mysql |
| performance_schema |
| sys |
| test1 |
+--------------------+
6 rows in set (0.01 sec)
选择要操作的数据库
如果想要对某个数据库进行增删改查等操作,需要指定对应的数据库
mysql> use empdb
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
出现Database changed,说明选择成功
创建表
表是列组成
列规则:
- (1) 列:列名 数据类型(长度) 非空 约束
列名,表名,数据库名:用英文字母,_,数字,尽量不要用特殊字符,如果需要空格,使用双引号将字段引入: “zz bb” - (2) mysql数据类型:
字符:
char(n):固定长度,不能超出,也不会进行收缩
varchar(n):变长, 不能超出,当数据没有满足长度时会收缩
数字:
int:自增列
float
numeric(38,2):总位数为38位,2位小数
日期:
date: 年月日
time: 时分秒
timestamp:年月日时分秒 - (3) 非空: 数据列是否允许为null
主键约束:自带非空
unique: 可以为空(只有一个为null)
(4) 约束
主键约束: primary key
能够标识我们一行数据是独一无二的.(非常重要),查询速度非常快,不重复
- 唯一约束: unique
可以使一列的数据不重复 - 默认约束:default
当用户在这个列不给值,会用默认值填充 - 检查约束: check:mysql无效
检查数据的有效性
eg. check(sex=‘男’ or sex=‘女’) - 外键约束: foreign key
当一个表的中数据必须用另一个表的一个列的数据时,可以使用外键将他们建立关系
要求,一个表的外键必须是另一个表的主键
创建表使用命令:
create table 表名 (列名 列规则 约束)
mysql> create table product
-> (
-> id int auto_increment primary key,
-> productName varchar(50) unique not null,
-> price float not null DEFAULT 0,
-> unitsInStock int not null,
-> discontinued int not null
->
-> );
Query OK, 0 rows affected (0.01 sec)
创建成功后使用下面命令查看表
查看数据库中所有的表
使用show tables;
命令,可以查看当前数据库中所有的表,这个命令需要先选择要操作的数据库,不然会报错。我们发现了刚才创建的product表
show tables;
+-----------------+
| Tables_in_empdb |
+-----------------+
| dept |
| emp |
| product |
+-----------------+
3 rows in set (0.00 sec)
插入
insert into 表名 values(字段1, 字段2, 字段3... 字段n);
用于向表中插入一条数据
mysql> insert into product values(0,'abcd',28.99,20,1);
Query OK, 1 row affected (0.00 sec)
日志打印成功,下面来简单的查询一下,看看是否有这条数据
查询某个表中所有的信息
使用select * from 表名;
查询某个表中所有的信息
mysql> select * from product;
+----+-------------+-------+--------------+--------------+
| id | productName | price | unitsInStock | discontinued |
+----+-------------+-------+--------------+--------------+
| 1 | abcd | 28.99 | 20 | 1 |
| 3 | qwer | 8.99 | 0 | 12 |
+----+-------------+-------+--------------+--------------+
2 rows in set (0.00 sec)
证明了上面已经插入成功。
修改数据
使用update 表名 set 列=新值 where 条件
,把id为1的数据的price的值修改为22.2:
mysql> update product set price=22.2 where id=1;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> select * from product;
+----+-------------+-------+--------------+--------------+
| id | productName | price | unitsInStock | discontinued |
+----+-------------+-------+--------------+--------------+
| 1 | abcd | 22.2 | 20 | 1 |
| 3 | qwer | 8.99 | 0 | 12 |
+----+-------------+-------+--------------+--------------+
2 rows in set (0.00 sec)
修改后再次查询,可见已经修改成功
删除数据
使用delete from 表名 where 条件, 删除id为3的数据:
mysql> delete from product where id=3;
Query OK, 1 row affected (0.00 sec)
mysql> select * from product;
+----+-------------+-------+--------------+--------------+
| id | productName | price | unitsInStock | discontinued |
+----+-------------+-------+--------------+--------------+
| 1 | abcd | 22.2 | 20 | 1 |
+----+-------------+-------+--------------+--------------+
1 row in set (0.00 sec)
可见已经删除成功。
Navicat
上面只是简单的增删改查,在命令行操作sql虽然逼格很高,但是极为不方便,所以我们通常会下载一个可视化软件Navicat来进行数据库管理,
1、安装完成后,点击左上角的connection → mysql连接数据库
2、连接名随便输入,用户名和密码输入你要连接的数据库,点击Test Connection按钮,测试连接是否成功,如下,连接成功后点击save即可
3、连接成功后,打开刚才操作的数据库,即可看到表以及表数据:
总结
以上就是数据库以及表的创建,以及简单的增删改查语句,下一篇笔记重点介绍mysql的高级查询也是相对比较难的一些sql语句。