DB
最后更新时间:
启动mysql
mysqld --standalone ## 主键
用 自增id 或 GUID
全局唯一GUID类型:也称UUID,使用一种全局唯一的字符串作为主键,类似8f55d96b-8acc-4636-8cb8-76bf8abc2f57。GUID算法通过网卡MAC地址、时间戳和随机数保证任意计算机在任意时间生成的字符串都是不同的,大部分编程语言都内置了GUID算法,可以自己预算出主键。
alter table last_view_ats add primary key (value);
多对一: 外键
在students表中,通过class_id的字段,可以把数据与另一张表关联起来,这种列称为外键。
多对多: 中间表
相当于存储所有的边
索引
通过对数据库表创建索引,可以提高查询速度;
命令
进入db
USE db;
查看一个表的所有信息
select * from table;
CREATE TABLE
1 | |
条件
1 | |
AND OR NOT
不等于 <>
使用LIKE判断相似 : `key LIKE %bc%' ( '%表示任意字符,例如'ab%'将匹配'ab','abc','abcd' )
SELECT 列1, 列2, 列3 FROM ...
排序
SELECT id, name, gender, score FROM students ORDER BY score;
SELECT id, name, gender, score FROM students ORDER BY score DESC;
SELECT id, name, gender, score FROM students ORDER BY score DESC,
gender;
先按score列倒序,如果有相同分数的,再按gender列排序
计数
把 * 变成 count(*)
SUM AVG MAX MIN
分组
CROUP BY
修改列信息
ALTER TABLE name ADD PRIMARY KEY (columnName);
ALTER TABLE name DROP COLUMN aaa;
删除
DELETE FROM tablename WHERE ...
Gorm 连接
1 | |
MySQL 认证方式问题: 就是mysql可能只能用 unix socket 而非 tcp 登录
MySQL 默认可能使用 auth_socket 或 unix_socket 插件认证,root 用户可能被配置为仅通过 Unix 套接字(非 TCP)登录,而非密码认证。 使用 -h 127.0.0.1 尝试通过 TCP 连接,但 MySQL 认为用户是 'root'@'localhost',且密码或权限未正确配置。 检查 root 用户的认证方式:
SELECT user, host, plugin FROM mysql.user WHERE user = 'root';
把 @tcp(127.0.0.1:3306)换成
@unix(/var/run/mysqld/mysqld.sock)