数据库基础 day-01MySQL下载安装,建库建表,数据库的备份与还原,三范式,表的设计(数据完整性和约束过程),SQL-DQL查询

本周任务

在这里插入图片描述

MySQL下载

  • 搜索MySQL
    在这里插入图片描述
  • 下载社区免费版
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

安装

  • 要求运行时环境为:
    Microsoft Visual C++ Redistributable Package(x86+x64)- For Win7&8&10 - 20211206.exe(C++编译器)
  • Server only->next
    在这里插入图片描述
  • 点击Execute,安装完成点击next
    在这里插入图片描述
  • 设置配置环境,将Development Computer改为Sever Computer,,然后点击next。
    在这里插入图片描述
  • 设置密码:123456(简单即可,忘记密码后需要重装),然后点击next后续使用图形管理界面(NavicatPremium)打开数据库(MySQL时要用)

在这里插入图片描述

  • 是否开机启动(勾选与否不重要)点击next
    在这里插入图片描述
  • 点击Excute,安装完成后(结果如下图),点击finish
    在这里插入图片描述
  • 点击next,最后点击finish安装结束
  • 使用图形管理界面(Navicat Premium)打开数据库(MySQL)
    双击打开Navicat Premium,点击连接,选择MySQL,出现下述界面,输入连接
    名,密码为安装MySQL时设置的密码(123456),然后点击确定
    在这里插入图片描述
  • 出现以下界面表示连接成功,这四个数据库是MySQL数据哭运行必须的数据库,没有特殊情况不能更改
    在这里插入图片描述
  • localhost和127.0.0.1都是指本机.安装MySQL,要求计算机名必须是英文
    MySQL是数据库服务器,Navicat Premium是客户端(图形界面)

数据库基础

  • 主流数据库
  • Oracle公司的MySQL:免费下载,付费服务
    微软的MySQLSever:付费
    IBM公司的DB2:付费
    mysql:轻量级
  • 数据库类型
  • 关系型数据库:mysql,oracle,sqlsever,db2。所有数据存储在表中,表与表之间拥有关系
    非关系型数据库:redis,mongoDB,postgresql,memerycache等

建库

  • 右击Panjj.新建数据库,字符集一 般都用utf-8,排序规则默认用utf8_ general _ci(表示按英文26个字符进行排序),然后点击确定。
    在这里插入图片描述
    在这里插入图片描述

建表

  • 建表:
    1.主键: primary key.
  1. varchar: 可变长度字符。
  2. char:定长字符串,不可变。
  3. date:日期类型。
  • 右击situ2022的表选择新建表,为表添加如下字段(字段名绝对不能用中文,不区分大小写,可以用下划线来标识如count_of)
    [这里是表结构],然后CtrI+S保存,输入表名(如student),建表成功
    在这里插入图片描述
  • 双击student表[设置表数据]给表添加数据如下粉色是因为还未保存,点击√

    在这里插入图片描述

数据库的备份与还原

  • 数据备份
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 数据还原
    在这里插入图片描述

数据库的三范式(三个需要遵守的规则)

  • 第一范式:在设计表时,每一列必须保证原子性——列所表达的含义应该不可再分。
  • 当有不得不拆的情况时,也可以拆开在这里插入图片描述
  • 第二范式:所有的列,都依赖于唯一的主键。每一个表仅描述一件事情——所有的属性都和主键有依赖关系。
  • 第三范式:表中的字段不能有冗余,即互相之间没有依赖关系。
  • 根据年龄可以获得年龄,则这两个之间存在冗余。在这里插入图片描述
  • 三个范式在实际情况中,可以打破。但要尽量遵循

数据库的操作对象

  • 视图
  • 函数
  • 触发器:功能类似监听器
  • 存储过程

表的设计(数据完整性,约束的过程)

  • 数据类型:
  • 整数类型:tinyint:一个字节;smallint:2个字节;mediumint:3个字节;int:4个字节(用的最多,-21亿~21亿,无符号可以表示40亿);bigint:8个字节(相当于Long)
  • 字符串类型:char:定长字符串(不够字长补充空格:如定义长度为4位,输入为3位,不足的1位会用空格补充);varchar:不定长字符串(超过1000用text)。
  • 小数类型:fload:4个字节;double:8个字节;decimal:定点型,支持自定义精度;BigDecimal:引用类型。
  • 如果数据类型是数字,表示显示长度:int 长度30,显示宽度位30
    在这里插入图片描述
  • 日期类型:date日期类型;time时间类型,时分秒;datetime:日期事件类型;timestamp:时间戳,一个长整数(从1970年到现在)。
  • bit类型,二进制位类型。类似于boolean,只有两种类型,0和1。
  • 大文本:text,可以存储大量的字符文本
  • 大的二进制:blob,存储文件,图片等二进制数据。可以存储GB文件,一般表设计不会用这种字段。

设计表
在这里插入图片描述

  • 约束:创建表时,对列的类型等进行约束,以保证数据的正确性和完整性
  • 实体完整性
  • 主键约束:不为空且唯一。一个表只能有一个主键,但是一个主键可以支持多个列,称为联合主键
    在这里插入图片描述
  • 标识列:自增长,没有主键,但是可以用id自增序列来唯一确定。
    在这里插入图片描述
  • 唯一键约束:mysql不支持,使用唯一索引替代。
  • 域完整性:域,就是字段的意思。
  • 限制数据类型
  • 检查约束:检查字段的某个值,是否正确。mysql不支持,可以使用触发器来替代。
  • 默认值约束:字符串在mysql中用单引号。可以给一个列设置默认值。
  • 非空约束:表示字段值不可为空。
  • 引用完整性
  • 外键约束,可以保证当主键进行指定的操作时,外键所在表如何操作来保证数据的完整性。现实情况中,很少用。
  • 自定义完整性
  • 触发器
  • 存储过程

SQL

  • DML:数据操作语言,对数据表中的数据进行增删改。!
  • DCL:数据控制语言,对用户增删改权限,不讲。
  • DDL:数据定义语言,使用语句来创建库,创建表,创建约束,索引,存储过程,触发器等,简单了解。
  • DQL:数据查询语言。用于数据查询。!!!

DQL:数据查询语言

  • 在mysql命令行中写入语句与新建查询后写入语句效果相同
    在这里插入图片描述
  • 表命名规范:t_名字

实例:

-- 基本查询
-- 1、使用*查询所有的行列,最后分号可以省略
-- SELECT * FROM t_student;

-- 2、查询时指定列名(字段名,域)蓝色的为主键,name冲突了,可以用反引号(~下的)括起来,列的顺序可以自定义
-- SELECT id,stu_id,`name`,sex FROM t_student;

-- 3、使用where条件限制查询
-- SELECT id,stu_id,`name`,sex FROM t_student WHERE id = 1;

-- 4、比较运算符: > < >= <= != <>(该<>意思为!=)
-- 5、逻辑运算符:and or not 
-- SELECT * FROM t_student WHERE id > 500 AND sex <>'女';

-- 6、算术运算符 + - * / %,算术运算符可以用在where中,也可以对选中列进行运算
-- SELECT * FROM t_student WHERE height + 5 > 180;
-- SELECT id iq+20 FROM t_student WHERE id > 500 AND id < 600;

-- 7、支持小括号提升优先级
-- SELECT * FROM t_student WHERE (height + 10) * whight > 50
-- 8、支持区间查询between...and闭区间
-- SELECT * FROM t_student WHERE height BETWEEN 160 AND 170;

-- 9、模糊查询:like关键字,%代表0~多个字符,%强%,强开头结尾或者中间。
-- SELECT * FROM t_student WHERE `name` like '张%';
-- 下划线代表单个字符,可放在开头结尾,也可多个,
-- SELECT * FROM t_student WHERE `name` like '__晓';xx晓

-- sqlserver支持区间查询,mysql支持正则表达式查询,正则表达式只能用来匹配字符串。
-- SELECT * FROM t_student WHERE `name` LIKE '[m-z]%'

-- 只查询三个字符学生名字
-- SELECT * FROM t_student WHERE `height` REGEXP '^.{3,}$';


-- 10、查询排序,指定一列,或多列对结果进行排序。如果未指定顺序,则默认自然序
-- ORDER BY 如果不指定顺序,默认升序。后面加DESC就降序,ASC表示升序
-- SELECT * FROM t_student WHERE sex = '女' ORDER BY height DESC;
-- 11支持按照多列进行排序
-- SELECT * FROM t_student WHERE sex = '女' ORDER BY height DESC,weight DESC
-- 12、列起别名,在查询时,可以给列起别名
 SELECT id AS 学号,`name` AS 姓名 ,sex AS 性别 ,birthday AS 出生日期 FROM t_student


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值