数据库笔试面试题
admin
2024-03-03 17:09:25
0

数据库笔试面试题

  • 一 基本定义
      • (1)表是数据的集合,按行和列组织。
      • (2)临时表
  • 二、SQL语言包含
    • 1.数据定义语言(DDL.Data Definition Language):create/drop/alter
      • create基本操作
    • 2.数据操作语言(DML.Data Manipulation Language)
      • insert基本用法
      • update基本用法
        • update+拼接
    • 3.数据查询语言(DQL.Data Query Language)
      • Select基本用法
      • Select+Where条件查询
        • 嵌套查询
        • 连接查询
      • Select+group by分组显示
        • Select+Group by +Having
      • Select+order by
    • 4.数据控制语言(DCL.Data Control Language)
  • 拓展
    • 连接JOIN(inner)
      • left join

一 基本定义

(1)表是数据的集合,按行和列组织。

表是数据存储的简单形式。表格也被认为是关系的方便表示。在 DBMS 术语中,表称为关系,列称为字段,行称为元组。

(2)临时表

临时表(临时表可以在运行时创建,可以做普通表可以做的各种操作。这些临时表是在 tempdb 数据库中创建的。)

本地临时表仅在当前连接时间可用。当用户与实例断开连接时,它会自动删除。它以井号 (#) 符号开头。

CREATE TABLE #local temp table (  
User id int,  
Username varchar (50),  
User address varchar (150)  
)  
Glo

全局临时表名称以双哈希 (##) 开头。一旦这个表被创建,它就像一个永久的表。它始终为所有用户准备好,并且在整个连接被撤销之前不会被删除。

CREATE TABLE ##new global temp table (  
User id int,  
User name varchar (50),  
User address varchar (150)  
)  

二、SQL语言包含

1.数据定义语言(DDL.Data Definition Language):create/drop/alter

在数据库中创建或删除数据库对象等操作,如create、drop 、alter等语句

数据定义语言DDL用来创建数据库中的各种对象-----表、视图、索引、同义词、聚簇等如:
CREATE TABLE/VIEW/INDEX/SYN/CLUSTER

create基本操作

创建表create

SQL> CREATE TABLE STUDENTS (  
ID INT                           NOT NULL,  
NAME VARCHAR (20) NOT NULL,  
AGE INT                         NOT NULL,  
ADDRESS CHAR (25),  
PRIMARY KEY (ID)  
);  

删除表drop

DROP TABLE "table_name";  

更改表

ALTER TABLE Employee RENAME To Coding_Employees ;#改表名
ALTER TABLE Cars ADD Car_Model Varchar(20);#增加列


2.数据操作语言(DML.Data Manipulation Language)

用来插入、修改和删除表中的数据,如insert、update、delete语句


insert基本用法

以下SQL将学生的记录插入到Student_Records表中:

INSERT INTO Student VALUES (201, Akash, Delhi, 18, 89, A2),   

update基本用法

SQL UPDATE语句用于更改表所保存的记录的数据。要更新哪些行,由条件决定。要指定条件,我们使用 WHERE 子句。

(1)更新一条记录的一个字段:

UPDATE students  
SET User_Name = 'beinghuman'  
WHERE Student_Id = '3'  

(2)更新一条记录的多个字段:

UPDATE students  
SET User_Name = 'beserious', First_Name = 'Johnny'  
WHERE Student_Id = '3'  

update+拼接

下面是这样一个例子: 两个表a、b,想使b中的client字段值等于a表中对应id的name值

表a:
id name
1 王
2 李
3 张

表b:
id ClientName
1
2
3

(1) update set from语句,set和where关联一个表时,会对关联的表进行二次查询

UPDATE b  SET  ClientName  = a.name  FROM a,b  WHERE a.id = b.id

(2)在 SQL 中,表连接(left join、right join、inner join 等)常常用于 select 语句。 其实在 SQL 语法中,这些连接也是可以用于 update 和 delete 语句的,在这些语句中使用 join 还常常得到事半功倍的效果。

UPDATE T_OrderForm SET T_OrderForm.SellerID =B.L_TUserID
FROM T_OrderForm A LEFT JOIN T_ProductInfo  B ON B.L_ID=A.ProductID

3.数据查询语言(DQL.Data Query Language)

用来对数据库中的数据进行查询,指select语句

SELECT 语句用于访问来自一个或多个数据库表和视图的记录,检索符合我们想要的条件的选定数据。
通过使用此命令,我们还可以从表的特定列访问特定记录。

Select基本用法

SELECT Column_Name_1, ....., Column_Name_N FROM Table_Name; #访问特定字段的所有行记录
SELECT * FROM table_name;  #访问表的所有字段中的所有行

Select+Where条件查询

WHERE 子句与 SELECT 语句一起使用,仅返回表中满足查询中指定条件的那些行。

查询表中 Emp_Panelty 为 500 的员工的记录:

SELECT * FROM Employee_Details WHERE Emp_Panelty = 500;  

嵌套查询

1、嵌套查询是在查询SQL中嵌入一个子查询SQL;

2、嵌套查询会执行多条SQL语句;

3、查询效率低,要多查一轮


select sname 
from student		--外层查询或者父查询
where sno in (select snofrom SC				--内层查询或者子查询where Cno = '2');

连接查询

关键字:inner join…on

说明:组合两个表中的记录,返回关联字段符合查询条件的记录,也就是返回两个表的交集(阴影)部分。

select *
from table1 inner join table2
where table1.id = table2.id

Select+group by分组显示

GROUP BY 子句与 SELECT 语句一起使用,以显示表中列的公共数据:

以下带有 GROUP BY 查询的 SELECT 列出了相同价格的汽车数量:

SELECT COUNT (Car_Name), Car_Price FROM Cars_Details GROUP BY Car_Price;  

显示如下:

Count (Car_Name)	Car_Price
2	1000000
2	900000

Select+Group by +Having

SELECT 语句中的 HAVING 子句在 GROUP BY 子句定义的那些组中创建一个选择。

Employee_Id	Employee_Name	Employee_Salary	Employee_City
201	Jone	20000	Goa
202	Basant	40000	Delhi
203	Rashet	80000	Jaipur
204	Anuj	20000	Goa
205	Sumit	50000	Delhi

以下查询显示了上述 Employee_Having 表中超过 5000 的员工的总工资:

SELECT SUM (Employee_Salary), Employee_City FROM Employee_Having 
GROUP BY Employee_City HAVING SUM(Employee_Salary)>5000;  

Select+order by

带有 SQL SELECT 语句的 ORDER BY 子句以排序方式显示记录或行。
ORDER BY 子句按升序和降序排列值。

SELECT * FROM Employee_Order ORDER BY Emp_Salary DESC;


4.数据控制语言(DCL.Data Control Language)

用来控制数据库组件的存取许可,存取权限等,如GRANT、REVOKE等


拓展

连接JOIN(inner)

在 SQL 的情况下,JOIN 的意思是 “组合两个或多个表”。

SQL JOIN 子句从数据库中的两个或多个表中获取记录并将其组合在一起

SELECT 列名1, 列名2, 列名3, 列名4   FROM 表名1 s, 表名2 p  WHERE s.ID =p.S_ID; 

left join

SQL左连接返回左表中的所有值,它还包括右表中的匹配值,如果没有匹配的连接值,则返回NULL。

customer表:

ID	NAME	AGE	SALARY
1	ARYAN	51	56000
2	AROHI	21	25000

order表:

O_ID	DATE	CUSTOMER_ID	AMOUNT
001	20-01-2012	   2	    3000
002	12-02-2012	   2	    2000

用 LEFT JOIN 连接这两个表,结果如下:

SQL SELECT ID, NAME, AMOUNT,DATE  
FROM CUSTOMER  
LEFT JOIN ORDER  
ON CUSTOMER.ID = ORDER.CUSTOMER_ID;  
ID	NAME	AMOUNT	DATE
1	ARYAN	NULL	NULL
2	AROHI	3000	20-01-2012
2	AROHI	2000	12-02-2012

相关内容

热门资讯

延吉网红弹幕墙!辣白菜烤肉的正... 本文围绕延吉网红弹幕墙及辣白菜烤肉的正确吃法展开,先介绍弹幕墙成为网红地标的原因及特色,再详细讲解辣...
【孙建琴】早防早治“肌少症”—... 作者:孙建琴 教授、博士研究生导师,复旦大学附属华东医院营养学科带头人,上海市老年营养健康质控中心主...
大人“不爱零食”的真相上热搜,... 封面新闻记者 易弋力 近日,大人“不爱零食”等相关话题登上热搜。大人“不爱吃零食”并非伪装。 生理上...
小鸡蛋大产业,鸡蛋在餐饮爆品创... 蛋炒饭、番茄炒蛋、荷包蛋……鸡蛋是中国人餐桌上必不可少的食品、优质蛋白的主要来源,也是中国构建多元化...
《王牌对王牌》中关晓彤硬核宣传... 《王牌对王牌》中关晓彤硬核宣传新剧,你如何评价关晓彤的表现?这次的表现让我感觉到刮目相看,也可以看出...
动画短片 动画短片个人想做的小动画短片 但是没什么灵感不知道做哪方面的好 想不出剧本的好故事 球帮忙想想。。搞...
小孩被铅笔扎伤了 小孩被铅笔扎伤了我女儿今天被铅笔扎了个洞山好多好多的血,请问会不会有破伤风?破伤风主要生存在阴暗、潮...
学画松树的步骤 幼儿小班 学画松树的步骤 幼儿小班先画一个三角形,在画两个三角,最后一个长方形然后可以用蜡笔涂满,完成啦。这个...
怎么写小学生的教师评语(用汉语... 怎么写小学生的教师评语(用汉语写,但是写的是就英语方面)请给我具体评语,最好多一些曾诚:你是一个乖巧...
孩子在保育院挨打了,做父母的该... 孩子在保育院挨打了,做父母的该怎么教育孩子?记得我儿子进保育院的第一天,前三天只放两小时。早上9点送...
给点过年感慨句子 给点过年感慨句子除夜作 【唐】高适 旅馆寒灯独不眠,客心何事转凄然。 故乡今夜思千里,愁鬓明朝又一年...
一个东,一个西打成语 一个东,一个西打成语丢三落四 diū sān là sì 【解释】形容做事马虎粗心,不是丢了这个,就...
喝酒误事闹笑话,见过最搞笑的酒... 喝酒误事闹笑话,见过最搞笑的酒后状况是什么样?我见过酒后状况最搞笑的就是喝多了误把其他包房当成卫生间...
我和父母之间的故事三百字 我和父母之间的故事三百字 我和家长之间,每一个美丽的瞬间,每一个微笑的绽放,每一份真挚的感动,都...
风水摆件有哪些 风水摆件有哪些知道的告诉下 想装饰家里   对于家中经营生意或者是开公司开工厂的朋友来说,可能在装修...
《皓衣行》官宣,双男主剧你期待... 《皓衣行》官宣,双男主剧你期待吗?我非常期待这部电视剧,因为里边的男主是我的偶像,非常的帅气。我觉得...
最火的广场舞歌曲有哪些? 最火的广场舞歌曲有哪些?最火的广场舞歌曲有《小苹果》《最炫民族风》《最炫小苹果》《辣妹子》《站在草原...
十部最经典的电视剧,你都看过几... 十部最经典的电视剧,你都看过几遍,最喜欢哪部经典的电视剧总是有让观众喜欢它的理由,虽然它们也草无数次...