由于最近前端项目服务端是采用node开发,在开发的过程中涉及到数据交互,前端采用ajax,fetch等获取数据。服务端node的则采用mysql数据库。
在这个过程中会涉及到很多有关数据库的操作,对于本人来说mysql基本上是初学者,本文是用来记录在项目开发过程中有关mysql的操作笔记。
本文是在Mac电脑开发,采用命令行
1. 安装mysql
在mysql官网下载安装想要的版本,网址:https://www.mysql.com/downloads/
安装完成后依次点击电脑左上角苹果的logo,系统偏好设置,在最下面可以看到mysql的logo,点击进入,可以看到mysql的一些配置界面。
2. 登录mysql
使用终端进入到mysql的安装路径下:1
cd /usr/local/mysql
在进入到bin目录下,开始登录mysql1
2cd bin
./mysql -u root -p
这时需要输入用户密码,按照提示输入即可。
如果命令行中出现“mysql>”则表示登录成功。
3. mysql中的数据类型
mysql中有三大数据类型,分别为数字,日期\时间, 字符串。这三大类型又更细致的划分了许多子类型:
a. 数字类型
1. 整数: tinyint, smallint, mediumint, int, bigint
2. 浮点数: float, double, real, decimal
b. 日期和时间
1. 日期和时间: date, time, datetime, timestamp, year
c. 字符串类型
1. 字符串: char, varchar
2. 文本: tinytext, text, mediumtext, longtext
3. 二进制(可用来存储图片,音乐等): tinyblob, blob,mediumblob, longblob
4. 操作数据库
a. 创建数据库
创建一个名为test的数据库,在终端输入:1
create databases test;
注意: 所有的mysql命令行都是要以英文分好结束,无分号会报错。
删除数据库:1
drop database test;
b. 使用创建好的数据库test
1 | use test; |
查看创建的数据库是否成功可以使用:1
show databases;(大小写都可以,规则是大写)
数据库的一些规则:
关键字和函数名称全部大写;
数据库名称,表名称,字段名称全部大写;
sql语句必须以分好结尾;
c. 创建表
创建一个名为user的表:1
2
3
4
5
6
7
8CREATE TABLE IF NOT EXISTS `test`.`user` (
`id` INT NOT NULL AUTO_INCREMENT,
`username` VARCHAR(100) NULL COMMENT '姓名',
`phonenumber` VARCHAR(100) NULL COMMENT '电话',
`age` VARCHAR(100) NULL COMMENT '年龄',
`department` VARCHAR(200) NULL COMMENT '部门',
PRIMARY KEY (`id`))
ENGINE = InnoDB;
其中:
IF NOT EXISTS从句表示:不需要知道表是否存在,只要每次都进行创建即可。因为里面有判断,如果表存在的时候,再执行这句不会发生重复创建表的情况;
INT NOT NULL AUTO_INCREMENT: 数据类型为int,并且数据是自动自增的,NOT NULL 约束强制列不接受 NULL 值;
VARCHAR(100) NULL COMMENT ‘姓名’: 允许最大存100个字节,注释为”姓名“, 可以为空;
PRIMARY KEY:约束唯一标识数据库表中的每条记录,主键必须包含唯一的值,主键列不能包含 NULL 值;
显示所有表:1
show tables;
d. 查询某张表中的所有内容
查询user表中的内容:1
select * from user;
e. 在某张表中添加一列
在user表中添加一列address:
语法: alter table 表名 add 列名 列数据类型 [after 插入位置];1
alter table user add column address VARCHAR(100);
在user表中删除address列:
1 | alter table user drop cloumn address; |
f. 在某张表中删除一行
1 | delete from user(表名) where id='1'; |
g. 在某张表中更新一个字段的值
语法: update 表名称 set 列名称=新值 where 条件
1 | update user set userid=null where id='1'; |
h. 向表中插入数据
语法: insert [into] 表名 [(列名1,列名2,列名3,…)] values (值1,值2,值3, …);
其中[]中的值是可选的。
i. 修改列
语法: alter table 表名 change 列名 列新名称 新数据类型;1
alter table students change tel telphone char(13) default "-";
j. 重命名表
语法: alter table 表名 rename 新表名;1
alter table students rename user;
k. 删除表
语法: drop table 表名;1
drop table user;
l. 删除数据库
语法: drop database 数据库名;1
drop database test;