sql基础
文章平均质量分 78
sql基础篇
FlashCanSavetheWorld
不想起床
展开
-
存储过程的建立及执行
建立存储过程check_xk,功能是根据提供的参数学号和课程号,完成选课记录的插入功能。要求如下:首先检查该课程选课人数是否已满(可自己根据表中数据的情况定义一个限定值),若满,则返回0;若不满,继续检查该学生是否已经选满3门课程,若满,则返回-1,否则将选课记录插入到SC表中,并返回1。CREATE PROCEDURE check_xk (IN stuno char(7), IN couno char(3),OUT i TINYINT )BEGIN IF (SELECT COUNT.原创 2020-06-10 18:06:00 · 1092 阅读 · 0 评论 -
E-R图转换为关系模式的原则
转换一般遵循如下原则:1.一个实体型转换为一个关系模式。实体的属性就是关系的属性。实体的码就是关系的码。例如在我们的例子中,学生实体可以转换为如下关系模式,其中学号为学生关系的码:学生(学号,姓名,出生日期,所在系,年级,平均成绩) 同样,性别、宿舍、班级、档案材料、教师、课程、教室、教科书都分别转换为一个关系模式。2.一个联系转化为一个关系模式,与该联系相连的各实体的码以及联系的属性转化为关系的属性,该关系的码则有三种情况:若联系为1:1,则每个实体的码均是该关系的后选码。若联系为1:n,则关转载 2020-06-08 12:50:30 · 2531 阅读 · 0 评论 -
VS2019连接 mysql 8.0.19
1.首先准备好VS2019以及mysql数据库,两者都可以去官网下载,我们直接描述连接过程。2.连接:第一步:打开mysql的安装目录,我本地的安装目录如下:(注意是否有include和lib文件夹)第二步:打开VS2019,新建一个空工程。查看属性页上方的平台,选择x64第三步:右击工程名,打开属性页:第四步:打开VC++目录,在包含目录中,将mysql安装文件中的include文件的路径添加到这里:第五步:还是在属性页上,打开C/C++,选择常规,和上一步一样,在附加包含目录中将my转载 2020-05-31 02:40:30 · 2986 阅读 · 4 评论 -
Mysql触发器中的new和old
https://www.cnblogs.com/Jasxu/p/mysql_trigger.html转载 2020-05-18 16:21:29 · 584 阅读 · 0 评论 -
Armstrong公理系统,求属性集X关于F的闭包XF+,最小依赖集
Armstrong公理系统设U 是R 的属性集,F 是R 上成立的只涉及U 中属性的函数依赖集,函数依赖的推理规则有以下三条:自反律:若属性集Y包含于属性集X,属性集X 包含于U,则X→Y 在R 上成立增广律:若X→Y 在R 上成立,且属性集Z 包含于属性集U,则XZ→YZ 在R上成立传递律:若X→Y 和 Y→Z在R 上成立,则X →Z 在R 上成立推导出Armstron...原创 2020-05-07 11:53:37 · 1396 阅读 · 1 评论 -
1NF,2NF,3NF,BCNF
1NF定义:如果一个关系模式R的所有属性都是不可分的基本数据项,则R∈1NF。即不能存在表中表第一范式是对关系模式的最起码的要求。不满足第一范式的数据库模式不能称为关系数据模式。2NF定义: 若关系模式R∈1NF,并且每一个非主属性都完全函数依赖于R的码,则R∈2NF。S-L-C(Sno, Cno, Sdept, Sloc, Grade) 不属于 2NF非主属性 Sdept...原创 2020-05-07 09:59:49 · 830 阅读 · 0 评论 -
创建触发器,插入学生成绩时,限制必须在0-100之间。
delimiter $create trigger t1 before insert on sc for each row beginif new.grade > 100 then set new.grade=100;elseif new.grade < 0 then set new.grade=0;end if;end$mysql trigger文档原创 2020-05-06 00:24:40 · 13780 阅读 · 1 评论 -
基于派生表的查询
查询每个学生高于他自己选修平均分的那门课程的成绩,输出学号,课程号,课程成绩,他所有课程的平均分,并按学号升序排列。select sc.sno,cno,grade, avg_grade from sc,(select sno,round(avg(grade)) from sc group by sno )as avg_sc(avg_sno,avg_grade)where sc.sno=avg...原创 2020-04-13 12:57:22 · 398 阅读 · 0 评论 -
sql 怎么取count(*)中的最大值
语句:select 属性 from 表 group by 属性having count(属性) =(select max(别名) from (select count(属性) as 别名 from orders group by customer_id)表别名)eg:从orders表中选取订单数目最多的客户select customer_id,count(order_id) fro...原创 2020-03-30 13:58:53 · 6593 阅读 · 0 评论 -
sql查询语句顺序
selectdistinctfrom join on where group by having union order by limit原创 2020-03-25 13:01:17 · 63 阅读 · 0 评论 -
sql exists的使用
转载自转载 2020-03-25 11:56:00 · 60 阅读 · 0 评论 -
case ... when ... then ... else ...end 函数
1.简单case 函数SELECT s.s_id, s.s_name, s.s_sex, CASE s.s_sexWHEN '1' THEN '男'WHEN '2' THEN '女'ELSE '其他'END as sex, s.s_age, s.class_idFROM t_b_student sWHERE 1 = 12.ca...原创 2020-03-19 15:38:22 · 109 阅读 · 0 评论 -
group_concat函数
转载于转载 2020-03-19 15:09:57 · 56 阅读 · 0 评论 -
如何在SQL語句select中根据某个字段值,修改另外一个字段的值
select customer_id, case when points >3000 then points=0 else points end as points from customers;原创 2020-03-18 17:58:41 · 3123 阅读 · 0 评论 -
修改表中某一列的属性
alter table 表明 modify 列名 列属性 是否为空alter table course modify CNAME varchar(30) not null原创 2020-03-18 15:29:45 · 1074 阅读 · 0 评论 -
设置删除级联,更新级联
ALTER TABLE 表名 ADD foreign key 列名 references 表名(列名) on delete cascade;//删除ALTER TABLE 表名 ADD foreign key(JNO) references j(JNO) on update cascade;//更新原创 2020-03-16 17:21:33 · 556 阅读 · 0 评论 -
增加一个自动增长列
//自动增长列必须为表的主码ALTER TABLE 表名 ADD 列名 INT(4) NOT NULL PRIMARY KEY AUTO_INCREMENT FIRST;原创 2020-03-16 16:43:43 · 342 阅读 · 0 评论 -
数据库系统的三级模式结构
数据库系统的三级模式结构是指数据库系统是由外模式,模式和内模式三级构成。模式模式又称概念模式或逻辑模式,对应于概念级。它是由数据库设计者综合所有用户的数据,按照统一的观点构造的全局逻辑结构,是对数据库中全部数据的逻辑结构和特征的总体描述,是所有用户的公共数据视图(全局视图)。它是由数据库管理系统提供的数据模式描述语言(Data Description Language,DDL)来描述、定义的...原创 2020-03-03 18:12:03 · 2015 阅读 · 0 评论 -
关于数据库主键和外键
一、什么是主键、外键:关系型数据库中的一条记录中有若干个属性,若其中某一个属性组(注意是组)能唯一标识一条记录,该属性组就可以成为一个主键比如学生表(学号,姓名,性别,班级)其中每个学生的学号是唯一的,学号就是一个主键课程表(课程编号,课程名,学分)其中课程编号是唯一的,课程编号就是一个主键成绩表(学号,课程号,成绩)成绩表中单一一个属性无法唯一标识一条记录,学号和课程号的组合才可...转载 2020-02-25 10:19:53 · 183 阅读 · 0 评论 -
sql触发器的使用
实例:delimiter $ //把语句结束符号换成$ 因为trigger中会用到;create trigger t1after insert on order_items for each row beginupdate products set quantity_in_stock=quantity_in_stock-new.quantity where product_id=new...原创 2020-02-21 19:30:32 · 104 阅读 · 0 评论 -
SQL语言全部关键字详解
转载于:https://blog.csdn.net/yinni11/article/details/79859659转载 2020-02-20 16:08:15 · 1077 阅读 · 1 评论