一、mysql安装
brew install mysql // 安装mysql
mysql.server start // 启动mysql服务
mysql -u root // 打开mysql,有密码时执行mysql -u root -p 加密码
// 打开xampp数据库,注意.mysql那里要换行
cd /Applications/xampp/bin
./mysql #或者使用root用户./mysql -u root运行
show databases; // 显示所有数据库
create database cAuth; // 新建cAuth数据库,注意后面的分号要加
Use cAuth; // 打开这个数据库
drop database ; // 删除数据库
show tables; // 显示该数据库的所有表
show create table books; // 展示创建该数据表的语句
select * from cSessionInfo; // 查看表数据
desc cSessionInfo; // 查看表结构
drop table 表名; // 删除数据表
create table 表名; // 新建数据表
delete from h5user where opid = 'o_XOw1bc51n3j1CyXmUIWguAnsO4'; // 删除某条数据
alter table books add column count int default 0; // 给books表新增一个字段count 整型 默认值为0
await mysql("books").where("id",id).increment('count',1); // count 字段自增1
id int not null auto_increment primary key // int 表示数字 not null 不允许为空 auto_increment 递增 primary key 必须为主键
如果运行mysql 报错Error: ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client
起因:mysql8.0加密方式的原因报错。
解决办法:
// 执行指令
mysql -u root -p
123456
use mysql;
alter user 'root'@'localhost' identified with mysql_native_password by '123456';
flush privileges;
// 注意:123456是我自己连接数据库的密码哈
二、mysql基本认识
image.png
以上红框中的三个库是系统库,一般不允许操作
image.png
Tables是数据表
Views是视图
Stored Procedures是存储过程,相当于写一段小程序
Functions是函数
三、mysql查询操作
# 查询所有gender为M的
SELECT * FROM db_test.t_student WHERE gender = 'M';
# 查询gender为M的一共有多少条数据,返回一个数字
SELECT count(*) FROM db_test.t_student WHERE gender = 'M';
# 查询年龄最大的一条数据(日期最小)min()求最小值
SELECT min(birthdate) FROM db_test.t_student;
# 查询id,name并合并
SELECT concat(id,name) FROM db_test.t_student;
# 查询id,name并合并(且加-分隔)
SELECT concat(id,'-',name) FROM db_test.t_student;
# 条件查询 筛选出生日期在1993到2003之间的,以下两种方法
SELECT * FROM db_test.t_student WHERE birthdate >= '1993-01-01' AND birthdate <= '2003-12-22'
SELECT * FROM db_test.t_student WHERE birthdate BETWEEN '1993-01-01' AND '2003-12-22'
# 筛选出姓赵的同学,%是通配符(以赵开头,后面随意),LIKE是像的意思,但是LIKE会降低数据库性能
SELECT * FROM db_test.t_student WHERE name LIKE '赵%'
# 筛选名字带六的
SELECT * FROM db_test.t_student WHERE name LIKE '%六%'
# 顺序排序,ASC可省略
SELECT * FROM db_test.t_student ORDER BY birthdate ASC
#倒序排序
SELECT * FROM db_test.t_student ORDER BY birthdate DESC
# 联表查询
SELECT * FROM t_student,t_class WHERE t_student.class_id=t_class.class_id
# 联表查询需要的数据
SELECT t_student.id,t_student.name,t_class.class_name FROM t_student,t_class WHERE t_student.class_id=t_class.class_id
# 左连接,效果与上一个相同
SELECT t_student.id,t_student.name,t_class.class_name
FROM t_student LEFT JOIN t_class
ON t_student.class_id=t_class.class_id