今天我们来谈谈MySQL下对表的操作
目录
一、创建表
二、查看表
2.1 查看库中存有的表
2.2 查看表结构
2.3 查看表的创建语句
三、修改表
3.1 重命名表名
3.2 新增列
3.3 修改列的数据类型
3.4 删除列
3.5 重命名列
3.6 向表中插入数据
四、删除表
我们要想在数据库中创建表首先要进入想要创建表的库中,我们可以使用use语句来选择我们所要创建表的库:
use 库名称;
上面我就选择了user1这个库来准备建表
下面是建表语句:
CREATE TABLE table_name (
field1 datatype,
field2 datatype,
field3 datatype
) character set 字符集 collate 校验规则 engine 存储引擎;
table_name 表示表名
field 表示列名
datatype 表示列的类型
character set 字符集,如果没有指定字符集,则以所在数据库的字符集为准
collate 校验规则,如果没有指定校验规则,则以所在数据库的校验规则为准
engine 存储引擎,如果没有指定存储引擎,则以配置文件中的存储引擎为准
现在我们创建了一个person1表:
我们可以看到该表中有id/name/birthday三种不同类型的数据(对于数据类型我们在下期博客中会仔细讲解),并且该表使用的字符集为utf8,校验规则为utf8_general_ci,存储引擎为MyISAM,其中comment后的内容是对数据做的解释。
可以看到一下子多出来三个文件。
现在我们再来创建一个一模一样的表person2:
我们可以看到person2这个表唯一不同的是存储引擎是InnoDB,创建完后我们查看一下该库中的文件:
这次创建person2表只多了两个文件,这是由于存储引擎的不同所导致的(MyISAM存储引擎会将索引和数据分开存,InnoDB存储引擎会将数据和索引存在一起,关于索引我们在后期会谈到)。
show tables;
当我们选择了一个库时,可以用上面语句来查看库中存有的表:
desc 表名称;
用上面的语句我们可以查看具体某个表的结构:
我们可以看到该语句显示了表的数据名称、数据类型、约束、主键、外键等信息(约束、主键、外键我们后面会仔细讲解)
show create table 表名称;
通过上面的语句我们可以看到创建表时的语句:
不过直接显示太乱了,我们可以将语句中的;换成\G
这样子就可以去除一下无用的符号,更加方便我们查看
在项目实际开发中,经常修改某个表的结构,比如字段名字,字段大小,字段类型,表的字符集类型, 表的存储引擎等等。我们还有添加字段,删除字段等等的需求。这时我们就需要修改表:
alter table 表原名 rename to 重命名的表名;
下面我们将person1表重命名为person:
ALTER TABLE 想要新增列的表名 ADD 新增列名 数据类型 AFTER 想要增添的位置;
下面我们在person表原有的birthday这个列后面插入一个数据类型为varchar(128),列名为address的新列:
我们发现新增的非常成功,comment在这里说明这个列是记录用户住址的
alter table 列所在的表名 modify 列名 新的数据类型;
在下面我们将person这个表的name列的数据类型做了修改:
但是我们修改后可以发现,原来comment说明的内容没有了,所以我们在修改列类型的时候要注意这一点,在修改前应该仔细查看创建表时的语句。
注意:删除列一定要小心,删除的列及其对应表中的列数据都会被删除!
alter table 列所在的表名 drop 列名;
下面我们演示删除person表的birthday列:
alter table 表名 change 列名 重命名的列名 数据类型;
我们想要对列进行重命名会比较麻烦,要加上列的数据类型:
insert into 想要插入的表名(所要插入的列1,所要插入的列2...) values(数据1,数据2...);
下面我们向t1这张表中插入数据做演示:
下面我们向num这个列插入数据1:
下面我们向name这个列插入数据'张三':
如果表名称后面不写要插入的列,则默认从左到右向所有列插入数据:
drop table 表名;
现在我们演示删除person2这个表 :
本期博客到这里就结束了,下期很快和大家见面~
更多MySQL技能请看:http://t.csdn.cn/W9dQl
博主努力更新中~