首页
友链
直播
留言
壁纸
推荐
图床
秀秀
Search
1
好 迷 啊
92 阅读
2
10年后,社会上会不会又多一个废材呢
81 阅读
3
未命名文档
66 阅读
4
间歇性雄心壮志,持续性混吃等死
63 阅读
5
突然就很迷了
58 阅读
生活历程
兴趣追寻
数据库
web前端
技巧分享
娱乐分享
Search
标签搜索
sql问题处理
外键
问题解决
单表查询
SQL
情韵
累计撰写
28
篇文章
累计收到
7
条评论
首页
栏目
生活历程
兴趣追寻
数据库
web前端
技巧分享
娱乐分享
页面
友链
直播
留言
壁纸
推荐
图床
秀秀
搜索到
7
篇与
兴趣追寻
的结果
2021-04-22
web前端学习资源分享
今天分享一套特别适合一点前端基础都没有的朋友 我感觉这套课程的老师不仅幽默风趣。而且对于知识点的讲解更加全面。而且在很多细节的方面都有讲到。如果仅是为了应付学校的科目,我推荐你去。如果是为了更加深入的学习前端,我更推荐你去。可以在B站搜索pink老师,好像抖音也有账号(同名)这套资源是从18年下半年到2020年末左右的,我是19年开始学习的。不用担心资源老的问题,好的资源,经得起时间的考验。下面是pink老师B站视频链接:html + css:{abtn icon="" color="#ff6800" href="https://b23.tv/m0Uq8X" radius="" content="html,css"/} js:{abtn icon="" color="#ff6800" href="https://b23.tv/BqS37n" radius="" content="js部分"/} html,css,js应该是web前端的基础吧视频分类很详细,可以坚持一天10个小视频(加起来应该不到40分钟)也可以在评论区打卡!希望你们可以坚持下来,成为一个优秀的人。
2021年04月22日
5 阅读
0 评论
1 点赞
2021-04-19
SQL语言 单表查询
来梳理一下最近学的SQL语言的单表查询首先,我们先建立一张表create table stu( cno varchar(6) , cname varchar(10) , age int, mno int, );然后给表图传入数据:insert into stu values ('311901','pink',12,3), ('311902','blue',11,2), ('311903','reds',19,1), ('311904','time',18,4), ('311903','reds',19,1);表图如下:cnocnameagemno311901pink123311902blue112311903reds191311904time184311903reds1911.查询全部学生的全部信息select * from stu;其中 * 代表表中所有的信息 2.查询全部学生的学号cno 和 cnameselect cno,cname from stu;3.查询全部学生的姓名和出生年份select cname,age from stu;我们发现这样查询只能查询到年纪,却查不到出生年份,我们可以换一种写法:select cname,2021-age from stu;这样虽然能看到年份了,不过这时列明变成了(无列名)我们可以通过 as 把列明加上select cname,2021-age as year from stu;4.查询全部学生学号通过 distinct 去重select distinct cno from stu;5.查询姓名是'reds'的学生的全部信息select * from stu where cname = 'reds';利用 where = 'reds' 条件查询 6.查询课号是1且学生年龄大于18的学生学号 like或者=select cno from stu where mno = 1 and age > 18;这里还是通过where条件筛选, 其中 mno = 1 也可以写成 mno like 1 另外在SQL中,一些比较符号和我们数学运用的都差不多的,比如:!= 不等于 <> 这个也是不等于 其余的都差不多吧如果like后面的字符串,不含有通配符(%,_ 用于模糊查询) 那么=等价于like7. 查询年龄在18-19的学生姓名 两种写法 第一种写法:select cname from stu where age >= 18 and age <= 19;第二种写法:select cname from stu where age between 18 and 19;结合两种表,估计你们能看得出 between ... and ... 代表什么意思吧。。8.查询学生专业号是 1 ,4 的学生信息 (利用in) 如果不用in写法:select * from stu where mno = 1 or mno = 4; 或者写成 select * from stu where mno != 2 or mno != 3;利用in写法:select * from stu where mno in(1,4);如果查询不是1,4的in写法就为 not in(1,4):select * from stu where mno not in(1,4);**9.查询姓名中姓 p 的人 (尴尬,原来想着英文名字省事,不过一样也可以查询 )select * from stu where cname like 'p%';这里的%代表p后面一堆字符串,可以是一个字符串,也可以是一堆字符串,甚至可以代表 无字符串 上面我们有说过,_特使一种通配符,不过_只能代表一个字符。而且还不能省略。10.查询学号为NULL的学生信息 我们因为设置mno为int类型数据,int类型你插入空肯定不行呀,必须是数字。我们可以在插入的时候不对mno赋值,让他默认为空。或者采用下面的办法:alter table stu alter column mno int null;然后再插入mno为null的数据insert into stu values('311909','lele',10,null);接下查询mno为null的值:select * from stu where mno is null;这里是不能用=的,应该用is。不想知道为什么的,可以记下来就可以退出了,想知道为什么的请看下面部分:那这是为什么呢?要清楚为什么,就需要了解 SQL 中的三值逻辑了。--------TURE, FALSE , UNKNOWN--------- 在SQL中逻辑表达式的可能值包括TRUE、FALSE和UNKNOWN,它们被称之为三值逻辑。 在其它的编程语言中,逻辑表达式只有两种,要么是true,要么就是false。而在 SQL 中却存在第三个逻辑表达式UnKnown,这个是 SQL 中特有的。从字面意思上我们可以解理该值的意思是:什么都不知道,即什么都不是。一般情况下我们将任何值(包括NULL本身)与NULL做比较的时候,都会返回UnKnown。包括 null = null, null <> null 都会返回false! 而在查询表达式中(比如where与having中),UnKnown会视为false。所以我们就明白了为什么 select * from tablename where fieldname=null 查不到正确的结果的原因了。但并不是在所有场情下UnKnown都会视为false来处理, 在check约束中,UnKnown就会视为true来处理 。这就是为什么我们设置某个字段的值必须大于等于0的情况下,我们还可以往该字段中插入Null值,那是因为在check约束中null>=0的逻辑结果UnKnown会被当作true来处理。**需要注意的是,在分组子句与排序子句中,sql视null是相等的即:1, GROUP BY会把所有NULL值分到一组。2,ORDER BY会把所有NULL值排列在一起。**
2021年04月19日
11 阅读
0 评论
1 点赞
2021-04-14
sql学习-Constraints(约束)(primary key、 foreign key、check、default) [搬砖]
CONSTRAINTS 约束 介绍 *SQL 约束用于规定表中的数据规则。如果存在违反约束的数据行为,行为会被约束终止。约束可以在创建表时规定(通过 CREATE TABLE 语句);或者在表创建之后规定(通过 ALTER TABLE 语句)。*语法(创建数据库中的表 以及 添加约束)CREATE TABLE table_name ( column_name1 data_type(size) constraint_name, column_name2 data_type(size) constraint_name, column_name3 data_type(size) constraint_name, .... );创建表语法 create table 表名称( 列名 数据类型 [约束], 列名 数据类型 [约束] );① 其中表中的数据列名,数据类型,约束之前用空格隔开② []中的内容代表可以添加也可以不添加,约束在创建时可以先不添加。③ 创建表的时候,表中每列的部分用英文字符 , (英文的逗号)隔开,最后一列不用添加。在SQL的6个约束:NOT NULL - 指示某列不能存储 NULL 值。UNIQUE - 保证某列的每行必须有唯一的值,独一无二的值。PRIMARY KEY(主键) - NOT NULL和 UNIQUE的结合。确保某列(或两个列多个列的结合)有唯一标识,有助于更容易更快速地找到表中的一个特定的记录。FOREIGN KEY(外键) - 保证一个表中的数据匹配另一个表中的值的参照完整性。CHECK - 保证列中的值符合指定的条件。DEFAULT - 规定没有给列赋值时的默认值。NOT NULL 约束 介绍 在默认的情况下,表的列 是接受 NULL 值的,但NOT NULL约束强制该列不接受 NULL值,强制字段始终包含非空值。如果不向字段添加值,就无法插入或更新记录。实例1 创建表时定义not null约束下面的 SQL 语句强制 "ID" 列、 "LastName" 列以及 "FirstName" 列不能为NULL。 CREATE TABLE Persons ( ID int NOT NULL, LastName varchar(255) NOT NULL, FirstName varchar(255) NOT NULL, Age int );实例2 在已经存在的表中添加 NOT NULL 约束在已创建的Persons表的 "Age" 字段中 添加 NOT NULL 约束 alter table ceshi alter column age int not null;实例3 删除 NOT NULL 约束在一个已创建的表的 "Age" 字段中删除 NOT NULL 约束 alter table ceshi alter column age int null;UNIQUE 约束 介绍UNIQUE 约束唯一标识数据库表中的每条记录。UNIQUE 和 PRIMARY KEY 约束均为列或列集合提供了唯一性的保证。PRIMARY KEY 约束拥有自动定义的 UNIQUE 约束。每个表可以有多个 UNIQUE 约束,但是每个表只能有一个 PRIMARY KEY 约束。实例1 创建表时的UNIQUE约束CREATE TABLE Persons ( P_Id int NOT NULL UNIQUE, -- 直接说明了是UNIQUE -- LastName varchar(255) NOT NULL, FirstName varchar(255), Address varchar(255), City varchar(255) );命名 UNIQUE 约束,并定义多个列的 UNIQUE 约束 CREATE TABLE Persons ( P_Id int NOT NULL, LastName varchar(255) NOT NULL, FirstName varchar(255), Address varchar(255), City varchar(255), CONSTRAINT uc_PersonID UNIQUE (P_Id, LastName) );实例2 更改表时的UNIQUE约束表Persons已经存在,需要在P_ID列创建UNIQUE约束 ALTER TABLE Persons ADD UNIQUE (P_ID);表Persons已经存在,需要重命名UNIQE 约束,并定义多个列的约束 ALTER TABLE Persons ADD CONSTRAINT uc_PersonID (P_ID, LastName);实例3 撤销UNIQUE约束ALTER TABLE Persons DROP CONSTRAINT uc_Person_ID;PRIMARY KEY (主键) 约束 介绍PRIMARY KEY约束 唯一标识数据库表中的每条记录。主键必须包含唯一的值。主键列不能包含 NULL 值。每个表都有且只能有一个主键。实例1 创建表时的PRIMARY 约束在 "Persons" 表创建时在 "P_Id" 列上创建 PRIMARY KEY 约束 CREATE TABLE Persons( P_Id int NOT NULL PRIMARY KEY, -- 主键定义 -- LastName varchar(255) NOT NULL, FirstName varchar(255), Address varchar(255), City varchar(255) );在建表的同时命名 PRIMARY KEY 约束,并定义多个列的 PRIMARY KEY 约束 CREATE TABLE Persons ( P_Id int NOT NULL, LastName varchar(255) NOT NULL, FirstName varchar(255), Address varchar(255), City varchar(255), CONSTRAINT pk_PersonID PRIMARY KEY (P_Id,LastName) );实例2 更改表时的 PRIMARY 约束表Persons 已经被创建,需在 "P_Id" 列创建 PRIMARY KEY 约束 ALTER TABLE Persons ADD PRIMARY KEY (P_Id);需要命名 PRIMARY KEY 约束,并定义多个列的 PRIMARY KEY 约束 ALTER TABLE Persons ADD CONSTRAINT pk_PersonID PRIMARY KEY (P_Id,LastName);注意事项:使用 ALTER TABLE 语句添加主键的时候,必须把主键列声明为不包含 NULL 值(在表首次创建时)。实例3 撤销 PRIMARY KEY 约束ALTER TABLE Persons DROP CONSTRAINT pk_PersonID;FOREIGN KEY (外键约束) 介绍一个表中的 FOREIGN KEY 指向另一个表中的 UNIQUE KEY。FOREIGN KEY 约束用于预防破坏表之间连接的行为。FOREIGN KEY 约束能防止非法数据插入外键列,因为它必须是它指向的那个表中的值之一。实例1 创建表时的 FOREIGN KEY 约束下面的 SQL 在 "Orders" 表创建时在 "P_Id" 列上创建 FOREIGN KEY 约束 CREATE TABLE Orders ( O_Id int NOT NULL PRIMARY KEY, OrderNo int NOT NULL, P_Id int FOREIGN KEY REFERENCES Persons(P_Id) -- 外键定义 -- ); 命名 FOREIGN KEY 约束,并定义多个列的 FOREIGN KEY 约束 CREATE TABLE Orders ( O_Id int NOT NULL, OrderNo int NOT NULL, P_Id int, PRIMARY KEY (O_Id), CONSTRAINT fk_PerOrders FOREIGN KEY (P_Id) REFERENCES Persons(P_Id) ); 实例2 修改表时的 FOREIGN KEY 约束已经创建"Orders"表,如果需要在 "P_Id" 列创建 FOREIGN KEY 约束 ALTER TABLE Orders ADD FOREIGN KEY (P_Id) REFERENCES Persons(P_Id); -- 外键定义 -- 命名 FOREIGN KEY 约束,并定义多个列的 FOREIGN KEY 约束 ALTER TABLE Orders ADD CONSTRAINT fk_PerOrders FOREIGN KEY (P_Id) REFERENCES Persons(P_Id);实例3 撤销 FOREIGN KEY 约束ALTER TABLE Orders DROP CONSTRAINT fk_PerOrders在创建外键约束时,必须先创建外键约束所依赖的表,并且该列为该表的主键notes:子表:谁创建外键谁就是子表父表:这个外键所依赖的表CHECK 约束 介绍 CHECK 约束用于限制列中的值的范围。如果对单个列定义CHECK约束,那么该列只允许存在特定的值。如果对一个表定义CHECK约束,那么此约束会基于行中其他列的值在特定的列中对值进行限制。实例1 创建表时的 CHECK 约束要求: 创建"Persons" 时,在 "P_Id" 列上创建 CHECK 约束。 CHECK 约束规定 "P_Id" 列只能存在大于 0 的整数。 CREATE TABLE Persons ( P_Id int NOT NULL CHECK (P_Id > 0), -- check定义 -- LastName varchar(255) NOT NULL, FirstName varchar(255), Address varchar(255), City varchar(255) );命名 CHECK 约束,并定义多个列的 CHECK 约束 CREATE TABLE Persons ( P_Id int NOT NULL, LastName varchar(255) NOT NULL, FirstName varchar(255), Address varchar(255), City varchar(255), CONSTRAINT chk_Person CHECK (P_Id > 0 AND City = 'QingDao') ); 实例2 修改表时的 CHECK 约束Person表已创建,在 "P_Id" 列创建 CHECK 约束 ALTER TABLE Persons ADD CHECK (P_Id > 0); 命名 CHECK 约束,并定义多个列的 CHECK 约束 ALTER TABLE Persons ADD CHECK chk_Person CHECK (P_Id > 0 AND City = 'Sandnes'); 实例3 撤销 CHECK 约束ALTER TABLE Persons DROP CONSTRAINT chk_Person; DEFAULT 约束 介绍 DEFAULT 约束用于向列中插入默认值。如果没有规定其他的值,那么会将默认值添加到所有的新记录。实例1 创建表时的DEFAULT约束创建"Persons" 表时,在 "City" 列上创建 DEFAULT 约束 CREATE TABLE Persons ( P_Id int NOT NULL, LastName varchar(255) NOT NULL, FirstName varchar(255), Address varchar(255), City varchar(255) DEFAULT 'QingDao' -- DEFAULT约束定义 -- ); 实例2 创建表时的DEFAULT约束Persons表已经被创建,在 "City" 列创建 DEFAULT 约束 ALTER TABLE Person MODIFY City DEFAULT 'QingDao'; 实例3 创建表时的DEFAULT约束ALTER TABLE Persons ALTER COLUMN City DROP DEFAULT; `` 本教程原地址: CSDN 数据库 增加了一些个人理解的部分
2021年04月14日
11 阅读
0 评论
1 点赞
2021-04-16
关于学习SQL中遇到的问题以及解决方法
下午自己测试了很多,脑子好乱。现在回想一下,好像每种操作都有很多方式。1.创建约束的操作创建表时添加约束的三种方法 第一种CREATE TABLE Persons ( P_Id int NOT NULL, LastName varchar(255) NOT NULL, FirstName varchar(255), Address varchar(255), City varchar(255), CONSTRAINT uc_PersonID UNIQUE (P_Id, LastName) );第二种CREATE TABLE Persons ( P_Id int NOT NULL, LastName varchar(255) NOT NULL, FirstName varchar(255), Address varchar(255), City varchar(255), unique(P_Id, LastName) );第三种 直接在列明后面添加 unique , 这里省略不写了。删除表中约束的两种种方法 第一种alter table Persons drop constraint uc_PersonID;第一种删除方式比较简便,直接删除表中有那个约束名称的约束即可,契合上面第一种添加约束的语句。第二种 当我们违反约束的时候,会提示约束名称,然后可以删除掉约束 alter table tt drop constraint UQ__tt__72E12F1B182C9B23同时,我发现了一种错误的删除方式(我以为我删除了)例子:首先创建表格:create table tll( name char(5) unique );然后更改表格alter table tll alter column name char(5);我以为也是一种删除约束的方式,可是添加数据的时候发现了问题。还有另一个疑惑当约束存在时,我们改变表中的字符长度,会提示错误 百度一些资料之后,自己冒然决定下出结论:当约束存在的时候,不能删改列的属性。不测试不知道。当真正测试的时候,就会发现很多的问题。
2021年04月16日
9 阅读
0 评论
1 点赞
2021-04-16
SQL中添加外键约束以及删除外键约束
如果公共关键字在一个关系中是主关键字,那么这个公共关键字被称为另一个关系的外键。由此可见,外键表示了两个关系之间的相关联系。以另一个关系的外键作主关键字的表被称为主表,具有此外键的表被称为主表的从表。外键又称作外关键字。 当我们想对一个表添加外键时 虽然他们两个是这张表的联合主键( 联合主键就是用2个或2个以上的字段组成主键。用这个主键包含的字段作为主键,这个组合在数据表中是唯一,且加了主键索引。 )不过并不影响它们两个是其他表的外键外键添加语句alter table Sc add constraint fk_Sc foreign key(sno) references Student(sno);alter table Sc add constraint fk_Sc_cno foreign key(cno) references Course(cno);知道添加外键,当然还得知道如何删除外键sql语句如下alter table table_name drop constraint 外键约束名什么是外键约束名? 在上面的两个sql语句中,以fk_开头的便是我设置的外键约束名,换成其他也可以。所以我这张表的删除外键sql语句为:alter table Sc drop constraint fk_Sc; alter table Sc drop constraint fk_Sc_cno;在sql server中如果想同时执行多条语句,可以用GO包裹要执行的语句GO 多条sql语句 GO 所以如果要并发执行上面的添加/删除外键的语句,必须得用 GO 包裹哦并发执行多条添加外键:go alter table Sc add constraint fk_Sc foreign key(sno) references Student(sno); alter table Sc add constraint fk_Sc_cno foreign key(cno) references Course(cno); go并发执行多条删除外键:go alter table Sc drop constraint fk_Sc; alter table Sc drop constraint fk_Sc_cno; go
2021年04月16日
9 阅读
0 评论
1 点赞
1
2