热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

mysql连接的种类_数据库约束和连接的种类

--创建数据库createdatabase学生练习on(namesrcShareDB,filenameE:\stuExcise.mdf,size10,maxsizeunlimite

--创建数据库create database 学生练习on(name = srcShareDB,filename = 'E:\stuExcise.mdf',size = 10,maxsize = unlimited,filegrowth = 10%)--日志文件log on(name = srcShareLG,filename = 'E:\stuExcise.ldf',size = 3,maxsize = unlimited,filegrowth

--创建数据库

create database 学生练习

on

(

name = srcShareDB,

filename = 'E:\stuExcise.mdf',

size = 10,

maxsize = unlimited,

filegrowth = 10%

)

--日志文件

log on

(

name = srcShareLG,

filename = 'E:\stuExcise.ldf',

size = 3,

maxsize = unlimited,

filegrowth = 10%

)

--学生表

create table 学生

(

stuNO varchar(10) primary key,

stuAge int check (stuAge>0 and stuAge<150),

stuSex char(2) check (stuSex in(&#39;男&#39;,&#39;女&#39;)),

stuMajorNO varchar(10) not null

)

--课程表

create table 课程

(

lsnNO varchar(10) primary key,

lsnName varchar(10) not null,

lsnMark int check (lsnMark>&#61;0 and lsnMark<&#61;100),--注意约束要用括号括起来

lsnHour int check (lsnHour>0 and lsnHour<&#61;200)

)

--选课表

create table 选课

(

stuNO varchar(10) foreign key (stuNO) references 学生(stuNO),--注意外键约束的语法格式

lsnNO varchar(10) foreign key (lsnNO) references 课程(lsnNO),

stuMark int check (stuMark>&#61;0 and stuMark<&#61;100)

)

--添加数据

insert into 学生

values(2,20,&#39;男&#39;,&#39;软件&#39;)

--更新数据

update 学生

set stuAge&#61;stuAge-5

where stuAge&#61;19

--删除数据

delete from 学生

where stuNO&#61;&#39;2&#39;

--查找数据

select stuMark from 学生,选课 where 学生.stuNO&#61;选课.stuNO and 学生.stuNO&#61;&#39;1&#39;

约束规则&#xff1a;

1、实体完整性规则

主要是针对主键(列级和表级)的&#xff0c;主键约束用于唯一性表示表的记录&#xff0c;并且主键约束要求

该列不为空&#xff0c;切记是不为NULL而不是不为""&#xff0c;并且要求该列不能有相同项&#xff0c;否则不能执行sql

语句

2、参照完整性约束&#xff0c;即为外键约束&#xff0c;主要是表示表中列和表中列的关系

语法是&#xff1a;foreign key(列名) references 表名(列名),

其中(列名)需加括号&#xff0c;表名(列名)中列名需为所引用表的主键

3、用户自定义完整性约束

包括列值非空(not null)&#xff0c;列值唯一(unique)&#xff0c;检查列值是否满足一个布尔表达式

(check)

需要注意的是check约束需要括号&#xff0c;即check(布尔值)

连接的种类&#xff1a;

内联接&#xff1a;分为等值连接和自然连接&#xff0c;通过比较运算符来连接

语法&#xff1a;select * from table1 join table2 on table1.id&#61;table2.id

交叉连接&#xff1a;即产生笛卡儿积的连接

语法&#xff1a;select * from table1 cross join table2

外连接&#xff1a;

左外连接&#xff1a;返回左表的所有行&#xff0c;右表不匹配的用null表示

语法&#xff1a;select * from table1 left join table2 on table1.id&#61;table2.id

右外连接&#xff1a;返回右表的所有行&#xff0c;左表不匹配的用null表示

语法&#xff1a;select * from table1 right join table2 on table1.id&#61;table2.id

全连接&#xff1a;返回连接表的所有行

语法&#xff1a;select * from table1 full join table2 on table1.id&#61;table2.id

f68f2add0b68e4f9810432fce46917b7.png

本文原创发布php中文网&#xff0c;转载请注明出处&#xff0c;感谢您的尊重&#xff01;



推荐阅读
  • 本文由编程笔记小编整理,介绍了PHP中的MySQL函数库及其常用函数,包括mysql_connect、mysql_error、mysql_select_db、mysql_query、mysql_affected_row、mysql_close等。希望对读者有一定的参考价值。 ... [详细]
  • MyBatis多表查询与动态SQL使用
    本文介绍了MyBatis多表查询与动态SQL的使用方法,包括一对一查询和一对多查询。同时还介绍了动态SQL的使用,包括if标签、trim标签、where标签、set标签和foreach标签的用法。文章还提供了相关的配置信息和示例代码。 ... [详细]
  • 本文详细介绍了SQL日志收缩的方法,包括截断日志和删除不需要的旧日志记录。通过备份日志和使用DBCC SHRINKFILE命令可以实现日志的收缩。同时,还介绍了截断日志的原理和注意事项,包括不能截断事务日志的活动部分和MinLSN的确定方法。通过本文的方法,可以有效减小逻辑日志的大小,提高数据库的性能。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 本文介绍了游标的使用方法,并以一个水果供应商数据库为例进行了说明。首先创建了一个名为fruits的表,包含了水果的id、供应商id、名称和价格等字段。然后使用游标查询了水果的名称和价格,并将结果输出。最后对游标进行了关闭操作。通过本文可以了解到游标在数据库操作中的应用。 ... [详细]
  • 高质量SQL书写的30条建议
    本文提供了30条关于优化SQL的建议,包括避免使用select *,使用具体字段,以及使用limit 1等。这些建议是基于实际开发经验总结出来的,旨在帮助读者优化SQL查询。 ... [详细]
  • 本文讨论了在数据库打开和关闭状态下,重新命名或移动数据文件和日志文件的情况。针对性能和维护原因,需要将数据库文件移动到不同的磁盘上或重新分配到新的磁盘上的情况,以及在操作系统级别移动或重命名数据文件但未在数据库层进行重命名导致报错的情况。通过三个方面进行讨论。 ... [详细]
  • ALTERTABLE通过更改、添加、除去列和约束,或者通过启用或禁用约束和触发器来更改表的定义。语法ALTERTABLEtable{[ALTERCOLUMNcolu ... [详细]
  • mysql-cluster集群sql节点高可用keepalived的故障处理过程
    本文描述了mysql-cluster集群sql节点高可用keepalived的故障处理过程,包括故障发生时间、故障描述、故障分析等内容。根据keepalived的日志分析,发现bogus VRRP packet received on eth0 !!!等错误信息,进而导致vip地址失效,使得mysql-cluster的api无法访问。针对这个问题,本文提供了相应的解决方案。 ... [详细]
  • 如何在php中将mysql查询结果赋值给变量
    本文介绍了在php中将mysql查询结果赋值给变量的方法,包括从mysql表中查询count(学号)并赋值给一个变量,以及如何将sql中查询单条结果赋值给php页面的一个变量。同时还讨论了php调用mysql查询结果到变量的方法,并提供了示例代码。 ... [详细]
  • Python SQLAlchemy库的使用方法详解
    本文详细介绍了Python中使用SQLAlchemy库的方法。首先对SQLAlchemy进行了简介,包括其定义、适用的数据库类型等。然后讨论了SQLAlchemy提供的两种主要使用模式,即SQL表达式语言和ORM。针对不同的需求,给出了选择哪种模式的建议。最后,介绍了连接数据库的方法,包括创建SQLAlchemy引擎和执行SQL语句的接口。 ... [详细]
  • Java学习笔记之使用反射+泛型构建通用DAO
    本文介绍了使用反射和泛型构建通用DAO的方法,通过减少代码冗余度来提高开发效率。通过示例说明了如何使用反射和泛型来实现对不同表的相同操作,从而避免重复编写相似的代码。该方法可以在Java学习中起到较大的帮助作用。 ... [详细]
  • 本文主要复习了数据库的一些知识点,包括环境变量设置、表之间的引用关系等。同时介绍了一些常用的数据库命令及其使用方法,如创建数据库、查看已存在的数据库、切换数据库、创建表等操作。通过本文的学习,可以加深对数据库的理解和应用能力。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 本文介绍了通过mysql命令查看mysql的安装路径的方法,提供了相应的sql语句,并希望对读者有参考价值。 ... [详细]
author-avatar
srh女孩不哭
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有