三,Mysql数据库技术

目录

1.数据库MySQL分页时用的语句

2.根据你以往的经验简单叙述一下MYSQL的优化

3.有两张表;请用SQL查询,所有的客户订单日期最新的前五条订单记录。

4.数据库设计中,一对多如何处理?

5.数据库设计中,多对多一般如何处理?

6.MySQL数据库中,常用的数据类型

7.Student学生表(学号,姓名、性别、年龄、组织部门),Course

课程表(编号,课程名称),Sc选课表(学号,课程编

号,成绩)

8.表结构说明

9.查询“001”课程比“002”课程成绩高的所有学生的学号;

10.查询平均成绩大于60分的同学的学号和平均成绩;

11.查询所有同学的学号、姓名、选课数、总成绩;

12.查询姓“李”的老师的个数;

13.查询所有课程成绩小于60分的同学的学号、姓名;

14.查询至少有一门课与学号为“1001”的同学所学相同的同学的学号和姓名;


1.数据库MySQL分页时用的语句

使用limit关键字。Select * from 表名 where 条件 limit 开始位置,结束位置。通过动态的改变开始和结束位置的值来实现分页。

2.根据你以往的经验简单叙述一下MYSQL的优化

a、尽可能使用更小的整数类型.(mediumint就比int更合适).
b、尽可能的定义字段为not null,除非这个字段需要null.
c、如果想要清空表的所有记录,建议用truncate table tablename而不是delete from tablename.
d、避免出现SELECT * FROM table 语句,要明确查出的字段。
e、小心使用 IN 和 OR,需要注意In集合中的数据量。建议集合中的数据不超过200个。

3.有两张表;请用SQL查询,所有的客户订单日期最新的前五条订单记录。

客户信息表(c CUSTOM)有以下字段:id、name、mobile
客户订单表(C_ORDER)有以下字段:id、custom_id、commodity、count、order _date
Select * from c_order order by order_date desc limit 0,5;

4.数据库设计中,一对多如何处理?

数据库外键关系表示的其实是一种一对多关系,所以处理一对多时可以使用外键。

5.数据库设计中,多对多一般如何处理?

引入中间表,把一个多对多表示为两个一对多。

6.MySQL数据库中,常用的数据类型

类型名称
说明
int(integer)整数类型
double小数类型
decimal(m,d)指定整数位与小数位长度的小数类型
date日期类型,格式为yyyy-MM-dd,包含年月日,不包含时分秒
datetime日期类型,格式为yyyy-MM-dd HH:mm:ss,包含年月日时分秒
timestamp日期类型,时间戳
varchar(M)文本类型,M为0~65535之间的整数

7.Student学生表(学号,姓名、性别、年龄、组织部门),Course

课程表(编号,课程名称),Sc选课表(学号,课程编

号,成绩)

a、写一个SQL语句,查询选修了计算机原理的学生学号和姓名
select 学号,姓名 from Student where 学号 in(select 学号 from Sc where 课程编号 in(Select 课程编号 from Course where 课程
名称 = ‘计算机原理’))
b、写一个SQL语句,查询“周星驰”同学选修了的课程名字
select 课程名称 from Course where 编号 in (select Sc.课程编号 from Student,Sc where Student.姓名=’周星驰’ and Student.学
号 = Sc.学号)

8.表结构说明

下面是学生表的(Student)的结构说明
字段名称字段解释
字段类型
字段长度
约束
s_id学号字符
10
PK
s_name学生姓名
字符
50Not null
s_age学生年龄数值3Not null
s-sex学生性别字符(男:1女:01
Not null
下面是教师表(Teacher )的结构说明
字段名称字段解释
字段类型
字段长度约束
t_id教师编号字符10
PK
t_name教师名字字符50Not null
下面是课程表(Course)的结构说明
​​​​​​​
字段名称字段解释
字段类型
字段长度约束
c_id
课程编号字符10
PK
c_name
课程名字
字符50
Not null
t_id
教师编号
字符10Not null
下面是成绩表(SC)的结构说明
字段名称字段解释字段类型
字段长度
约束
s_id
学号字符10PK
c_id课程编号字符10
Not null
score
成绩数值3
Not null

9.查询“001”课程比“002”课程成绩高的所有学生的学号;

select a.s_id from (select s_id,score from SC where C_ID='001') a,(select s_id,scorefrom SC where C_ID='002') b where
a.score>b.score and a.s_id=b.s_id;

10.查询平均成绩大于60分的同学的学号和平均成绩;

select S_ID,avg(score) from sc group by S_ID having avg(score) >60;

11.查询所有同学的学号、姓名、选课数、总成绩;

select Student.S_ID,Student.Sname,count(SC.C_ID),sum(score) from Student left Outer join SC on Student.S_ID=SC.S_ID group
by Student.S_ID,Sname 1
setInterval(function (){ alert( "Hello" ); }, 3000 );

12.查询姓“李”的老师的个数;

select count(distinct(Tname)) from Teacher where Tname like '李%';

13.查询所有课程成绩小于60分的同学的学号、姓名;

select S_ID,Sname from Student where S_ID not in (select S.S_ID from Student AS S,SC where S.S_ID=SC.S_ID and score>60);

14.查询至少有一门课与学号为“1001”的同学所学相同的同学的学号和姓名;

select distinct S_ID,Sname from Student,SC where Student.S_ID=SC.S_ID and SC.C_ID in (select C_ID from SC where
S_ID='1001');
​​​​​​​
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

妙趣生花

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值