mysql表操作

 1.创建表

语法:
create table 表名(
字段名1 类型[(宽度) 约束条件],
字段名2 类型[(宽度) 约束条件],
字段名3 类型[(宽度) 约束条件]
);

注意:
1. 在同一张表中,字段名是不能相同
2. 宽度和约束条件可选
3. 字段名和类型是必须的

 

解决乱码问题

mysql> create database db1 charset latin1;
mysql> use db1;
mysql> create table t1(name varchar(20));
mysql> show create table t1; #查看表,发现表默认与数据db1的字符编码一致
mysql> insert into t1 values(''); #插入中文出错,因为latin1不支持中文
ERROR 1366 (HY000): 
mysql> 

#解决方法一:删除库db1,重建db1,字符编码指定为utf8

#解决方法二:修改
mysql> alter table t1 charset utf8; #修改表t1的编码
mysql> insert into t1 values(''); #虽然t1的编码改了,但是t1的字段name仍然是按照latin1编码创建的
ERROR 1366 (HY000): 
mysql> alter table t1 modify name varchar(20); #需要重新定义下字段name
mysql> insert into t1 values('');
mysql> select * from t1;
+------+
| name |
+------+
| 林   |
+------+

ps:不要忘记将数据库编码也改成utf8,这样以后在该数据库下创建表时,都默认utf8编码了

 

永久解决乱码问题

#1. 修改配置文件
[mysqld]
default-character-set=utf8 
[client]
default-character-set=utf8 
[mysql]
default-character-set=utf8

#mysql5.5以上:修改方式有所改动
    [mysqld]
    character-set-server=utf8
    collation-server=utf8_general_ci
    [client]
    default-character-set=utf8
    [mysql]
    default-character-set=utf8

#2. 重启服务
#3. 查看修改结果:
\s
show variables like '%char%'

 

 

2.查看表结构

    desc tab_name              查看表结构
    show columns from tab_name      查看表结构
    show tables             查看当前数据库中的所有的表
    show create table tab_name      查看当前数据库表建表语句 

 

 

3.修改表结构

   -- (1)增加列(字段)
      alter table tab_name add [column] 列名 类型[完整性约束条件][first|after 字段名];
      
      #添加多个字段
      alter table users2 
            add addr varchar(20),
            add age  int first,
            add birth varchar(20) after name;

   -- (2)修改一列类型
      alter table tab_name modify 列名 类型 [完整性约束条件][first|after 字段名];

-- (3)修改列名 alter table tab_name change [column] 列名 新列名 类型 [完整性约束条件][first|after 字段名];
-- (4)删除一列 alter table tab_name drop [column] 列名;

-- (5)修改表名 rename table 表名 to 新表名; -- (6)修该表所用的字符集 alter table student character set utf8;

 

4.删除表

drop table tab_name;

 

posted @ 2017-09-13 21:15  嘟囔囔小孩  阅读(128)  评论(0编辑  收藏  举报