数据库基本指南

基本使用

-- 增删改查
INSERT INTO products (name, price, cover) VALUES ('Apple', 1.2, 'apple.jpg');
SELECT * FROM products WHERE price > 1.0;
UPDATE products SET price = 1.5 WHERE name = 'Apple';
DELETE FROM products WHERE name = 'Apple';

-- 按照 id 倒序获取前 5 条数据,跟 OFFSET 5 表示跳过前 5 行, DESC 降序,ASC 升序
SELECT * FROM tablename ORDER BY id DESC LIMIT 5;

-- 清空表
DELETE FROM tablename;

-- 删除表
DROP TABLE tablename;

-- 记录阅读量 +1
UPDATE xxxxx SET count = count+1 WHERE id = 1;

-- 将 file_url 表中的 url 列中所有 apple 字段替换成 banana
UPDATE file_url SET url = replace (url, 'apple', 'banana');

创建表名为 user,id 主键,整数型,自增长,user 字符串型,最大长度 30,不为空

CREATE TABLE IF NOT EXISTS user (
  id INT AUTO_INCREMENT PRIMARY KEY,
  user VARCHAR(30) NOT NULL
);

MySQL / MariaDB

TEXT 类型最大 64k,MEDIUMTEXT 类型最大 16m,LONGTEXT 类型最大 4g

show databases;         -- 列出所有数据库
show tables;            -- 列出所有表
show columns from user; -- 查看 user 表的结构
show create table user; -- 查看 user 表的创建语句

连接数据库,后面跟数据库名称可连接指定数据库(test),本机可省略 -h,无密码可省略 -p

mysql -h 127.0.0.1 -u root -p123456 test
  • 数据导出 sql 文件

增加 --no-tablespaces 参数无视表结构,--set-gtid-purged=OFF 不包含 GTID,后跟表名可单独导出一张表

mysqldump -h 127.0.0.1 -u root -p123456 database_name > db.sql
  • 恢复 sql 数据
mysql -u root -p database_name < db.sql

或者

use database_name
source /sql/file.sql
  • 设置密码
USE mysql
SET password = PASSWORD('newpassward');
FLUSH PRIVILEGES;

如果出现 ERROR 1064 (42000),尝试去除 PASSWORD() 函数,直接写密码

SQLite

支持的数据类型见 https://sqlite.org/datatype3.html#affinity_name_examples

.table       -- 列出所有表
.schema user -- 查看 user 表的创建语句