频道栏目
首页 > 资讯 > MySQL > 正文

MySQL数据库之MySQL常用操作

16-10-21        来源:[db:作者]  
收藏   我要投稿

写在前面的话

这篇文章是我本科的时候就写得,今年是在草稿箱里的第二个年头,快要第三个了,因为觉得实在是太基础了没有发的价值,但是我发现网上错的实在是太多了,那如果我们发一篇博客,连正确性都不能保证,这是件非常糟糕的事情。我写得每一篇博客,我要做的最基本的事情就是保证所有东西的准确性。

如果你看其他博客觉得模糊的东西,或者不清楚的东西,我敢保证我发表的每一个知识点都是正确的,经过我反复考证和研究,并且实践过的。

所有的代码都是我亲自写了一遍,数据集都是完整的。所有的代码都可以运行出来,所有的内容都保证其百分之百的正确性。所有运算都是我一遍遍在草稿纸上演算过的。以上内容针对我发的所有技术博客。

数据库常用操作

查看已经存在的数据库

创建数据库 CREATE DATABASE testdb;

删除一个数据库

表的操作

展示出一个数据库中存在的表

在创建表的时候我们需要先选择数据库,使用use testdb; 或者使用connect testdb; 命令 testdb 代表的是你要链接的数据库

注意这个是很关键的,因为这个关系是,一个数据库中存放着很多的表,我们要在那个数据库中创建表,那么我们需要先链接上这个数据库

上面这个操作就表示我们已经链接好了一个数据库。

在创建一个表的时候一般常用的语法形式如下:

CREATE TABLE 表名(属性名 数据类型 [完整性约束], ....)

完整性约束条件表

PRIMARY KEY | 主键,可以唯一标识对应的元组

FOREIGN KEY | 外键

NOT NULL | 标识该属性不能为空

UNIQUE | 标识该属性的值唯一

AUTO_INCREMENT | 标识该属性的值自动增加,这个必须是主键或者是主键的一部分才可以

DEFAULT | 为属性设置默认值

创建一个表,设置某一个字段位主键

关系型数据库中的一条记录中有若干个属性,若其中某一个属性组(注意是组)能唯一标识一条记录,该属性组就可以成为一个主键
比如
学生表(学号,姓名,性别,班级)
其中每个学生的学号是唯一的,学号就是一个主键

课程表(课程编号,课程名,学分)
其中课程编号是唯一的,课程编号就是一个主键

成绩表(学号,课程编号,成绩)
成绩表中单一一个属性无法唯一标识一条记录,学号和课程号的组合才可以唯一标识一条记录,所以 学号和课程号的属性组是一个主键

主键是一个表的特殊字段。该字段能唯一标识该表中的每条信息。主键是用来标识每个记录的,每个记录的主键值是不同的。

我们可以用desc 表名这个命令来查看表的结构

设置多字段的主键

PRIMARY KEY (属性名1,属性名2,..., 属性名3)

这样我们就为我们的数据表设置了两个主键

设置外键

外键的定义:

如果公共关键字在一个关系中是主关键字,那么这个公共关键字被称为另一个关系的外键。


如果看上面的这个描述有点懵逼的话,我们还是来举一个例子:

学生表(学号,姓名,性别,班级)
其中每个学生的学号是唯一的,学号就是一个主键

课程表(课程编号,课程名,学分)
其中课程编号是唯一的,课程编号就是一个主键

成绩表(学号,课程编号,成绩)
成绩表中单一一个属性无法唯一标识一条记录,学号和课程号的组合才可以唯一标识一条记录,所以 学号和课程号的属性组是一个主键
 

注意:

在学生表中,学号是学生表的关键字,学号也是成绩表的属性。那么学号就是一个公共属性,那么在学生表中的学号就是成绩表中的外键。

注意是学生表中的学号在成绩表中这个学号被叫做是外键,不要搞混了。

同理:

那么课程表中的课程编号在成绩表中也就是外键。

再说一遍,如果某个字段或者是一组字段在某个关系A中是主键,在另一个关系B中是属性,那么这个共同的字段在B中就叫做外键,外键就是别人的主键在自己家里不是主键,就是这么个意思,但是总是键。

在这里我们建立了一个表叫example2,这个表的主键是stu_id 和course_id, 我们的example3这个表中有两个属性是依赖于我们的表example2的,我们把example2叫做父表,我们把example3叫做子表。

设置表的非空性约束

使用not null

设置表的唯一性约束 我们使用unique

设置表的属性值自动增加

AUTO_INCREMENT 是MySQL数据库的一个特殊的约束条件,起作用主要是为表中的新纪录自动生成唯一的ID,一个表只有有一个字段使用AUTO_INCREMENT约束。这个约束字段可以是任何整数类型默认情况下是从1开始自增的。

e.g:

属性名 数据类型 AUTO_INCREMENT

在数据库中有三种操作,一种是DDL,数据库定义语言,有create,alter,drop 这些操作,这些操作都是对数据库的结构做改变的,不会对数据产生影响。

修改数据库的名字

在我们的test这个数据库当中有六个表我们先用desc 看一下student这个表的格式,现在我们对这个表进行修改,改变这个表的名字。

我们使用 ALTER修改我们的数据库中表的名字

ALTER TABLE 旧名字 RENAME 新名字;

修改完名字之后我们在查看这个数据库中的student这个表发现是找不到这个表的。

我们在查看一下这个数据库中的表格,发现并没有已经修改好了

修改字段的属性的数据类型

方法;

alter table 表的名字 modify 属性名 修改的数据类型

修改属性名

增加字段名

增加字段的完整性约束

将字段增加在第一个位置:

在指定位置增加属性:

删除字段

修改字段到特定的位置:

删除表

总结

在DDL里面我们基本的操作是对数据库的定义,数据库的定义,数据库的定义不涉及任何的数据操作,数据不会增加也不会减少,数据定义是表的格式包含什么属性字段等等。一般的操作就是create 创建数据库,alter 修改数据库,drop 一般做的就是删除操作。

创建数据库

create TABLE 表名;

删除数据库

drop TABLE 表名;

 

对数据库字段进行修改

对数据库的字段属性修改我们使用的关键字都是alter, 增加字段用ADD, 删除字段用DROP,为数据库改名字用 RENAME, 要在数据库中某个字段修改名字我们用CHANGE,要修改字段的名字,完整性约束,以及字段在表中的排列位置我们全部都用modify。

增加字段

ALTER TABLE 表名 ADD 属性名 数据类型 [完整性约束] [FIRST|AFTER 属性名2]

删除字段

ALTER TABLE 表名 DROP

修改字段名

ALTER TABLE 表名 CHANGE 旧属性名 新属性名 新数据类型

 

修改字段的数据类型

ALTER TABLE 表名 MODIFY 属性名 数据类型 [完整性约束]

修改字段的排列位置

ALTER TABLE 表名 MODIFY 属性名 数据类型 first | after 属性名2

相关TAG标签
上一篇:MySQL主从配置详解
下一篇:计算机网络之面试常考题
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站