×

数据库增删改查语句面试题

数据库增删改查语句面试题(面试的时候如何描述数据库的增删改查)

admin admin 发表于2024-03-18 01:35:37 浏览26 评论0

抢沙发发表评论

这篇文章给大家聊聊关于数据库增删改查语句面试题,以及面试的时候如何描述数据库的增删改查对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。

本文目录

面试的时候如何描述数据库的增删改查

创建数据库选择开始菜单中→程序→【Management SQL Server 2008】→【SQL Server Management Studio】命令,打开【SQL Server Management Studio】窗口,并使用Windows或 SQL Server身份验证建立连接。在【对象资源管理器】窗口中展开服务器,然后选择【数据库】节点右键单击【数据库】节点,从弹出来的快捷菜单中选择【新建数据库】命令。执行上述操作后,会弹出【新建数据库】对话框。在对话框、左侧有3个选项,分别是【常规】、【选项】和【文件组】。完成这三个选项中的设置会后,就完成了数据库的创建工作,在【数据库名称】文本框中输入要新建数据库的名称。例如,这里以“新建的数据库”。在【所有者】文本框中输入新建数据库的所有者,如sa。根据数据库的使用情况,选择启用或者禁用【使用全文索引】复选框。在【数据库文件】列表中包括两行,一行是数据库文件,而另一行是日记文件。通过单击下面的【添加】、【删除】按钮添加或删除数据库文件。切换到【选项页】、在这里可以设置数据库的排序规则、恢复模式、兼容级别和其他属性。切换到【文件组】页,在这里可以添加或删除文件组。完成以上操作后,单击【确定】按钮关闭【新建数据库】对话框。至此“新建的数据”数据库创建成功。新建的数据库可以再【对象资源管理器】窗口看到。

数据库基础篇(三)—— SQL之数据操纵、定义

1)语法

2)两种方式区别

方式一使用最多。它支持插入多行;支持嵌入子查询。方式二不支持。

3)特点

①字段类型和值类型一致或兼容,而且一一对应

②可以为空的字段,可以不用插入值,或用null填充

③不可以为空的字段,必须插入值

④字段个数和值的个数必须一致

⑤字段可以省略,但默认所有字段,并且顺序和表中的存储顺序一致

1)语法

2)栗子

1)语法

2)栗子

3)两种方式区别

① truncate不能加where条件,而delete可以加where条件

② truncate的效率高一点

③truncate 删除带自增长的列的表后,如果再插入数据,数据从1开;delete 删除带自增长列的表后,如果再插入数据,数据从上一次的断点处开始

④truncate删除不能回滚,delete删除可以回滚

1)库的管理:

2)表的管理:

注意:对于表和库的管理,语句理解就好。工作中最方便的是直接在Navicat中直接操作。那么,这里重要的是复制表,它的需求通常是直接复制表的结构或数据,或者部分数据及部分结构。不需要重新再创建表结构,导数据。直接用SQL,效率会很高,且不容易出错。

上面在创建表时,涉及到数据类型。它和Python程序语言类似,也有自己的数据类型。都是在存储数据时,要对数据类型进行限制,保证插入数据时的准确性。分类分别是数值型、字符型、日期型。图中标记部分为常用。

上面在创建表时涉及到约束,它是工作中非常重要的。我们从一个问题场景来看,下面是一个真实的面试题。我们第一反应是"报错!",但是面试官想听的是背后报错原因及解决方案。下面,带着问题来学习约束。

约束是一种限制,用于限制表中的数据结构,为了保证表中的数据的准确和可靠性、一致性。比如:创建用户表时,为了保证每一个用户唯一性,就需要进行约束。添加约束的时机分别是创建表、修改表时。SQL中有五大常用约束。如下:

①NOT NULL 非空约束,保证该字段的值不为空。如:用户ID

②DEFAULT 默认约束,字段如果不插入数据也有默认值。如:性别

③UNIQUE 唯一约束,可以为空。如:商品类别

④PRIMARY KEY 主键,保证字段唯一性、非空。如:ID,员工编号

⑤FOREIGN KEY 外键,用于限制两个表之间的关系,用于保证该字段的值必须来自主表的关联列的值。如:用户表里有个外键是order_id, order_id是order的主键。下图是约束在Navicat中设置的对应位置。

最后回答下上面的问题:原因是int类型的id字段最大数据量支持到4294967295,如果超过则会报错。解决方案:①检查id字段是否是主键②将id的类型转换为 bigint。

好,今天学习到这里。本节内容相对上一节要简单些。虽然简单,但每个知识点都是工作中常用的。这篇文章主要是SQL的增删改和表和库的管理。明天继续学习SQL的事务及视图。一起加油!

SQL数据库的问题目

这是在一个student数据库上建立的查询,你可以把邮箱告诉我,我把数据库文件发给你,当然如果你想自己建的话也行,下面是三张表。sno sname ssex sage sdept200215121李勇 男20CS200215122刘晨 女19CS200215123王敏 女18MA200215125张立 男19IScno cname cpno ccredit1 数据库 5 42 数学 NULL23 信息系统 1 44 操作系统 6 35 数据结构 7 46 数据处理 NULL27 PASCAL语言 6 4sno cno grade2002151211 922002151212 852002151213 882002151222 902002151223 80--1.查询所有年龄在20岁以下的学生姓名及其年龄。select sname,sagefrom studentwhere sage《20--2.查询考试成绩有不及格的学生的学号。select snofrom scwhere grade《60--3.查询年龄不在19~22岁之间的学生姓名、系别和年龄。select sname,sdept,sagefrom studentwhere sage not between 19 and 22--4.查询既不是信息系,也不是计算机科学系的学生的姓名和性别。select sname,ssexfrom studentwhere sdept not in (’IS’,’CS’)--5.查询所有姓刘学生的姓名、学号和性别select sname,sno,ssexfrom studentwhere sname like ’刘%’--6.在Course数据表中添加记录(’8’,’DB_design’,’2’,4),并查询以"DB_"开头,且倒数第3个字符为 i的课程的详细情况select *from coursewhere cname like ’DB\_%i__%’ escape’\’--7.在SC数据表中添加记录(’200215123’,’1’,null),并查询所有有成绩的学生学号和课程号select sno,cnofrom sc--8.查询全体学生情况,查询结果按所在系的系号降序排列,同一系中的学生按年龄升序select *from studentorder by sdept desc,sage asc--9.计算2号课程的学生平均成绩。select AVG(grade)from scwhere cno=’2’--10在SC数据表中添加记录(’200215123’,’1’,23),统计出不及格的同学学号和不及格的门数。select student.sno,count(grade)from sc,studentgroup by student.snohaving grade《60--11.查询选修1号课程的学生最高分数。select MAX(grade)from scwhere cno=’1’--12.查询学生200215121选修课程的总学分数。select SUM(grade)from scwhere sno=’200215121’--13.求各个课程号及相应的选课人数select cno,COUNT(sno)from scgroup by cno--14.查询选修了2门以上(包括2门)课程的学生学号select snofrom scgroup by snohaving count(*)》=2--15.查询成绩大于等于90分的学生的学号和姓名select student.sno,snamefrom student,scwhere grade》90--16.查询选修了“数据库”课程的学生的学号和姓名select student.sno,snamefrom student inner join sc on student.sno=sc.snowhere cno=(select cno from course where cname=’数据库’)--17.查询选修了3号课程且成绩高于此课程平均成绩的学号和成绩select student.sno,gradefrom student inner join sc on student.sno=sc.snowhere cno=’3’ and grade》(select AVG(grade) from sc)--18.查询没有选修1号课程的学生姓名。select snamefrom student,scwhere cno!=’1’--1.建立计算机系选修了2号课程的学生视图V1create view v1asselect sno,sname,ssex,sage,sdeptfrom student,coursewhere sdept=’cs’ and cno=’2’--2.建立信息系选修了1号课程且成绩在90分以上的学生的视图V2create view v2asselect student.sno,sname,ssex,sage,sdeptfrom student,course,scwhere course.cno=’2’ and grade》90--3.将每门课程的课程号和平均成绩定义为一个视图V3create view v3(cno,avg_grade)asselect cno,avg(grade)from scgroup by cno--三、创建和执行下列存储过程:--o 创建语句格式:--n CREATE Proc 存储过程名----As--Sql语句--o 执行语句格式:--n --1.查询计算机系学生的考试成绩,列出学生的姓名、课程名和成绩。select sname,cno,gradefrom student,scwhere sdept=’cs’--2.查询某个指定系学生的考试成绩,列出学生的姓名、所在系、课程名和成绩。select sname,sdept,cname,gradefrom student,sc,coursewhere sdept=’%’--3.查询某个学生某门课程的考试成绩,列出学生的姓名、课程名和成绩。select sname,cno,gradefrom student,scwhere sname=’%’ and cname=’%’--4.查询某个学生某门课程的考试成绩,若没有指定课程,则默认课程为“数据库基础”。select sname,cno,gradefrom student,scwhere sname=’%’ and cname=’%’--5.统计指定课程的平均成绩,并将统计的结果用输出参数返回。--6.创建带删除数据的存储过程,要求删除考试成绩不及格学生的修课记录。--7.创建带修改数据的存储过程,要求将指定的课程的学分增加2分。

求ASP.NET,C#,SQL一些面试题! swl_101@126.com谢谢了,麻烦了

SQL Server笔试题解答 本文是对SQL笔试题的解答……一 单词解释(2分/个) 34 Data 数据Database 数据库RDBMS 关系数据库管理系统GRANT 授权 REVOKE取消权限DENY 拒绝权限DECLARE 定义变量PROCEDURE存储过程 Transaction事务TRIGGER触发器继续 continue唯一 unqiue 主键 primary key标识列 identity外键 foreign kdy 检查 check 约束 constraint 二 编写SQL语句(5分/题)50 1) 创建一张学生表,包含以下信息,学号,姓名,年龄,性别,家庭住址,联系电话 Create table stu (学号 int , 姓名 varchar(8), 年龄 int, 性别 varchar(4), 家庭地址 varchar(50), 联系电话 int ); 2) 修改学生表的结构,添加一列信息,学历 Alter table stu add 学历 varchar(6); 3) 修改学生表的结构,删除一列信息,家庭住址 Alter table stu drop column 家庭地址 4) 向学生表添加如下信息: 学号 姓名年龄性别联系电话学历 1A22男123456小学 2B21男119中学 3C23男110高中 4D18女114大学 Insert into stu values(1,’A’,22,’男’,123456,’小学’) Insert into stu values(2,’B’,21,’男’,119,’中学’) Insert into stu values(3,’C’,23,’男’,110,’高中’) Insert into stu values(4,’D’,18,’女’,114,’大学’)5) 修改学生表的数据,将电话号码以11开头的学员的学历改为“大专” Update stu set 学历=’大专’ where 联系电话 like ‘11%’ 6) 删除学生表的数据,姓名以C开头,性别为‘男’的记录删除 Delect from stu where 性别=’男’ and 姓名 like ‘c%’ 7) 查询学生表的数据,将所有年龄小于22岁的,学历为“大专”的,学生的姓名和学号示出来 Select 姓名,学号 from stu where 年龄《22 and 学历=’大专’ 8) 查询学生表的数据,查询所有信息,列出前25%的记录 Select top 25 percent * from stu 9) 查询出所有学生的姓名,性别,年龄降序排列 Select 姓名,性别 from stu order by 年龄 desc 10) 按照性别分组查询所有的平均年龄 Select avg(年龄) from stu group by 性别 三 填空(3分/题) 36 1) 索引分为__聚集索引___和__非聚集索引__在一张表上最多可以创建1个 聚集索引_索引。但是可以创建_249个非 聚集索引 索引。 2) 系统存储过程_sp-helptext__是用来显示规则,默认值,未加密的存储过程,用户定义函数,触发或视图的文本 3) 事务开始:begin Transction 提交事务:commit Transction 回滚事务:rollback Transction 四 问答题(5分/题)60 1) 数据库包含哪些那几种后缀名的文件必须,这些文件分别存放在什么的信息? 主要数据文件(.mdf) 包含数据用户收集的信息,还有数据库其他相关的信息, 日志数据文件(.ndf) 存放用户对数据库的增删改查的信息,用于备份恢复使用 2) TRUNCATE TABLE 命令是什么含义?和Delete from 表名有什么区? TRUNCATE TABLE: 提供了一种删除表中所有记录的快速方法 Delete from 表名:可以删除表的一个或多条记录 3) 说出以下聚合数的含义:avg ,sum ,max ,min , count ,count(*) AVG:求平均值 SUM:求和 MAX:求最大值 MIN:求最小值 COUNT(*):返回所有行数 COUNT返回满足指定条件的记录值4) inner join 是什么意思?作用是什么?写出基本语法结构 INNER JOIN 内联接,用于返回两个表中要查询的列数据通信 Select * from 表名1 inner join 表名2 on 条件表达式 5) 左向外联接,右向外联接,全联接的关健字如何写? Left outer join 左向外联接 Right outer join 右向外联接 Full outer join 全联接 6) 子查询分为几类,说明相互之间的别 了查询分三种基本子查询: 1.使用in 查询返回一列或更多值 2.比较运算符,返回单个值勤做为外查询的参数 3.用exists 查询时相当于进行一次数据测试 7) 实现实体完整性,实现域完整性,实现 完整性(引用完整性),实现自定义完整性分别使用什么手段? 实现实体完整性: 主键约束 唯一约束 标识列 实现域完整性: 默认值约束 检查约束 非空属性 引和完整性: 外键引用 8) 视图可以更新吗?会影响到实际表吗? 视图是可以更新的,视图只是基于基本表上的虚拟表,对视图的更新会直接影响到实际表 9) 谈谈这样几个角色, dbo , Sysadmin public Dbo : 是数据库的拥有者,对数据库拥有所有操作的权限 Sysadmin : 可以对SQL SERVER执行任何活动 Public : 自动创建的,能捕获数据库中用户的所有默认权限 10) 何为动态游标?何为静态游标? 动态游标与静态游标相对,反映结果集中所做的所有更改, 静态游标的结果集在游标打开时,建立在tempdb中,总按照游标打开时的原样显示 11) 什么是存储过程?为什么存储过程要比单纯的Sql 语句执行起来要快? 存储过程:是一组预先编译好的T-SQL代码 在创建存储过程时经过了语法和性能优化,执行不必重复的步骤,使用存储过程可提高运行效率 12)什么是Inserted 表 ?什么是Deleted 表? Inserted表用于存储inserted和update语句影响的副本 Deleted 表用于存储delect 和 update语句影响的行的副本

SQL数据库 基本的操作语句(增、删、改、查)

例子create table useInfo --创建用户表( useId int identity(1,1) priamry key not null, --用户Id,设为主键,标识列,不为空。 useName varchar(10) not null ,--用户名称,不为空 useSex char(2) not null --用户性别,不为空)go --批处理insert into useInfo(useName,useSex) values(’小明’,’男’) --想表useInfo里添加信息,Id是标识列,所以不用自己手动添加,它会自动添加,所以只需添加姓名和性别。update useInfo set useName = ’大明’ where useName = ’小明’ --把表里名字叫小明的人名字改为大明delete from useInfo where useName = ’大明’ --根据姓名删除表里的信息。truncate table useInfo --把表里的所有信息都删了,而且把标志列的数清零。如果用delete删除表里的信息 则不会把标识列清零。select * from useInfo --查询useInfo表里的所有信息 * 表示所有select 1 from useInfo where useName = ’大明’ --按条件查询,查询表里名字叫大明的人的信息

关于本次数据库增删改查语句面试题和面试的时候如何描述数据库的增删改查的问题分享到这里就结束了,如果解决了您的问题,我们非常高兴。