MYSQL的函数与Navicat的使用

这篇博客介绍了MySQL数据库的设计理念,包括主键、索引、外键和范式,以及MySQL在Windows上的启动。重点讲解了Navicat Premium的使用,数据库的基本语法,如创建、删除数据库和表的操作。还涵盖了日期、数学、字符串和条件判断函数,以及数据库的加密和不同类型。
摘要由CSDN通过智能技术生成

一、 数据库的设计理念

主键:一个表只能包含一个主键:查询删除修改数据

索引:访问数据。索引是对数据库表中的一列或者多列的值进行排序的一种结构。类似于书籍的目录

表第一列一般是主键,也是索引。

外键:关联两个表

第一范式:每一列的信息不可再分

第二范式:每张表只描述一件事(表量增加) 违反时需要同步更新

第三范式:表传递时都有自己的主键 是独立的

  • ER图
    长方形:表
    圆形:属性字段
    菱形:关系

若干的表组成了数据库(关联的表的集合)

二、 MYSQL在windows上的启动

  • MYSQL的启动
    在这里插入图片描述

    如果使用绿色版,先要将电脑上的MYSQL停止,并重启绿色版就可以在Navicat Premium连接上了,绿色版的用户名密码均为root

  • 数据库端口修改 注意搜索全部修改

在这里插入图片描述

三、Navicat Premium的使用

  • 使用Navicat Premium先创建连接,绿色版MYSQL的用户名和密码均为root ,端口3306,连接名见名知意即可。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fKnahcYE-1604116276290)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20201031100414024.png)]

  • 点击一个mysql库—查询–新建查询 这样就可以写操作数据库的语句了

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yQ5kd628-1604116276300)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20201031100406978.png)]

四、数据库的基本使用语法

-- 表示注释

创建数据库:CREATE DATABASE 数据库名;

  • 选中语句,按ctrl-shift-r运行,或者点击运行中的从这里运行一条
  • 选中左边数据库按F5 刷新可以看到刚刚创建的数据库

删除数据库:DROP DATABASE 数据库名;

按ctrl-shift-r运行 选中左边数据库按F5 刷新

切换数据库:USE 数据库名;

  • 创建表先切换库,否则会在头部显示的mysql中创建,切换到新建的库,按F5刷新,可以看到头部为@新建库名

在这里插入图片描述

查询所有数据库

  • show databases;

查询当前数据库中所有的表

  • show tables;

创建表

create table if not exists 表名(列名 列类型 约束...)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jKhg2diy-1604116276319)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20201031102905453.png)]

  • 对表右键设计表中,查看表的结构,金色钥匙表示主键列

在这里插入图片描述

  • 约束: 自增列 用于主键,如果一列删掉,再次添加,序号就会继续增加,不会减少

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pZ3hgIhD-1604116276325)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20201031110718352.png)] 假如删除李四再次添加李四:可以看到李四的主键studentNo,由2变为3,因为自增列UNSIGNED AUTO_INCREMENT是数据库内部自动增加的

在这里插入图片描述

删除表

  • DROP TABLE 表名

具体操作如下:

create DATABASE MYschool;
show databases;
use MYschool;
show tables;
CREATE TABLE IF NOT EXISTS student(
studentNo INT UNSIGNED AUTO_INCREMENT,
studentName VARCHAR(20) NOT NULL,
studentSex INT NOT NULL
PRIMARY KEY(`studentNo`))ENGINE=INNODB DEFAULT CHARSET=utf8;
-- UNSIGNED AUTO_INCREMENT  自增列 
-- IF NOT EXISTS  判断 当前表不存在  在执行下列语句
-- ENGINE =INNODB 设置存储引擎 
-- DEFAULT CHARSET =utf8; 设置默认字符编码集
DROP DATABASE MYschool;

五、 数据库的主键与外键语句

  • 主外键的理解:
    例如:年级表单独拆分出来 所以学生表中的年级类型为int而不是char
    科目表 也相同 学生表中使用数字代替,在科目表中再详细记录科目名称,因此这几张表要添加主外键约束,用于约束数据,防止增加垃圾数据
  • 主键表会约束外键表,主键表存在的数据外键表才能存在
    外键表也会约束主键表,如果删除主键表,不可以删。 因为有外键表,因此要先删除外键表才可以删除主键表 否则外键表的数据不知道怎么来的

需要关系时使用中间表

-- 添加主键
ALTER TABLE test ADD PRIMARY KEY (id);
desc test;
-- 删除主键
ALTER TABLE test DROP PRIMARY KEY;

-- 查看result表结构可以看到没有主键,result是一个中间表,student表通过result表可以查看subject表
desc result;

-- 删除外键
ALTER TABLE result DROP FOREIGN KEY `FK_subject_result_subno`;-- 删除result外键subjectNo与subject主键subjectNo的约束
ALTER TABLE result DROP FOREIGN KEY `FK_student_result_stuno`; -- 删除result外键studentNo与student主键studentNo的约束
-- 查看result表中的外键是否删除成功就在result中随机添加垃圾数据 此时可以添加成功

-- 添加外键
-- 通过主键表subject的主键列 subjectNo 约束外键表result的外键列subjectNo
-- 如果约束失败,可能是已经被约束,需要重新解除约束,再次进行约束即可。
ALTER TABLE result ADD CONSTRAINT FK_subject_result_subno FOREIGN KEY (subjectNo) REFERENCES `subject`(subjectNo);
-- 通过主键表student的主键列 studentNo 约束外键表result的外键列studenttNo
ALTER TABLE result ADD CONSTRAINT FK_student_result_stuno FOREIGN KEY (studentNo) REFERENCES student(studentNo);

六、 数据库表的基本操作


-- 创建newStudent将student表中的原有数据 复制到newStudent 中
CREATE TABLE newStudent SELECT * FROM student;
-- 创建newStudent表  复制表结构 不包含数据
CREATE TABLE newStudent like  student;

-- 创建一个临时表 
-- 临时表将在你连接MySql期间 存在,
-- 当断开连接时MySql将自动删除表并释放所有空间,也可手动删除
create TEMPORARY TABLE testStudent(
	id int ,
	name VARCHAR(20)
);
-- 创建临时表  并带有基础数据  (基础数据来自于  现有表中 )  
-- where  查询的条件  列名= 值
create TEMPORARY TABLE  testStudent  
SELECT * 
  • 1
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值