Mysql 数据库应用技术

理论:

        什么是数据库:

数据库就是存放数据的仓库,是为了实现一定目的,按照某种规律组织起来的数据的集合

        MySQL的优势:

运行速度快。MySQL体积小,命令执行速度快,移植性强。

        SQL的含义

结构化查询语言。经过多年的发展已成为关系数据库的标准语言

        主键有什么用

主键索引要求主键中的每一个值都是非空,唯一的

        多表连接查询的分类

多表连接查询的分类实际上是更具各表之间共同列的光联性来查询数据的

        连接查询的分类

连接查询方式:内连接查询,外连接查询。        

        视图是什么

试图是基于SQL语句的结果集的可视化表,是一个虚拟表

实践:

  • MySQL数据库的基本操作

        创建数据库

          CREATE DATABASE 数据库名;

        查看数据库列表

          SHOW DATABASES

        选择数据库

          use 数据库

        删除数据库

         DROP DATABASE 数据库名;

  • 添加表数据类型

        学生表

        CREATE TABLE 表名 ([字段])                       --创建表

        参考👇

CREATE TABKE `student`(

        `studentNo` INT(4) NOT NULL COMMENT ' 学号 ' PRIMARY KEY ,
         #NOT NULL 非空 COMMENT 备注 PRIMARY KEY 非空主键

        `studentName` VARCHAR(50) NOT NULL COMMENT '学生姓名 ', 
         # VARCHAR(50) 长度为50的字符型

        `sex` CHAR(2) DEFAULT `男` NOT NULL COMMENT '性别'
         # DEFAULT 设置默认值

        `birthday` DATETIME COMMENT '出生日期',
         # DATETIME 时间类型
      
        `identityCard` VARCHAR(18) UNIQUE KEY COMMENT '身份证',
         # UNIQUE KEY 唯一,不重复

)COMMENT="学生表";

课程表

  • DROP TABLE IF EXISTS subject;   -- 删除subject表以免运行时报已存在错误
  • AUTO_TNCREMENT;   -- 自增加
  • SHOW TABLES;   -- 查看库中的表
  • DESCRIBE subject;   -- 查看表中的数据结构
  • PRIMARY KEY(字段名)    -- 设置主键

成绩表

NOW()  --获取当前日期

使用SQL语句修改表结构

        修改表名

        ALTER TABLE uses RENAME uses1;    

        添加字段 

        ALTER TABLE result ADD `studentData` VarcHAR(32)  NOT NULL;    

        修改字段名

        ALTER TABLE result CHANGE `studentData`  `studentData1`  CHAR(10)  NOT NULL;  

        删除字段

        ALRER TABLE result DROP studentName;

复制表:

        复制结构和数据

        CREATE TABLE student2 SELECT * FROM student;

        仅复制表结构

        CREATE TABLE student2 SELECT * FROM student WHERE FALSE;

        将查询后的结果插入到新表中

        CREATE TABLE subject1 (SELECT `studentName`,`phone`  FROM `student`);   

CREATE TABLE subject1 SELECT `studentName`,`phone` FROM `student` 
WHERE studentNo = 10001;     -- 判断学号为10001的

-- 可加入条件 只插入满足条件的列

添加表数据

INSERT INTO subject (`subjectName`,`classHour`,`gradeId`) 
VALUES 
('logic Java',220,1),
('HTML',220,1),
('Java OPP',220,1)

-- 填入添加的数据,按照顺序

删除

删除表数据

DELETE FROM student3 WHERE birthday > '1997-01-02';

修改

UPDATE student SET studentName = '郭晓静'  WHERE studentName = '郭靖';       

-- 不添加判断,代表更改所有该字段内容

now()  -- 当前日期

UPDATE student SET sex = YEAR(now()-YEAR(birthday))

修改表内容

UPDATE student SET 
address = '西直门东大街2215号',
loginPwd = '000',
studentNo = studentNo - 1
WHERE studentNo = 20000 AND sex='男';       --and表示并且

-- 将学号为20000并且为性别男,地址密码修改,学号-1

查询

SELECT * FROM `student` WHERE gradeID=1;        -- 查询年级为1的所有学生信息

如果查询为空的在判断填入 WHERE id is null;

  • 排序

ORDER BY  (列)       --默认为升序排序

ORDER BY  (列)  DESC;    --降序排序

可以看出这个是什么意思吗👇

  • 函数

birthday代表日期字段

MONTH(birthday) = 1     -- 月份为1

DAY(birthday) =16        --天数为16

MAX()        --最大值

MIN()         --最小值

AVG()        --平均值

SUBBSTRING(phone,1,3)     -- 取前三位

COUNT(*)计数

  • LIMIT字句

[LIMIT [位置偏移量],行数]

LIMIT 5;   -- 查询前5条记录

偏移值从0开始

LIMIT 1,5;   -- 从第二行开始取6行记录

  • LIKE模糊查询 

[字段名] LIKE 'C_'          --包含单个字符 如 Cs Ca

[字段名] LIKE 'C%'         --包含任意长度的字符 如 Csasd CaweAd

[字段名] LIKE 'Cs[1-9]'          --指定范围字符 如 Cs1 Cs6

[字段名] LIKE 'Cs[^1-5]'          --不包括指定范围字符 如 Cs6 Cs7 符合

  • IN 列举类查询

IN(1,2,3)        类似成员,须存在已有成员

  • BTWEEN范围内进行查询

WHERE birthday BERWEEN `1990-1-1` and '1993-12-31';      --日期1990-1-1到1993-12-31内

  •  GROUP BY分组查询

将指定字段进行分组

  1. 查询每个年级的总学时数,并按照升序排序

看懂了吗👆 其实就是分组,再进行的同组求和😀

HAVING 分组判断  -- 用于已经分好组后再进行组内判断

     2. 查询参加考试的学生中平均成绩及格的学生记录,并按照成绩降序排序

ps:↑首先要把考试的学生进行分组,再求各组的平均成绩是否及格。

连接查询

通常我们用到多个表是会使用连接查询

JOIN关键字  进行表之间的连接

ON关键字指定字段连接

👆将两个表的课程编号连接了起来,再进行要求输出

其实也可以理解为将相同的进行筛选,相同则保留,当然也得先看WHERE条件

三表连接

-- 查询学号,姓名,课程名称,成绩

SELECT s.studentNo,s.studentName,subjectName,r.studentResult
	FROM student as s 
        -- 连接学生表和成绩表 因为两表中有共同字段‘学号’
		JOIN result as r ON s.studentNo = r.studentNo   
        -- 继续连接 这代表成绩表和课程表连接 共同字段为‘课程编号’     
		JOIN `subject` as sj ON r.subjectNo = sj.subjectNo

        -- 这个是多余的 我进行了以成绩降序排序
		ORDER BY r.studentResult DESC;

跟之前相同只是多连接了一个而已

视图

创建视图

     视图名一般以view_xxx 或者v_xxx 命名

CREATE VIEW 视图名 ( 别名1,  别名2 ,别名3)     --别名代表更改列的名字

AS

<SELECT 语句>

以前查询都是一个临时查看的过程,试图是将直接保存为一个新了表中,方便以后进行查看,更改。

DROP VIEW IF EXISTS view_stu;先将视图删除,防止运行第二遍的时候报已存在的错误

删除视图

DROP VIEW [IF EXISTS] 视图名 

  • 31
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL是一种常用的关系型数据库管理系统,它广泛应用于各个领域,包括北京邮电大学的数据库应用技术。 首先,MySQL提供了良好的数据存储和管理能力,可以帮助北京邮电大学存储、管理和查询大量的学生、教职员工,以及其他相关信息。通过建立数据库和数据表,可以将不同的数据按照一定的结构进行组织,并利用MySQL的索引功能,有效地提高数据的查询性能和数据的准确性。 其次,MySQL提供了强大的数据备份和恢复机制,对于北京邮电大学重要的数据来说是非常关键的。通过MySQL的备份功能,可以定期将数据库进行备份,以防止数据的不可预测丢失。而在数据发生意外删除或损坏时,可以通过MySQL的恢复机制将备份的数据重新导入,保证数据的完整性和可用性。 此外,MySQL还可以通过开发SQL语句和存储过程来进行高级的数据处理和计算。例如,对于北京邮电大学的教务系统来说,可以通过编写SQL语句来查询学生的成绩和课程信息,并进行统计和分析。同时,MySQL还支持事务处理,可以保证数据库操作的一致性和完整性。 最后,MySQL还提供了丰富的安全机制和权限管理功能,可以有效地保护北京邮电大学的数据库免受非法访问和恶意操作。通过设置用户权限,可以限制不同用户对数据库的访问和操作权限,保证数据的安全性。 综上所述,MySQL数据库应用技术在北京邮电大学中具有重要的作用,可以支持学校的数据管理、备份恢复、数据处理和安全管理等方面的需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值