mysql 笔记三
MySQL-3
查看表
1. describe  查看表的基本定义
describe | desc table_name
2. show create table 	查看表的详细定义
show create table table_name;
3. show tables 查看所有表的表名
修改表的结构
添加字段(ADD)
alter table table_name 
add [colmun] column_definition [first | after col_name]  
first 可选参数,将新添加的字段设置为表的第一个字段。
after 可选参数,将新添加的字段添加到指定的列col_name 后面。
alter table text4 add sex enum('nan','nv') after id;
修改表名(rename)
alter table table_name rename [to] new_table_name 
alter table test2 rename te;
修改字段名(change)
  alter table table_name change column_name new_column_name column_definition [FIRST | AFTER col_name]
  
  ¥ column_definition: 字段列的定义,包括数据类型和约束条件。
  ¥ FIRST : 可选参数,将字段设置为表的第一个字段。
  ¥ AFTER : 可选参数,将字段修改到指定的列 col_name 后面。
  
  - EX:	
    alter table te change name 名字 varchar(20);
修改字段类型(modify)
alter table table_name modify column_name column_definition [FIRST | AFTER col_name]
- ex
- 通常是编码格式问题
  ERROR 1291 (HY000): Column '性别' has duplicated value '?' in ENUM
  try1:	ALTER TABLE `te` CHANGE `性别` `性别` VARCHAR(36) CHARACTER SET utf8 NOT NULL;
  try2:	alter table te DEFAULT CHARACTER SET utf8;
  还是不成功😂
**EX:**
alter table te modify 性别 enum('男','女') first;
删除字段(drop)
alter table table_name drop column_name
**EX:**
alter table te drop 性别; 😡
修改表的默认储存引擎(engine)和字符集(charset)
alter table table_name [default] engine = {myisam | innodb} charset = [gbk|utf8|...]
EX:
alter table te engine=myisam, charset=gbk;
删除表
drop table [if exists] table_name1,table_name2...;
EX:
drop table te; 👌
复制表
create [temporary] table [if not exists] table_name [like old_table_name] |[as (select_statement)];
- 
关于空值(NULL)的说明 
 空值通常用于表示未知、不可用或将在以后添加的数据,切不可将它与数字0或字符串类型的空字符串混为一谈。
- 
关于列的标志(identity)属性 
 任何表都可以创建一个包含系统所生成序号值得标志列。该序号值唯一标识表中的一列,且可以作为键值。
- 
关于列类型的隐含改变 
 在MySQL中,系统会隐含的改变在create table 语句或 alter table 语句中所☞定的列类型。
 长度小于4的varchar类型会被改变为char类型
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号