在线 SQL 模拟器SQL Fiddle使用简介
本文可作为“SQL语言与SQL在线实验工具的使用” https://blog.csdn.net/cnds123/article/details/115038700 一文的补充。
有时候,我们想去验证 SQL语句,却缺少数据库环境,那该怎么办呢?
这时候在线 SQL 模拟器就有了用武之地。SQL 模拟器免安装,可以在网页直接运行 SQL 。
SQL Fiddle 支持 MySQL、Oracle、PostgreSQL、SQLite、MS SQL Server等主流数据库,不需要注册即可使用。注意,没有缓存功能,关闭窗口后需要重新建表和插入数据。
打开SQL Fiddle 网址http://sqlfiddle.com/ 后,如下图所示:
左边栏用于构建表结构、初始化数据,右边栏放置要执行的 SQL,点击“Run SQL” 按钮就会执行 SQL,结果将在下边输出。
网页上方菜单栏包含一个“MySQL 5.6”下拉框,改下拉框可以选择数据库类型及版本,当前支持的有MySQL 5.6、Oracle 11g R2、Postgr等免费在线SQL数据库。
按钮“View Sample Fiddle”给出和其右边下拉框选定的数据库类型及版本相关的默认示例。
按钮“Clear” 可以清除下面两个面板的输入内容。
左边栏用于构建表结构、初始化数据,右边栏放置要执行的 查询语句。
参见上图,在左边栏输入:
create table students(
id int unsigned primary key,
name varchar(10) not null,
age int(3)
);
INSERT INTO students (id, name, age) VALUES
(1, '张三', 20),
(2, '李四', 22),
(3, '王五', 21),
(4, '赵六', 23);
单击“Build Schema”按钮,构建表结构、初始化数据,若语句不符合语法则报错。若不报错,则可以右边栏输入查询语句:
select *
from students;
若语句不符合语法则报错。若不报错,就会在下面的窗格显示查询结果。参见上图。
如果想查询符合某个条件的记录,就要用到where子句了,SQL格式为:
select * from <tablename> where 字段名=值;
例如:
select *
from students
where name = '李四';
下面给出较为复杂的SQL语句,供练习用。
创建3张表并向表中添加数据
CREATE table student(
Sno CHAR(9) PRIMARY KEY,
Sname CHAR(20) UNIQUE,
Ssex char(2),
Sage SMALLINT,
Sdept char(20)
);
INSERT into Student values
(201215121,'李勇','男',20,'CS'),
(201215122,'刘晨','女',19,'CS'),
(201215123,'王敏','女',18,'MA'),
(201215125,'张立','男',19,'IS');
CREATE TABLE course(
Cno CHAR(4) PRIMARY KEY,
Cname CHAR(40) NOT NULL,
Cpno CHAR(4) NULL,
Ccredit SMALLINT
);
insert into course VALUES
('1','数据库','5',4),
('2','数学','',2),
('3','信息系统','1',4),
('4','操作系统','6',3),
('5','数据结构','7',4),
('6','数据处理','',2),
('7','Java语言','6',4);
CREATE table SC(
Sno char(9),
Cno char(4),
Grade SMALLINT
);
insert into sc values
(201215121,1,92),
(201215121,2,85),
(201215121,3,88),
(201215122,2,58),
(201215122,3,80);
连接查询
查询每个学生及其选修课的情况
select student.*,sc.*
from Student,sc
where student.Sno=sc.Sno
查询每个学生的学号,姓名,选修的课程名及成绩
select student.Sno,Sname,Cname,Grade
from student,sc,course
where student.Sno=sc.Sno AND
sc.Cno=course.Cno
查询选修2号课程且成绩在80分以上的所有学生的学号和姓名
select student.Sno,Sname
from Student,sc
where student.Sno=sc.Sno and
sc.Cno='2' and
sc.Grade>=80
常用SQL语句可参见https://blog.csdn.net/promsing/article/details/112793260