# 基础命令

# 字段

  1. mysql修改字段类型: --能修改字段类型、类型长度、默认值、注释 --对某字段进行修改
ALTER  TABLE 表名 MODIFY [COLUMN] 字段名 新数据类型 新类型长度  新默认值  新注释;  -- COLUMN关键字可以省略不写

alter  table table1 modify  column column1  decimal(10,1) DEFAULT NULL COMMENT '注释'; -- 正常,能修改字段类型、类型长度、默认值、注释
  1. 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
  1. 查看创建表的语句
show create table tableName ;  

#

  1. 修改表名
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)
  1. 在指定位置插入新字段
ALTER TABLE 表名 ADD [COLUMN] 字段名 字段类型 是否可为空 COMMENT '注释' AFTER 指定某字段 ;
--COLUMN关键字可以省略不写
  1. 删除字段
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(); # 查看当前登陆用户

关于评论

评论前请填好“昵称”、“邮箱”这两栏内容,否则不会收到回复,谢谢!