当前位置:首页 / 文章测试 / 常用sql语句

常用sql语句

开始打字练习

-- MySQL Common SQL Commands with Chinese Annotations

-- 创建数据库:使用 UTF-8 编码创建数据库

CREATE DATABASE my_database CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

-- 显示所有数据库

SHOW DATABASES;

-- 删除数据库

DROP DATABASE my_database;

-- 选择要操作的数据库

USE my_database;

-- 创建用户表

CREATE TABLE users (

id INT AUTO_INCREMENT PRIMARY KEY, -- 用户ID,自增主键

name VARCHAR(100), -- 姓名

age INT, -- 年龄

email VARCHAR(100) -- 邮箱

);

-- 查看表结构

DESC users;

-- 修改表名为 customers

RENAME TABLE users TO customers;

-- 增加字段 address

ALTER TABLE customers ADD COLUMN address VARCHAR(200);

-- 修改 age 字段为 SMALLINT 类型

ALTER TABLE customers MODIFY age SMALLINT;

-- 删除字段 address

ALTER TABLE customers DROP COLUMN address;

-- 删除表

DROP TABLE customers;

-- 插入单条数据

INSERT INTO users (name, age, email) VALUES ('Alice', 30, 'alice@example.com');

-- 插入多条数据

INSERT INTO users (name, age, email) VALUES

('Bob', 25, 'bob@example.com'),

('Charlie', 28, 'charlie@example.com');

-- 查询所有数据

SELECT * FROM users;

-- 条件查询:年龄大于25

SELECT * FROM users WHERE age > 25;

-- 模糊查询:名字以A开头

SELECT * FROM users WHERE name LIKE 'A%';

-- 排序查询:按年龄降序

SELECT * FROM users ORDER BY age DESC;

-- 更新用户邮箱

UPDATE users SET email = 'alice@newdomain.com' WHERE name = 'Alice';

-- 删除名为 Bob 的用户

DELETE FROM users WHERE name = 'Bob';

-- 创建新用户

CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';

-- 授权用户访问所有数据库和表

GRANT ALL PRIVILEGES ON *.* TO 'newuser'@'localhost';

-- 查看用户权限

SHOW GRANTS FOR 'newuser'@'localhost';

-- 撤销权限

REVOKE ALL PRIVILEGES ON *.* FROM 'newuser'@'localhost';

-- 删除用户

DROP USER 'newuser'@'localhost';

-- 刷新权限表

FLUSH PRIVILEGES;

-- 备份数据库

-- 使用 mysqldump 工具将 my_database 备份到 backup.sql 文件

mysqldump -u root -p my_database > backup.sql

-- 恢复数据库

-- 从 backup.sql 文件导入数据到 my_database

mysql -u root -p my_database < backup.sql

-- 主从复制配置(主库设置)

CHANGE MASTER TO

MASTER_HOST='192.168.1.10',

MASTER_USER='replica',

MASTER_PASSWORD='123456',

MASTER_LOG_FILE='mysql-bin.000001',

MASTER_LOG_POS=107;

-- 启动从库复制线程

START SLAVE;

-- 查看从库状态

SHOW SLAVE STATUS\G;

-- 停止从库复制

STOP SLAVE;

-- 双主复制注意:必须使用不同 server-id,并避免冲突的 auto_increment 设置

-- 设置 server-id(my.cnf 配置文件中)

server-id=1 -- 主库1

server-id=2 -- 主库2

-- 启用 binlog(主库需要)

log-bin=mysql-bin

-- 配置 auto-increment 步长避免冲突

auto_increment_increment=2

auto_increment_offset=1 -- 主库1 设置为1,主库2设置为2

声明:以上文章均为用户自行发布,仅供打字交流使用,不代表本站观点,本站不承担任何法律责任,特此声明!如果有侵犯到您的权利,请及时联系我们删除。