于贵洋的博客

BI、数据分析


  • 首页

  • 分类

  • 标签

  • 归档

  • 站点地图

  • 公益404

  • 关于

  • 搜索

SQL笔试题-MySQL练习题

发表于 2017-09-09 | 分类于 笔试题

SQL笔试题

下面的SQL基于MySQL

下面整理些MySQL学习过程中,基本的练习题,题目来源于网上及个人总结。

测试数据

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
create table t_student(
s_id int comment '学生ID',
s_name varchar(20) comment '学生姓名',
s_gender int comment '学生性别 0-男,1-女',
s_birthday date comment '出生日期',
s_hobby varchar(100) comment '爱好',
c_id int comment '班级ID'
) comment '学生表';
create table t_class(
c_id int comment '班级ID',
c_name varchar(20) comment '班级名称'
) comment '班级表';
create table t_score(
sc_id int comment '成绩ID',
s_id int comment '学生ID',
course_name varchar(20) comment '课程名称',
score numeric(10,0) comment '成绩'
) comment '成绩表';
insert into t_class values(901,'一班');
insert into t_class values(902,'二班');
insert into t_class values(903,'三班');
insert into t_class values(905,'五班');
insert into t_student values(101,'路飞',0,'1990-01-26','吃肉,睡觉',901);
insert into t_student values(102,'娜美',1,'1995-10-05','足球,篮球',901);
insert into t_student values(103,'乔巴',0,'1992-08-11','唱歌,吃肉',901);
insert into t_student values(104,'鸣人',0,'1991-03-29','拉面,忍术',901);
insert into t_student values(105,'卡卡西',1,'1989-05-10','看书,吃肉',902);
insert into t_student values(106,'乌索普',1,'1988-02-02','跳舞,篮球',902);
insert into t_student values(107,'乔峰',0,'1990-12-12','跑步,羽毛球',902);
insert into t_student values(108,'段誉',0,'1990-12-13','吃肉,加班',903);
insert into t_student values(109,'虚竹',1,'1991-01-22','看电影,旅行',903);
insert into t_student values(110,'杨过',0,'2000-03-04','旅行',903);
insert into t_student values(111,'令狐冲',0,'1997-03-04','喝酒',904);
insert into t_score values(1,101,'数学',39);
insert into t_score values(2,102,'数学',20);
insert into t_score values(3,103,'数学',54);
insert into t_score values(4,104,'数学',38);
insert into t_score values(5,105,'数学',70);
insert into t_score values(6,106,'数学',15);
insert into t_score values(7,107,'数学',75);
insert into t_score values(8,108,'数学',84);
insert into t_score values(9,109,'数学',87);
insert into t_score values(10,110,'数学',67);
insert into t_score values(11,101,'语文',73);
insert into t_score values(12,102,'语文',71);
insert into t_score values(13,103,'语文',82);
insert into t_score values(14,104,'语文',83);
insert into t_score values(15,105,'语文',36);
insert into t_score values(16,106,'语文',87);
insert into t_score values(17,107,'语文',74);
insert into t_score values(18,108,'语文',19);
insert into t_score values(19,109,'语文',29);
insert into t_score values(20,110,'语文',26);
insert into t_score values(21,101,'英语',55);
insert into t_score values(22,102,'英语',24);
insert into t_score values(23,103,'英语',38);
insert into t_score values(24,104,'英语',82);
insert into t_score values(25,105,'英语',12);
insert into t_score values(26,106,'英语',15);
insert into t_score values(27,107,'英语',50);
insert into t_score values(28,108,'英语',68);
insert into t_score values(29,109,'英语',77);
insert into t_score values(30,110,'英语',19);
阅读全文 »

MySQL-关联查询

发表于 2017-09-09 | 分类于 MySQL

MySQL
关联查询

前面,我们介绍的都是单表查询(就是只从一张表中获取数据),而实际应用的时候,我们都会同时查询多张表,这里,我们就介绍下,多表关联查询的使用。

SQL join 用于根据两个或多个表中的列之间的关系,从这些表中查询数据

关联查询.png

前置知识

主键(Primary Key):可以唯一确定一条记录的字段,比如学生表中的学生ID,生活中我们的身份证号
外键(Foreign Key):指向另一张表的主键,比如学生表中的班级ID,班级ID是班级表中的主键,但在学生表中是外键

主键和外键可以在建表的时候指定,他可以在数据库层面,控制你的数据的完整性、一致性。

阅读全文 »

MySQL-中文排序

发表于 2017-09-09 | 分类于 MySQL

MySQL
中文排序

测试数据参考:http://yuguiyang.github.io/2017/09/09/mysql-handbook-01/

以前还真没有关注这个中文排序的问题,这里记录下。

一张学生表

1
select *from t_student;

学生表

我们根据s_name来排序

1
select *from t_student order by s_name;

根据s_name排序

这里的中文排序,是不对的,应该是由于字符集的问题,一般情况下,数据库中的编码都是使用UTF-8的,所以,对于中文会有问题。

从网上找到2中解决办法

阅读全文 »

MySQL-基本语法介绍

发表于 2017-09-09 | 分类于 MySQL

MySQL
基本语法介绍

1. 什么是SQL

SQL(Structured Query Language)结构化查询语言,通过SQL,我们就可以查询数据库中的数据,而数据再数据库中又是以表的形式保存的,所以SQL查询,主要就是对表进行查询。

SQL的语法就和学习英语的语法、汉语拼音一样,满足给定的套路,去使用就可以了。

当我们拿到了数据库的连接信息,连接到一个数据库上,我们就可以开始写SQL了。

2. Navicat的使用

MySQL的客户端有很多,通常使用的,可能有Navicat,还有MySQL自带的workbench。
Navicat是收费产品,但在网上可以找到XX版,workbench是免费的。

这里以Navicat为例,简单介绍下。
菜单-新建连接

新建连接
在这里,输入数据库地址、用户名、密码等等就行了。

这一个一个圆柱形的,就是一个数据库实例,下面那些电子表格图标的就是表,数据就存储在表中。

数据库及表

阅读全文 »

MySQL-序(怎样学习MySQL)

发表于 2017-09-09 | 分类于 MySQL

MySQL
怎样学习MySQL

作为一名BI开发工程师,SQL是必须要掌握的一门技能。
数据分析师请参考这篇《数据分析师是否要掌握SQL?》

SQL是干嘛的呢?

大街上随便拉个人过来,可能都听说过“大数据”,不管大数据、小数据,他这个数据到底在哪儿呢?其中一种方式,就是存储在关系型数据库中(其他的还有什么非关系型数据库、HDFS等等),就像我们把货物都放在仓库里一样,如果我们想要查看数据库中的数据,就用到了SQL。

SQL也是一种编程语言,偏底层,所以学起来会枯燥些,不像Tableau那样可视化效果好,可以托拉拽。只要掌握了SQL的基本语法,他就像数学公式一样,直接去套用就行了。
SQL的知识点也非常多,我们不需要都记住,要学会查文档、用Google,而且不同的数据库,他的语法可能不太一样,很容易记混。
开发人员平时说的SQL脚本,就是一段或者多段SQL或者存储过程。

阅读全文 »
1…678…23
于贵洋

于贵洋

111 日志
17 分类
30 标签
RSS
GitHub
友情链接
  • 很久之前的CSDN博客
0%
© 2017 于贵洋
由 Hexo 强力驱动
|
主题 — NexT.Pisces v5.1.3
Hosted by GitHub Pages
本站访客数 人次 本站总访问量 次