sql查询:单表、多表、左连接、外连接、高级查询

sql查询

在这里插入图片描述

一.sql语句

标准SQL包含了4种基本的语句类别:

(1)DDL语句,数据定义语句,主要用来定义数据库,表名,字段,例如create,drop,alter.

(2)DML语句,数据操作语句,用来对数据记录的增删改查,还用来保证数据的一致性。主要有select,delete,insert,update语句。

(3)DCL语句,数据控制语句,用于控制不同数据对象访问级别的语句。定义了数据库、表、表、用户的访问权限和完全级别。常用的语句包括grant、revoke等

(4)TCL语句,事务控制语句,用来确保事务的特性。begin tran(开始事务)commit (提交事务)save tran(保存事务)rollback(撤销事务)end trans(结束事务)

二.创建表

下面的代码创建了几张表,并插入了一些数据,根据这张表来进行具体的sql查询操作。

#创建数据库school并使用
CREATE DATABASE IF NOT EXISTS `school`;
USE `school`;

#创建student表
DROP TABLE IF EXISTS `student`;
CREATE TABLE `student`(
`studentno` INT(4) NOT NULL COMMENT '学号',
`loginpwd` VARCHAR(20) DEFAULT NULL,
`studentname` VARCHAR(20) DEFAULT NULL COMMENT '学生姓名',
`sex` TINYINT(1) DEFAULT NULL COMMENT '性别,0或1',
`gradeid` INT(11) DEFAULT NULL COMMENT '年级编号',
`phone` VARCHAR(50) NOT NULL COMMENT '联系电话,允许为空',
`address` VARCHAR(255) NOT NULL COMMENT '地址,允许为空',
`borndate` DATETIME DEFAULT NULL COMMENT '出生时间',
`email` VARCHAR (50) NOT NULL COMMENT '邮箱账号允许为空',
`identitycard` VARCHAR(18) DEFAULT NULL COMMENT '身份证号',
PRIMARY KEY (`studentno`),
UNIQUE KEY `identitycard`(`identitycard`),
KEY `email` (`email`)
)ENGINE=MYISAM DEFAULT CHARSET=utf8;

#创建grade表
DROP TABLE IF EXISTS `grade`;
CREATE TABLE `grade`(
	`gradeid` INT(11) NOT NULL AUTO_INCREMENT COMMENT '年级编号',
  `gradename` VARCHAR(50) NOT NULL COMMENT '年级名称',
    PRIMARY KEY (`gradeid`)
) ENGINE=INNODB AUTO_INCREMENT = 6 DEFAULT CHARSET = utf8;

#创建subject表
DROP TABLE IF EXISTS `subject`;
CREATE TABLE `subject`(
	`subjectno`INT(11) NOT NULL AUTO_INCREMENT COMMENT '课程编号',
    `subjectname` VARCHAR(50) DEFAULT NULL COMMENT '课程名称',
    `classhour` INT(4) DEFAULT NULL COMMENT '学时',
    `gradeid` INT(4) DEFAULT NULL COMMENT '年级编号',
    PRIMARY KEY (`subjectno`)
)ENGINE = INNODB AUTO_INCREMENT = 19 DEFAULT CHARSET = utf8;

#创建result表
DROP TABLE IF EXISTS `result`;
CREATE TABLE `result`(
	`studentno` INT(4) NOT NULL COMMENT '学号',
    `subjectno` INT(4) NOT NULL COMMENT '课程编号',
    `examdate` DATETIME NOT NULL COMMENT '考试日期',
    `studentresult` INT (4) NOT NULL COMMENT '考试成绩',
    KEY `subjectno` (`subjectno`)
)ENGINE = INNODB DEFAULT CHARSET = utf8;

#subject表插入数据
INSERT INTO `subject`(`subjectno`,`subjectname`,`classhour`,`gradeid`)VALUES
(1,'高等数学-1',110,1),
(2,'高等数学-2',110,2),
(3,&#
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SQL(Structured Query Language)是一种用于管理关系型数据库的语言。它可以用于数据的提取、修改、删除和插入操作,使用户可以通过简单的语句来获取所需的数据。 从入门到实践,首先需要学习SQL的语法和基本概念。SQL语句通常由关键字、表名、字段、条件和函数等组成。了解这些基本要素可以帮助我们构建合适的查询语句。 在实践中,首先需要明确自己的查询目标。通过分析需求,确定需要查询数据表、字段和条件。例如,如果我们想要查询一个员工表中的所有员工姓名和薪水,可以使用SELECT语句来实现: SELECT 员工姓名, 薪水 FROM 员工表; 在查询过程中,可以使用WHERE语句来添加筛选条件,以过滤满足特定条件的数据。例如,我们可以使用以下语句来查询薪水大于5000的员工: SELECT 员工姓名, 薪水 FROM 员工表 WHERE 薪水 > 5000; 此外,SQL还提供了一些聚合函数,如SUM、COUNT、AVG等,用于对数据进行统计和计算。例如,我们可以使用SUM函数来计算员工薪水的总和: SELECT SUM(薪水) as 总薪水 FROM 员工表; 学习SQL查询还需要了解连接查询、排序、分组和子查询高级技巧。通过掌握这些技巧,可以更灵活和高效地查询数据库中的数据。 总之,从入门到实践,学习SQL查询需要掌握SQL语法、基本概念,并进行大量的实践。通过不断的练习和实践,我们可以逐渐提升自己在SQL查询中的技能和经验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值