库语句
创建数据库
-- 数据库配置文件default-character-set是utf8_mb3,则会导致创建的表是utf8mb3。我们无法人为控制,只能建库完毕后执行修改库字符集或者建库前修改MySQL配置
CREATE DATABASE IF NOT EXISTS `school` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
修改数据库的字符集
-- 指定库的字符集
ALTER DATABASE `school` CHARACTER SET utf8mb4
指定库排序规则
-- 指定库的排序规则
ALTER DATABASE `school` COLLATE 'utf8mb4_bin'
当前库状态语句
-- 查看建表语句
SHOW CREATE DATABASE `school`
删除数据库
-- 删除数据库
DROP DATABASE `school表名错误就无法删除了`;
Navicat编辑数据库时执行的SQL
查看库的字符集
-- 查看库的字符集,这是Navicat点击"编辑数据库"执行的SQL。直接执行就行,没有参数
SELECT @@character_set_database, @@collation_database
事务
开启事务
START TRANSACTION;
提交事务
COMMIT;
表语句
建表
-- 无注释版
CREATE TABLE my_table (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
age INT,
email VARCHAR(100) UNIQUE,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
-- 带有注释的
CREATE TABLE my_table (
id INT AUTO_INCREMENT PRIMARY KEY COMMENT '唯一标识符',
name VARCHAR(50) NOT NULL COMMENT '姓名',
age INT COMMENT '年龄',
email VARCHAR(100) UNIQUE COMMENT '电子邮件',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间'
) COMMENT '示例表,用于存储用户信息';
默认值、默认时间、字段字符集、字段排序方式、索引、联合索引、注释、
查看X表的创建信息
SHOW CREATE TABLE my_table;
修改表字符集、排序规则
-- 修改名为 "my_table" 的表的字符集为 utf8mb4,排序规则为 utf8mb4_general_ci:
ALTER TABLE my_table
CONVERT TO CHARACTER SET utf8mb4
COLLATE utf8mb4_general_ci;
截断表
truncate TABLE_NAME
删除表
DROP TABLE IF EXISTS orders;
添加字段
-- 在现有字段 "existing_column" 之后添加一个名为 "new_column" 的 INT 类型字段。
ALTER TABLE my_table ADD new_column INT AFTER existing_column;
修改字段
-- 为 "my_column" 的字段的注释修改为 "This is a new comment"。
ALTER TABLE my_table
MODIFY COLUMN my_column INT COMMENT 'This is a new comment';
删除字段
ALTER TABLE my_table DROP COLUMN column_name;
添加索引
-- 添加单个索引
CREATE INDEX idx_name ON my_table (my_column);
-- 添加联合索引
ALTER TABLE table_name ADD INDEX index_name (column1, column2, ...);
查看索引
SHOW INDEX FROM my_table;
-- 或者
SHOW INDEXES FROM my_table;
删除索引
ALTER TABLE table_name DROP INDEX index_name;
修改索引
-- 先删除索引,再添加索引
ALTER TABLE my_table DROP INDEX idx_name;
ALTER TABLE my_table ADD INDEX idx_name (new_column1, new_column2);
插入数据
INSERT INTO aa_seller(`id`, `order_id`) VALUE (10000, 10000);
INSERT INTO aa_seller(`id`, `order_id`) VALUES (10001, 10001);
批量插入数据
INSERT INTO aa_seller(`id`, `order_id`) VALUES (10003, 10003),(10004, 10004);
插入数据如果存在就更新 ON DUPLICATE KEY UPDATE
INSERT INTO aa_seller(`id`, `order_id`) VALUE (10000, 10000) ON DUPLICATE KEY UPDATE `order_id` = `order_id` + 1;
INSERT INTO aa_seller(`id`, `order_id`) VALUE (10000, 10000),(10001,10001) ON DUPLICATE KEY UPDATE `order_id` = `order_id` + 1;
特殊说明:
上述文章均是作者实际操作后产出。烦请各位,请勿直接盗用!转载记得标注原文链接:www.zanglikun.com
第三方平台不会及时更新本文最新内容。如果发现本文资料不全,可访问本人的Java博客搜索:标题关键字。以获取最新全部资料 ❤
第三方平台不会及时更新本文最新内容。如果发现本文资料不全,可访问本人的Java博客搜索:标题关键字。以获取最新全部资料 ❤