用一条SQL语句查询出每门课都大于80分的学生姓名
name | kecheng | fenshu |
---|---|---|
张三 | 语文 | 81 |
张三 | 数学 | 75 |
李四 | 语文 | 76 |
李四 | 数学 | 90 |
王五 | 语文 | 81 |
王五 | 数学 | 100 |
王五 | 英语 | 90 |
1 | -- 建表语句 |
查询后一天 temperature 比前一天高的date
查找与之前(昨天的)日期相比温度更高的所有日期的 Id。
id | date | temperature |
---|---|---|
1 | 2013-04-01 | 20 |
2 | 2013-04-02 | 25 |
3 | 2013-04-03 | 21 |
4 | 2013-04-04 | 24 |
1 | -- mst_Weather |
查询每个主播的最大level以及对应的最小gap(注意:不是每个主播的最大level和最小gap)
zhuobo_id | level | gap |
---|---|---|
123 | 8 | 20 |
123 | 9 | 40 |
123 | 9 | 30 |
246 | 6 | 30 |
246 | 6 | 20 |
1 | CREATE TABLE `mst_zhubo` ( |
下表是每个课程class_id对应的年级(共有primary、middle、high三个),以及某种比率rate
class_id | grade | rate |
---|---|---|
abc123 | primary | 70% |
abc123 | middle | 65% |
abc123 | high | 72% |
hjkk86 | primary | 69% |
hjkk86 | middle | 63% |
hjkk86 | high | 74% |
请写出SQL查询出如下形式的表:
class_id | primary | middle | high |
---|---|---|---|
abc123 | 70% | 65% | 72% |
hjkk86 | 69% | 63% | 74% |
1 | CREATE TABLE `mst_class` ( |
怎么把这样一个表
year | month | amount |
---|---|---|
1991 | 1 | 1 |
1991 | 2 | 2 |
1991 | 3 | 3 |
1991 | 4 | 4 |
1992 | 1 | 1 |
1992 | 2 | 2 |
1992 | 3 | 3 |
1992 | 4 | 4 |
查成这样一个结果
year | m1 | m2 | m3 | m4 |
---|---|---|---|---|
1991 | 1 | 2 | 3 | 4 |
1992 | 1 | 2 | 3 | 4 |
1 | CREATE TABLE `mst_year` ( |
有两个表A和B,均有key和value两个字段,如果B的key在A中也有,就把B的value换为A中对应的value
这道题的SQL语句怎么写?
1 | -- 先按题设计AB表,并查看结果 |
设计表,关系如下:教室、班级、学生、科室、科室与教师为一对多关系,教师与班级为多对多关系,班级与学生为一对多关系,科室中需体现层级关系。
1.写出各张表的逻辑字段
1 | 教师 mst_Teacher |
根据上述表关系
查询教师id=1的学生数
1 | -- 已知教师Id就可以先到教师与班级的关系表中获取当前老师所带的班级 |
查询科室id=3的下级部门数
1 | -- 科室id=3的下级部门的pid也就等于科室id,因此查询当前科室的父级id = 3的即可 |
查询所带学生最多的教师id
1 | -- 先查询出每个老师带的学生数 |
(1)某奶粉品牌有以下销售数据(订单表Orderinfo),请计算每个人得消费金额、消费频次、购买产品数量、第一次购买时间和最后一次购买时间。
CustomerID | OrderID | Sales | Quantity | OrderDate |
---|---|---|---|---|
A | 01 | 100 | 1 | 2017-03-01 |
A | 02 | 420 | 3 | 2017-03-15 |
B | 03 | 300 | 4 | 2017-03-02 |
B | 04 | 1000 | 1 | 2017-04-01 |
C | 05 | 500 | 3 | 2017-05-03 |
C | 06 | 200 | 1 | 2017-05-04 |
…… |
1 | create table `mst_Orderinfo`(`CustomerID` char(5),`OrderID` int PRIMARY KEY AUTO_INCREMENT,`Sales` int,`Quantity` int,`OrderDate` date); |
(2)该奶粉品牌还有一张订单明细表(OrderDetail ),请结合上题得订单表,计算出每个SKU被多少客户购买了。
OrderDetailID | OrderID | SKU | Qutity |
---|---|---|---|
01 | 01 | SKU1 | 1 |
02 | 02 | SKU1 | 2 |
03 | 02 | SKU2 | 1 |
04 | 03 | SKU2 | 2 |
05 | 03 | SKU3 | 2 |
06 | 04 | SKU6 | 1 |
07 | 05 | SKU4 | 2 |
…… |
1 | create table `mst_OrderDetail`(`OrderDetailID` int PRIMARY KEY AUTO_INCREMENT,`OrderID` int,`SKU` char(5),`Qutity` int); |
(3)请结合Orderinfo表与OrderDetail表,找出购买了SKU1又购买SKU2产品的人。
1 | -- 先查询出购买过SKU1和SKU2的用户 |
现有一张房源表。
字段有房源基础信息以及小区id,小区name字段。
求sql查出top10的房源量的小区,按房源量降序排序。
1 | select 小区id,小区name,count(*) as 房源量 from 房源表 group by 小区id,小区name order by 房源量 desc limit 10; |
说一下你熟悉的数据库,这个数据库有什么特点?
请用sql描述,如何给表中插入数据?如何更新数据?
你常用的mysql引擎有哪些?各引擎间有什么区别?
MySQL数据库中现有如下表,名为tbl:
id | name | age | sex |
---|---|---|---|
1 | zhangsan | 25 | 1 |
2 | lisi | 22 | 0 |
3 | wangwu | 35 | 0 |
4 | zhaoliu | 24 | 1 |
5 | tianqi | 32 | 1 |
按照要求写出SQL语句:
(1)查询前3条纪录。
(2)查询所有纪录,并按照字段age降序排列。
请描述MySQL中left join和inner joinc的区别。
left join 左连接,以左边的表为基础
inner join 自连接\内连接 以公共部分为基础
请写出你知道MySQL储存引擎和区别。
请列出你最常使用的mysql版本,mysql默认端口号是多少?请写出你最常用的mysql数据库备份和恢复命令。
mysql 3306
mongodb 27017
redis 6379
数据库A:datahn,其中具有表c、表d。 数据库B:datapubhn,现想要在数据库B中对数据库A中表c与表d中的字段进行增删改查。如何授权?
对于处理高复杂sql,数据库查询特别慢,你有什么高招?
1.优化sql语句==避免子查询,避免使用join连接
2.适当使用索引
3.优化数据库结构
4.优化系统配置
5.优化服务器结构
以下哪条语句在数据库sql书写时最为高效( b )
A.select * from emp where dep>3
B.select * from emp where dep>=4
C.select * from emp where dep≥4
D.select * from emp where dep>=3 and dep≠4
数据库修改用户时,用户的什么属性不能修改?( )
A.密码
B.名称
C.表空间
D.临时表空间
数据库中执行删除操作,若要删除表中的所有行,建议使用( b )
A.delete 语句
B.turncate 语句
C.drop 语句
D.commit 语句
2在查询语句的select子句中尽量避免使用__来表示全部列名。
SQL中增加、删除、修改对应的命令是什么?
查找条件为:姓名不是NULL的纪录( c )
A.WHERE NAME ! NULL
B.WHERE NAME NOT NULL
C.WHERE NAME IS NOT NULL
D.WHERE NAME!=NULL
在SQL语言中,子查询是( d )
A.选取单表中字段子集的查询语句
B.选取多表中字段子集的查询语句
C.返回单表中数据子集的查询语言
D.嵌入到另一个查询语句之中的查询语句
以下能够删除一列的是( b )
A.alter table emp remove addcolumn
B.alter table emp drop column addcolumn
C.alter table emp delete column addcolumn
D.alter table emp delete addcolumn
学生关系模型S(S#,Sname,Sex,Age),S的属性分别表示学生的学号、姓名、性别、年龄。要在表S中删除一个属性”年龄”,可选用的SQL语句是( d )
A.UPDATE S Age
B.DELETE Age from S
C.ALTER TABLE S ‘Age’
D.ALTER TABLE S DROP Age
补全语句:select vend_id,count(*) as num_prods from products group by______vend_id__;
SELECT distinct 部门名称,count(员工编号),sum(个人工资) FROM 工资表 GROUP BY 部门名称 having count (员工编号>10);查询结果是___。
用SELECT进行模糊查询时,可以使用匹配符,但要在条件值中使用__或%等通配符来配合查询。
MySQL是一种___多用户 _(多用户、单用户)的数据库管理系统。
对一个超过200个汉字的内容,应用一个varchar或者text型的字段来存放。
查看当前数据库中表名语句是_;
Mysql数据库GD2312、utf8\utf8mb4字符集的区别___。