MySQL数据库基本操作的示例分析

51次阅读
没有评论

共计 5645 个字符,预计需要花费 15 分钟才能阅读完成。

这篇文章主要介绍了 MySQL 数据库基本操作的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让丸趣 TV 小编带着大家一起了解一下。

一、数据库的安装

这个就不在这里过多阐述了,因为网上实在是太多安装 mysql 的教程了,有了我给的 mysql,在按照这个安装教程 (MySQL 安装教程) 去看,就能够安装完好。

安装好 mysql 后,如果需要使用 windows 命令窗口 (也就是 cmd) 来操作 mysql,那么就需要配置环境变量,在安装好的 mysql 下找到 bin,将其目录放到环境变量 path 中去,就行了,检测成功与否的方法是在 cmd 命令窗口中输入 mysql,就会出现一大段英文,就说明成功了,反之失败,如果不会的话就去百度搜教程。

二、数据库的基本操作

1、开启 mysql 服务命令

net start mysql

2、进入 mysql 的两种方式

明文进入:mysql -uroot -proot 格式:mysql - u 帐号 - p 密码

密文进入:mysql -uroot -p 按 enter 会提示你输入密码(Enter pssword:),此时你写的密码就会显示为 *** 这样。

3、查看 mysql 中所有的数据库(一般在固定的单词命令就会是用大写,这个要习惯,看多了敲多了就认识了)

前面四个数据库是 mysql 中自带的,也就是必须的.

SHOW DATABASES;

4、创建名为 test_1 的数据库

格式:CREATE DATABASE 数据库名

CREATE DATABASE test_1;

5、删除名为 test_1 的数据库

格式:DROP DATABASE 数据库名

DROP DATABASE test_1;

总结:学习了对数据库的三个操作,1、查看所有数据库 2、创建数据库 3、删除数据库

三、数据表的基本操作

数据表和数据库还有 Mysql 三者的关系

mysql 中保存了很多数据库、一个数据库中可以保存很多表。

对数据表的增 (创建表) 删(删除表)改 (修改表字段) 查(查询表结构)。注意:这里的操作对象是表,对表的操作也就是表的结构,和表中的字段的操作(字段和记录要分清楚)

前提:表是在数据库下的,所以要先确实使用哪个数据库。

USE test_1;

1、创建数据表

格式:CREATE TABLE 数据表名(

字段名 1 数据类型[列级别约束条件],

字段名 2 数据类型[列级别约束条件],

字段名 3 数据类型[列级别约束条件]

);

注意:格式不一定需要这样隔着写,完全可以全部写成一行。但是那样写可观性非常差。我这样写只是为了可以看的更清晰。

解释:

1、[]中括号中的内容表示可以有可以没有,

2、列级别这个“列”一定要搞清楚说的是什么,一张表中有行有列,列表示竖,行表示横

3、约束条件后面会讲到

1.1、创建没有约束的 student 表

CREATE TABLE student(id INT(11),
 name VARCHAR(12),
 age INT(11)
 );

注释:SHOW TABLES 查询数据库底下的所有表。

1.2、创建有约束的 student 表

六大约束:主键约束、外键约束、非空约束、唯一约束、默认约束、自动增加

1.2.1:主键约束

PRIMARY KEY(primary key):独一无二 (唯一) 和不能为空(非空),通俗的讲,就是在表中增加记录时,在该字段下的数据不能重复,不能为空,比如以上面创建的表为例子,在表中增加两条记录,如果 id 字段用了主键约束。则 id 不能一样,并且不能为空。一般每张表中度有一个字段为主键,唯一标识这条记录。以后需要找到该条记录也可以同这个主键来确认记录,因为主键是唯一的,并且非空,一张表中每个记录的主键度不一样,所以根据主键也就能找到对应的记录。而不是多条重复的记录。如果没有主键,那么表中就会存在很多重复的记录,那么即浪费存储空间,在查询时也消耗更多资源。

一般被主键约束了的字段度习惯性的称该字段为该表的主键

单字段主键约束

两种方式都可以

CREATE TABLE student(CREATE TABLE student(

id INT(11) PRIMARY KEY, id INT(11),

name VARCHAR(12), name VARCHAR(12),

age INT(11) age INT(11),

); PRIMARY KEY(id) );

多字段主键约束(复合主键)

这个 id 和 name 都市主键,说明在以后增加的插入的记录中,id 和 name 不能同时一样,比如说可以是这样。一条记录为 id=1,name=yyy、另一条记录为:id=1,name=zzz。这样是可以的。并不是你们所理解的两个字段分别度不可以相同。

CREATE TABLE student(CREATE TABLE student(

id INT(11) PRIMARY KEY, id INT(11),

name VARCHAR(12) PRIMARY KEY, name VARCHAR(12),

age INT(11) age INT(11),

); PRIMARY KEY(id,name) );

1.2.2:外键约束

什么是外键举个例子就清楚了,有两张表,一张表是 emp(员工)表,另一张表是 dept(部门)表,一个员工属于一个部门,那么如何通过员工能让我们自己他在哪个部门呢?那就只能在员工表中增加一个字段,能代表员工所在的部门,那该字段就只能是存储 dept 中的主键了(因为主键是唯一的,才能确实是哪个部门,进而代表员工所在的部门,如果是部门名称,有些部门的名称可能是同名。就不能区分了。),像这样的字段,就符合外键的特点,就可以使用外键约束,使该字段只能够存储另一张表的主键。如果不被外键约束,那么该字段就无法保证存储进来的值就一定是另一张表的主键值。

外键约束的特点:

1、外键约束可以描述任意一个字段(包括主键),可以为空,并且一个表中可以有多个外键。但是外键字段中的值必须是另一张表中的主键。

2、这样被外键关联的两种表的关系可以称为父子表或者主从表。子表 (从表) 拥有外键字段的表,父表 (主表) 被外键字段所指向的表。

3、子表被外键约束修饰的字段必须和父表的主键字段的类型一样。

注意:一个表中有被外键修饰的字段,就称该表有外键(是“有外键”。而不是“是外键”),并会给该表中的外键约束取一个名称,所以我们常说的这个表有没有外键,指的不是被外键约束修饰的字段名,而是指这个表是否有存在外键约束。也就是说,不能说这个表的外键是 xxx(该表中被外键约束修饰的字段名),这种说法是错误的,但是大多数人已经习惯了这样,虽然影响不大,但是在很多时候需要理解一个东西时,会造成一定的困扰。

格式:CONSTRAINT 外键名称 FOREIGN KEY(被外键约束的字段名称) REFERENCES  主表名(主键字段)

英文解释:CONSTRAINT: 约束 REFERENCES: 参考

  CREATE TABLE tableA
  (
  id INT(11),
  name VARCHAR(22),
  location VARCHAR(50),
  PRIMARY KEY(id)
  );
  CREATE TABLE tableB
  (
  id INT(11),
  name VARCHAR(22) NOT NULL,
  deptId INT(11),
  PRIMARY KEY(id),
  CONSTRAINT tableA_tableB_1 FOREIGH KEY(deptId) REFERENCES tableA(id)
  ); 

解释:tableB 中有一个名为 tableA_tableB_1 的外键关联了 tableA 和 tableB 两个表,被外键约束修饰的字段为 tableB 中的 deptId,主键字段为 tableA 中的 id

1.2.3:非空约束

NOT NULL. 被该约束修饰了的字段,就不能为空,主键约束中就包括了这个约束

  CREATE TABLE tableA
  (
  id INT(11),
  name VARCHAR(22) NOT NULL,
  location VARCHAR(50),
  PRIMARY KEY(id)
  );

1.2.4:唯一约束

UNIQUE  被唯一约束修饰了的字段,表示该字段中的值唯一,不能有相同的值,通俗点讲,就好比插入两条记录,这两条记录中处于该字段的值不能是一样的。

CREATE TABLE tableA
  (
  id INT(11),
  name VARCHAR(22) UNIQUE,
  location VARCHAR(50),
  PRIMARY KEY(id)
  );

也就是说在插入的记录中,每条记录的 name 值不能是一样的。

1.2.5:默认约束

Default  指定这一列的默认值为多少,比如,男性同学比较多,性别就可以设置为默认男,如果插入一行记录时,性别没有填,那么就默认加上男

  CREATE TABLE table
  (
  id INT(11) PRIMARY KEY,
  name VARCHAR(22) NOT NULL,
  deptId INT(11) DEFAULT 1111,
  salary FLOAT
  );

1.2.6:自动增加

 AUTO_INCREMENT 一个表只能一个字段使用 AUTO_INCREMENT,并且使用这个约束的字段只能是整数类型(任意的整数类型   TINYINT,SMALLIN,INT,BIGINT),默认值是 1,也就是说从 1 开始增加的。一般就是给主键使用的,自动增加,使每个主键的值度不一样,并且不用我们自己管理,让主键自己自动生成

 CREATE TABLE table
 ( id INT(11) PRIMARY KEY AUTO_INCREMENT,
 name VARCHAR(22) NOT NULL
 );

2、查询表结构

2.1、查看表基本结构语句

格式 1:DESCRIBE 表名 /DESC 表名 这两个的功能是一样的,简写了单词 describe

DESCRIBE student; 

 

 2.2、查看创建表的语句

格式:SHOW CREATE TABLE 表名

SHOW CREATE TABLE student;

这样显示的格式很不好,看不清楚,所以有了下面这个语句

格式:SHOW CREATE TABLE 表名 \G

SHOW CREATE TABLE student\G;

 3、修改数据表

修改数据表包括:对表中字段的增加、删除、修改。在这个里面用的关键字为 ALTER

3.1、修改表名

格式:ALTER TABLE 旧表名 RENAME[TO] 新表名

将 student 表名改为 student1(改完后在改回来)

ALTER TABLE student RENAME TO student1;

MySQL 数据库基本操作的示例分析

3.2、修改表中的字段名

格式:ALTER TABLE 表名 CHANGE 旧字段名 新字段名 新数据类型

将 student 表中的 name 字段名改为 username

ALTER TABLE student CHANGE name username VARCHAR(30);

MySQL 数据库基本操作的示例分析

3.3、修改表中的数据类型

格式:ALTER TABLE 表名 MODIFY 字段名 数据类型

ALTER TABLE student MODIFY username VARCHAR(20);

MySQL 数据库基本操作的示例分析

解释:只能修改字段名的数据类型,但是其原理跟上面 change 做的事情一样,这里也有修改字段名的过程,只不过修改后的字段名和修改前的字段名相同,但是数据类型不一样。

3.4、修改字段的排列位置

方式 1:ALTER TABLE 表名 MODIFY 字段 1 数据类型 FIRST|AFTER 字段 2

解释:将字段 1 的位置放到第一,或者放到指定字段 2 的后面

ALTER TABLE student MODIFY username VARCHAR(20) AFTER age;

MySQL 数据库基本操作的示例分析

方式 2:ALTER TABLE 表名 CHANGE 字段 1 字段 2 数据类型 FIRST|AFTER 字段 3

解释:其实是一样的,将是字段 2 覆盖字段 1,然后在进行排序

ALTER TABLE student CHANGE username username VARCHAR(20) AFTER age;

MySQL 数据库基本操作的示例分析

总结

CHANGE 和 MODIFY 的区别?

原理都市一样的,MODIFY 只能修改数据类型,但是 CHANGE 能够修改数据类型和字段名,也就是说 MODIFY 是 CHANGE 的更具体化的一个操作。可能觉得用 CHANGE 只改变一个数据类型不太爽,就增加了一个能直接改数据类型的使用关键字 MODIFY 来操作。

3.5、添加字段

格式:ALTER TABLE 表名称 ADD 新字段名 数据类型 [约束条件][FIRST|AFTER 已存在的表名]

解释:在一个特定位置增加一个新的字段,如果不指定位置,默认是最后一个。

ALTER TABLE student ADD sex VARCHAR(11);

MySQL 数据库基本操作的示例分析

3.6、删除字段

格式:ALTER TABLE 表名称 DROP 字段名

ALTER TABLE student DROP sex;

MySQL 数据库基本操作的示例分析

3.7、删除表的外键约束

格式:ALTER TABLE 表名称 DROP FOREIGN KEY 外键约束名

注意:外键约束名 指的不是被外键约束修饰的字段名,切记,而是我们在创建外键约束关系时取的名字。

3.8、更改表的存储引擎

格式:ALTER TABLE 表名 ENGINE= 更改后的存储引擎名

这个存储引擎目前我自己也不太清楚,虽然知道有哪几种引擎,但是稍微深入一点就不清楚了,所以打算留到日后在说。

4、删除表

4.1、删除无关联表

格式:DROP TABLE 表名;

ALTER TABLE student;

MySQL 数据库基本操作的示例分析

4.2、删除被其他表关联的主表

这个是比较重要的一点,在有外键关联关系的两张表中,如果删除主表,那么是删不掉的,并且会报错。因为有张表依赖于他。那怎么办呢?针对这种情况,总共有两种方法

1、先删除你子表,然后在删除父表,这样就达到了删除父表的目的,但是子表也要被删除
2、先解除外键关系,然后在删除父表,这样也能达到目的,并且保留了子表,只删除我们不需要的父表。在 3.7 中就讲解了如何删除外键关系。

感谢你能够认真阅读完这篇文章,希望丸趣 TV 小编分享的“MySQL 数据库基本操作的示例分析”这篇文章对大家有帮助,同时也希望大家多多支持丸趣 TV,关注丸趣 TV 行业资讯频道,更多相关知识等着你来学习!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-01发表,共计5645字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)