2020-09-06

数据库题目小练习

1

新建student表
在这里插入图片描述
新建sc表
在这里插入图片描述
新建course表
在这里插入图片描述

A 查询姓 “王” 的学生的个数

查询–>新建查询
select count(*) from student where name like ‘王%’;
在这里插入图片描述

B 查询“数学”比“语文”成绩高的所有学生的学号

方法1:使用条件语句:case when…then…
select student.id,

max(case when course.id=1 then sc.score END) chinese,
max(case when course.id=2 then sc.score end) math,
max(case when course.id=3 then sc.score END) English

from student join sc on student.id=sc.sid join course on sc.cid=course.id
GROUP BY student.id
having math > chinese;

在这里插入图片描述
方法2:使用嵌套查询(子查询)

C 查询平均成绩大于90分的同学的学号和平均成绩

查询–>新建查询

SELECT
student.id,
avg(sc.score)
FROM
student
JOIN sc ON student.id = sc.sid
JOIN course ON sc.cid = course.id
GROUP BY
student.id
HAVING
avg(sc.score) > 90;
在这里插入图片描述

数据库小知识:

空:在数据库中显示为Null(啥的没有)
在这里插入图片描述

空字符串:" "(有字符串,只是这个字符串没内容而已)

在这里插入图片描述

数据库的类型:

(1)关系型数据库:mysql、Oracle、SQL server
(2)非关系型数据库:redis、mongodb

mysql的安装

1、解压,配置环境变量
2、安装数据库 mysqld -install
3、初始化数据库 mysqld --initialize-insecure
4、启动数据库 net start mysql
5、mysql -u root -p 打开数据
exit
注意:需要⽤管理员身份操作

MySQL卸载

1、停⽌数据库net stop mysql
2、删除数据库服务 mysqld -remove
3、删除数据库的初始化数据
4、删除环境变量
注意:需要⽤管理员身份操作

数据库的连接

host -h : ip
Port -P 端口号,默认为3306
user u 账号
password -p 密码

在cmd中登录:(登录自己的,括号内可以省略)
mysql (-h localhost -P 3306) -u root -p

创建数据库

(1)数据库的名字
(2)字符集
utf8、utf8mb4
(3)字符集排序

设计表(前3个必须设置)

(1)字段名
(2)字段类型
int/整型、varchar/字符串、datetime/时间
(3)字段长度
(4)是否为空 (null /not null)
(5)默认值 (default)
(6)注释(comment 注释的内容)
(7)主键 /primary
⼀般每个表起码⼀个主键、主键可以限制这个字段不能重复、设置了主键的字段不能为空
(8)索引 /index

在这里插入图片描述
导出数据:可以把数据库里的所有表和数据导出为sql文件,并给其他人用

数据库管理

show databases; 查看数据库
use 数据库的名字;选择数据库

创建数据库:
create database 数据库的名字 default charset utf8mb4;
修改数据库:
alter database 数据库的名字 default charset utf8mb4;
删除数据库:
drop database 数据库的名字;

查看表:show tables;
创建表:
create table 表名 (字段1信息,字段2信息,字段3的信息);
1
修改表
alter table 表名 …
增加字段:alter table 表名 add 字段信息;

修改字段:
1)修改字段名:alter table 表名 change 老的字段名 新的字段信息

2)修改字段属性:alter table 表名 modify 字段信息;

删除字段:alter table 表名 drop 字段名;
修改表名:alter table 表名 rename 新表名;

删除表:drop table 表名;
查看表结构:desc 表名;

数据的操作:

增:insert into 表名(字段1,字段2) values (值1,值2);
删: delete from 表名 where 条件;
改:update 表名 set 字段1=值1,字段2=值2 where 条件;
查:select * from 表名;
select * from 表名 where 条件1 and 条件2 or 条件3;
select 字段1,字段2,字段3 from 表名;

多表联查:
select * from 表1 join 表2 on 表1.字段1= 表2.字段2 where 表1.字段1 = 值;

自己要找出多个表之间的关系,不然很乱

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值