MYSQL基础
创建数据库和表格
CREATE DATABASE easydata;: 创建一个名为 easydata 的数据库。
CREATE TABLE staff: 在当前数据库中创建一个名为 staff 的表格。
字段声明: 定义了表格中的各个字段,包括 id、code、name 和 salary,其中 id 是主键,并且设置为自动递增,code 和 name 为必填字段,salary 是一个存储小数的字段。
重命名表格
ALTER TABLE staff RENAME TO t_staff;
ALTER TABLE t_staff RENAME AS staff;
ALTER TABLE RENAME: 将表格 staff 重命名为 t_staff,然后再将其重新命名为 staff。
设置编码
ALTER TABLE staff CHARACTER SET utf8mb3;
ALTER TABLE CHARACTER SET: 设置表格 staff 的字符集为 utf8mb3,用于支持不同语言字符的存储。
-- 不同的字符占用的空间时不一样的
-- 数字,字母,欧洲部分语言字符占一个字节
-- 中东,阿拉伯语言占两个字节
-- 中文,韩文,日文,东南亚地区字符占三个字节
添加、修改、重新定义和删除列
ALTER TABLE staff ADD COLUMN sex VARCHAR(2);
ALTER TABLE staff MODIFY sex VARCHAR(20) NOT NULL;
ALTER TABLE staff MODIFY sex VARCHAR(20) NOT NULL AFTER name;
ALTER TABLE staff CHANGE sex age int NOT NULL;
ALTER TABLE staff DROP COLUMN age;
ALTER TABLE ADD COLUMN: 在 staff 表格中添加一个 sex 字段。
ALTER TABLE MODIFY: 修改 sex 字段的定义,将其长度修改为 20,并设置为不可为空。
AFTER: 将 sex 字段的位置调整到 name 字段之后。
CHANGE: 将 sex 字段改名为 age,同时修改其类型为 int。
DROP COLUMN: 删除 age 字段。
使用反引号标识符
CREATE TABLE `table` (
`varchar` VARCHAR(20)
);
反引号: 反引号 ( ) 在SQL中用于标识可能与SQL关键字冲突或包含特殊字符的列名或表名,例如在这里用于创建名为 table 的表格,并且有一个列名为 varchar 的字段。
删除表格
DROP TABLE `table`;
DROP TABLE: 删除名为 table 的表格。
sql
-- 注释(带空格)
#注释
-- 创建数据库
CREATE DATABASE easydata;
-- 表是数据库中存数据的主题
-- 创建表 表明 t_user user
CREATE TABLE staff (
-- 声明表中字段
-- 主键,表中数据的唯一的标识,不可重复,不可为null
-- auto_increment在插入数据时,该列的值可以不指定,会自动递增
id int auto_increment PRIMARY KEY,
-- VARCHAR(最大长度) 可变字符串类型
code VARCHAR(20) NOT NULL,
name VARCHAR(20) NOT NULL,
-- 数值一共存储10位,其中两位用来存储小数
salary DECIMAL(10,2)
)
-- 重命名表
ALTER TABLE staff RENAME TO t_staff;
ALTER TABLE t_staff RENAME AS staff;
-- 设置编码
-- mysql8 utf8 mb3和mb4 maxbyte
-- 不同的字符占用的空间时不一样的
-- 数字,字母,欧洲部分语言字符占一个字节
-- 中东,阿拉伯语言占两个字节
-- 中文,韩文,日文,东南亚地区字符占三个字节
ALTER TABLE staff CHARACTER SET utf8mb3;
-- 添加列
ALTER TABLE staff ADD COLUMN sex VARCHAR(2)
-- 重新定义列
ALTER TABLE staff MODIFY sex VARCHAR(20) NOT NULL;
-- 定义列的位置
ALTER TABLE staff MODIFY sex VARCHAR(20) NOT NULL AFTER name ;
-- 重命名列
ALTER TABLE staff CHANGE sex age int NOT NULL;
-- 删除列
ALTER TABLE staff DROP COLUMN age ;
-- 在起 列名,表名时经常会用到一些关键字 name 使用 ``标识
CREATE TABLE `table` (
`varchar` VARCHAR(20)
)
-- 删除表
DROP TABLE `table` ;