作者:小树苗渴望变成参天大树
作者宣言:认真写好每一篇博客
作者gitee:gitee✨
作者专栏:C语言,数据结构初阶,Linux,C++ 动态规划算法
如 果 你 喜 欢 作 者 的 文 章 ,就 给 作 者 点 点 关 注 吧!
上一篇博主刚介绍过库的操作,其实库的操作还是很简单的,数据库里面就是使用表来管理数据的,当然还有其他的,表是最重要的,所以今天这篇我们就来介绍表的操作,还是在学习DDL数据定义语言,不是数据操纵语言,所以这篇就只是对表的结构做操作,里面的数据怎么处理以及一些字段这篇不做介绍,这个先要了解,话不多说我们开始进入正文的讲解。
语法:
CREATE TABLE table_name (
field1 datatype,
field2 datatype,
field3 datatype
) character set 字符集 collate 校验规则 engine 存储引擎;
说明:
1.datatype 表示列的类型
2.field 表示列名
3.character set 字符集,如果没有指定字符集,则以所在数据库的字符集为准
4.collate 校验规则,如果没有指定校验规则,则以所在数据库的校验规则为准
5 .需要先进入一个数据库在创建表
- 在创建表的时候设置的字符集和校验规则不写就是默认的,相当于从数据库上继承下来的。
- 不同的存储引擎创建表会形成不同的文件,我们目前认为不管使用那种引擎在上层都是无差别的。
- user 表存储引擎是 MyISAM ,在数据目中有三个不同的文件,分别是:
user.frm:表结构
user.MYD:表数据
user.MYI:表索引- 创建表的核心就是定义列属性,他和我们学习到的其他语言定义变量是相反的,这个将在下一篇介绍数据类型的时候详细介绍。
show tables;//查看当前数据库中所有表
desc 表名;查看表的具体结构
show create table 表名 \G;查看定义表时候的语句
\G选项加不加其实是为了看的简洁而已,没啥其他作用,使用上面的语句可以把我们创建表时候的创建语句显示出来,但是里面有些字段我自己创建的时候并没有写,那这里为什么会出现,原因是我们自己输入的创建语句会被mysql解析的,有的默认的你在创建的时候可以不写,但是执行的时候内部要使用完整的,所以给你展示的也是完整的。
在项目实际开发中,经常修改某个表的结构,比如字段名字,字段大小,字段类型,表的字符集类型,表的存储引擎等等。我们还有需求,添加字段,删除字段等等。这时我们就需要修改表。
语法:
ALTER TABLE tablename ADD (column datatype [DEFAULT expr][,column
datatype]...);
ALTER TABLE tablename MODIfy (column datatype [DEFAULT expr][,column
datatype]...);
ALTER TABLE tablename DROP (column);
语法看上去很复杂,所以大家先不要管语法,博主通过案例给大家演示一下,大家在回头看语法就理解了。
前期工作:在user表中插入两条数据
insert into users values(1,'a','b','1982-01-04'),(2,'b','c','1984-01-04');
alter table users add assets varchar(100) comment '图片路径' afterbirthday;
我们新增新的字段的时候和创建表时候定义字段是一样的,after后面是将新增的字段放在已有字段的后面。因为新增,没有数据,所以查询直接为空,并且对原来的数据没有产生影响
alter table users modify name varchar(60);
我们看到确实修改成功了,但是修改的是整个字段的语句,我们原有的comment也没有了。注意:我们使用这种方式修改数据类型大小变大对员数据没有影响,但是变小可以会出现截断,出现数据错误问题
alter table user drop password;
我们看到确实把这一列属性删除了,但是对应的数据也删除了,所以这个操作大家还是要注意的。
alter table user change name xingming varchar(60);
修改名字需要冲顶定义属性,至少有名字和数据类型。
alter table user rename to ceshibiao;
to:可以省掉
说明:
我们对表的属性进行修改,可以通过这个区查看对几行数据产生了影响。
DROP [TEMPORARY] TABLE [IF EXISTS] tbl_name [, tbl_name] ...
drop table if exists ceshibiao;
删除表也是一个需要注意的问题,大家不要轻易删除表,会造成数据丢失。
这篇相对来说在修改哪里语句比较多,但是有相通的地方,大家下去多练习就可以,下一篇我们讲解数据类型。