# 基础命令
# 字段
- mysql修改字段类型: --能修改字段类型、类型长度、默认值、注释 --对某字段进行修改
ALTER TABLE 表名 MODIFY [COLUMN] 字段名 新数据类型 新类型长度 新默认值 新注释; -- COLUMN关键字可以省略不写
alter table table1 modify column column1 decimal(10,1) DEFAULT NULL COMMENT '注释'; -- 正常,能修改字段类型、类型长度、默认值、注释
- mysql修改字段名:
ALTER TABLE 表名 CHANGE [column] 旧字段名 新字段名 新数据类型;
alter table table1 change column1 column1 varchar(100) DEFAULT 1.2 COMMENT '注释'; -- 正常,此时字段名称没有改变,能修改字段类型、类型长度、默认值、注释
alter table table1 change column1 column2 decimal(10,1) DEFAULT NULL COMMENT '注释' -- 正常,能修改字段名、字段类型、类型长度、默认值、注释
alter table table1 change column2 column1 decimal(10,1) DEFAULT NULL COMMENT '注释' -- 正常,能修改字段名、字段类型、类型长度、默认值、注释
alter table table1 change column1 column2; -- 报错
mysql> alter table white_user change column name nick_name varchar(50) null comment '昵称'; -- 正确
Query OK, 0 rows affected (0.02 sec)
Records: 0 Duplicates: 0 Warnings: 0
- 查看创建表的语句
show create table tableName ;
# 表
- 修改表名
ALTER TABLE 旧表名 RENAME TO 新表名 ;
mysql> show tables ;
+-------------------+
| Tables_in_db_test |
+-------------------+
| white_user |
+-------------------+
1 row in set (0.00 sec)
mysql> alter table white_user rename to white_user_new ;
Query OK, 0 rows affected (0.00 sec)
mysql> show tables ;
+-------------------+
| Tables_in_db_test |
+-------------------+
| white_user_new |
+-------------------+
1 row in set (0.00 sec)
- 在指定位置插入新字段
ALTER TABLE 表名 ADD [COLUMN] 字段名 字段类型 是否可为空 COMMENT '注释' AFTER 指定某字段 ;
--COLUMN关键字可以省略不写
- 删除字段
ALTER TABLE 表名 DROP [COLUMN] 字段名 ;
--COLUMN关键字可以省略不写
# 时间类型设置默认值
MySQL 的日期类型有5个,分别是: date、time、year、datetime、timestamp。
| 类型 | 字节 | 格式 | 用途 | 是否支持设置系统默认值 | | :-----| ----: | :----: || :-----| ----: | | date | 3 | YYYY-MM-DD | 日期值| 不支持 | | time | 3 | HH:MM:SS | 时间值或持续时间| 不支持 | | year | 1 | YYYY | 年份| 不支持 | | datetime | 8 | YYYY-MM-DD HH:MM:SS | 日期和时间混合值 | 不支持 | | timestamp | 4 | YYYYMMDD HHMMSS | 混合日期和时间,可作时间戳| 支持 |
根据上表可知,除了 timestamp 类型支持系统默认值设置,其他类型都不支持。
关于 default 设置,通常情况下会使用当前时间作为默认值。 想要设置某个日期列的默认值为当前时间,只能使用 timestamp 类型,并设置 DEFAULT NOW() 或 DEFAULT CURRENT_TIMESTAMP() 作为默认值. Example:
ts_time timestamp NOT NULL DEFAULT NOW();
or
ts_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP();
show table status like 'tableName' \G; -- 查看表信息
SHOW COLUMNS FROM tableName ; -- 查看表的字段信息
SHOW GRANTS FOR 'root'@'localhost'; --显示一个用户所拥有的权限
SHOW PROCESSLIST –- 显示系统中正在运行的所有进程,普通用户只能查看自己的进行信息
SHOW TABLE STATUS LIKE 'tableName'\G – 显示表属性信息
select user from mysql.user; # 查看所有用户 select user(); # 查看当前登陆用户
关于评论
评论前请填好“昵称”、“邮箱”这两栏内容,否则不会收到回复,谢谢!