mysql复杂查询语句用例,数据库SQL语句操作用例

news/2024/7/4 1:10:39

MySQL数据库,SQL语句操作。

1 创建数据库

create database school;

USE school;

创建建表及插入:

CREATE TABLE students

(

s_no VARCHAR(20) ,

s_name VARCHAR(20),

s_sex CHAR(2),

s_birth DATETIME,

s_address VARCHAR(30),

s_account decimal(9,2),

s_password VARCHAR(20)

);

CREATE TABLE courses

(

c_no CHAR(10),

c_name VARCHAR(30),

c_date DATETIME,

c_credit INT,

c_information VARCHAR(50)

);

CREATE TABLE enrollment

(

s_no VARCHAR(20),

c_no CHAR(10),

e_score INT,

e_date DATETIME,

e_register_state CHAR(1),

e_check_state CHAR(1),

e_test_state CHAR(1)

);

INSERT INTO students VALUES('200920001', '张三', '女', '1982-03-24', '北京市', 8200.0, '200920001');

INSERT INTO students VALUES('200920002', '李四', '男', '1976-07-23', '天津市', 3500.0, '200920002');

INSERT INTO students VALUES('200920003', '王五', '男', '1976-10-21', '天津市', 4500.0, '200920003');

INSERT INTO students VALUES('200920004', '赵六', '女', '1974-08-26', '长春市', 4000.0, '200920004');

INSERT INTO students VALUES('200920005', '钱七', '男', '1975-07-23', '天津市', 4300.0, '200920005');

INSERT INTO students VALUES('200920006', '吴八', '男', '1972-12-14', '天津市', 5500.0, '200920006');

INSERT INTO courses VALUES('22010401', '高等数学', '2009-03-01', 4, '基础课');

INSERT INTO courses VALUES('22010402', '高等代数', '2009-03-01', 4, '基础课');

INSERT INTO courses VALUES('22010403', '大学物理', '2009-03-01', 3, '基础课');

INSERT INTO courses VALUES('22010404', '计算机基础', '2009-03-01', 3, '基础课');

INSERT INTO courses VALUES('22010405', '程序设计', '2009-03-01', 2, '专业课');

INSERT INTO courses VALUES('22010406', '操作系统', '2009-03-01', 2, '专业课');

INSERT INTO courses VALUES('22010407', '数据库应用', '2009-03-01', 2, '专业课');

INSERT INTO courses VALUES('22010408', '数据结构', '2009-03-01', 3, '专业课');

INSERT INTO courses VALUES('22010409', '计算机网络', '2009-03-01', 2, '专业课');

INSERT INTO courses VALUES('22010410', '人工智能', '2009-03-01', 2, '专业课');

INSERT INTO enrollment VALUES('200920001', '22010409', 88, '2009-3-12', '1', '1', '1');

INSERT INTO enrollment VALUES('200920001', '22010410', 93, '2009-3-10', '1', '1', '1');

INSERT INTO enrollment VALUES('200920003', '22010407', 0, '2009-3-10', '0', '0', '0');

INSERT INTO enrollment VALUES('200920003', '22010409', 79, '2009-3-12', '1', '1', '1');

INSERT INTO enrollment VALUES('200920003', '22010410', 74, '2009-3-10', '1', '1', '1');

INSERT INTO enrollment VALUES('200920002', '22010409', 0, '2009-3-9', '0', '0', '0');

INSERT INTO enrollment VALUES('200920002', '22010407', 91, '2009-3-9', '1', '1', '1');

INSERT INTO enrollment VALUES('200920002', '22010410', 45, '2009-3-9', '1', '1', '1');

INSERT INTO enrollment VALUES('200920004', '22010407', 0, '2009-3-10', '1', '0', '0');

INSERT INTO enrollment VALUES('200920006', '22010406', 0, '2009-3-12', '1', '1', '0');

删除enrollment表中'e_check_state'字段下的信息(将该表中所有记录的e_check_state字段置为空值)。

UPDATE enrollment SET e_check_state=null

将"计算机网络"的课程信息改为"专业基础课"。

UPDATE courses SET c_name='专业基础课' where c_name='计算机网络'

4.删除“王五”同学的记录。

DELETE FROM students WHERE s_name='王五'

5 MySql操作:

新增一列:

Use school

Alter table students

Add xxx varchar( )

修改原有的:

Use school

Alter table students

Alter column xxx varchar(新值)

删除原有的:

Use school

Alter table students

Drop column xxx (删除数据表的列)

或者

Use school

Delete from students

Where xx=xxx(删除数据表的行,where 是符合条件的)

修改姓名:

Use school

Update students

Set name=xx

Where name=xx

将 sex(性别)为‘男’且 address(家庭地址)为‘天津市’的学生的 account(帐

户)增加 20%:

USE school

UPDATE students

SET account=account*(1+0.20)

WHERE sex='男'

AND address='天津市

查看students 表的数据信息

Use school

Selectfrom students( 号返回 所有字段的信息)

查询学生的姓名

Select name

From students

查询全体学生的姓名、出生年份和所有系,要求用小写字母表示所有系名

SELECT name,'Year of Birth: ',2007-Sage,

LOWER (sdept)

FROM Student;

返回唯一的不重复的:

Select distinct sno from xx

查询所有年龄在20岁以下的学生姓名及其年龄。

SELECT Sname,Sage

FROM Student

WHERE Sage < 20

查询年龄在20~23岁(包括20岁和23岁)之间的学生的姓名、系别和年龄。

SELECT Sname,Sdept,Sage

FROM Student

WHERE Sage BETWEEN 20 AND 23【不在就是not between】

或者写为WHERE Sage>=20 AND Sage<=23;

查询所有姓刘学生的姓名、学号和性别。

SELECT Sname,Sno,Ssex

FROM Student

WHERE Sname LIKE '刘%'

查询学号为200615121的学生的详细情况。

SELECT *

FROM Student

WHERE Sno LIKE ‘200615121';(修改为 WHERE Sno = ‘200615121'; 也可以,like 可以与通配符 % 组合)

查询名字中第2个字为“阳”字的学生的姓名和学号。

SELECT Sname,Sno

FROM Student

WHERE Sname LIKE '阳%'【%:代表任意长度(长度可以为0)的字符串;:代表任意单个字符】

查询课程名以‘DB_’开头的课程的课程号、课程名和学分。

SELECT Cno,cname,Ccredit

FROM Course

WHERE Cname LIKE 'DB_%'

查询名字中第二字为“大”或“小”的学生的姓名和学号。

select sname,sno from student

where sname like ‘_[大小]%’

查询学号中最后一位不是2、3、5的学生情况。

Select * from student where sno like ‘%[^235]’

select * from student where rtrim(sno) like '%[^235]'

(rtrim(sno)的作用是去掉空格特殊字符)

【 [ ]:匹配[ ]中的任意一个字符。

[^]:不匹配[ ]中的任意一个字符。】

查询计算机系年龄在20岁以下的学生姓名。

SELECT Sname

FROM Student

WHERE Sdept= 'CS' AND Sage<20;

查询选修了3号课程的学生的学号及其成绩,查询结果按分数降序排列。

SELECT Sno,Grade

FROM SC

WHERE Cno= ' 3 '

ORDER BY Grade DESC

在全体学生的课程成绩情况中,查询成绩最高的三个选课记录。

select top 3 * from sc order by grade desc

查询全体学生情况,查询结果按所在系(sdept)的系号升序排列,同一系中的学生按年龄降序排列。

(select * from 学生表 order by 系号asc ,年龄 desc )

查询学生总人数。

SELECT COUNT(*)

FROM Student;

查询选修了课程的学生人数。

SELECT COUNT(DISTINCT Sno)

FROM SC;

计算选修1号课程学生的平均成绩。

SELECT AVG(Grade)

FROM SC

WHERE Cno= ' 1 '

查询选修1号课程学生的最高分数。

SELECT MAX(Grade)

FROM SC

WHER Cno= ' 1 '

查询学生200615122选修课程的总成绩。

SELECT SUM(Grade)

FROM SC

WHER Sno=‘200615122’

求每个课程的选修学生人数,并显示相应的课程号。

SELECT Cno,COUNT(Sno)

FROM SC

GROUP BY Cno;

求每门课程中得优(成绩在90分以上)的学生人数,并显示其相应的课程号。

SELECT Cno,COUNT(Sno)

FROM SC

WHERE Grade>=90

GROUP BY Cno;

查询选修了3门以上课程的学生学号。

SELECT Sno

FROM SC

GROUP BY Sno

HAVING COUNT(*) >3;

查询有3门以上课程在90分以上的学生的学号及90分以上的课程数。

SELECT Sno, COUNT()

FROM SC

WHERE Grade>=90

GROUP BY Sno

HAVING COUNT()>=3

查询每个学生及其选修课程的情况。

SELECT Student.,SC.

FROM Student,SC

WHERE Student.Sno=SC.Sno;(两个表联合查询,条件是Student表的Sno 字段 与 SC表的字段Sno 相等)

)

【自然连接】SELECT student.sno, sname, ssex, sage, sdept, cno, grade

FROM Student,SC

WHERE Student.sno=SC.sno;

列出所有学生的信息及其选修课程的信息

SELECT student.sno,sname,ssex,sage,sdept,cno,grade

FROM student LEFT OUTER JOIN sc ON student.sno= sc.sno;

(连接的记录数与student表的记录数同 ,不符合条件student.sno= sc.sno的为null值 )

查询其他系中比计算机系某一学生年龄小的学生姓名和年龄

SELECT Sname,Sage

FROM Student

WHERE Sage < ANY (SELECT Sage

FROM Student

WHERE Sdept= ' CS ')

查询其他系中比计算机系所有学生年龄都小的学生姓名及年龄。

SELECT Sname,Sage

FROM Student

WHERE Sage < ALL

(SELECT Sage

FROM Student

WHERE Sdept= ' CS ')

AND Sdept <> ' CS ’;

查询所有选修了1号课程的学生姓名。

SELECT Sname

FROM Student

WHERE EXISTS

(SELECT *

FROM SC

WHERE Sno=Student.Sno AND Cno= ‘ 1 ’);

查询选修了课程的学生姓名

SELECT Sname

FROM Student,SC

WHERE Student.Sno=SC.Sno;


http://www.niftyadmin.cn/n/2851435.html

相关文章

axureux中后台管理信息系统通用原型_实施方法论:集团型企业人力资源管理信息系统建设和实施的六个原则...

人力资源管理信息系统(HRMS)是支撑集团型企业人力资源管理各部门和各级单位业务应用和管理的统一信息化平台&#xff0c;是提升人力资源管理水平、质量和效益的工具&#xff0c;也是服务员工、提高员工满意度的利器。人力资源管理信息系统系统建设是一个复杂的系统性工程&#…

Centos 更新 排除kernel 更新方法

vim /etc/yum.conf ---- [main]后添加 ---- excludekernel* excludecentos-release*或者yum update --excludekernel* --excludecentos-release* xxx 尤其是在生产环境中&#xff0c;更新内核可能会造成不兼容&#xff0c;破坏系统业务的正常运作&#xff01;

mysql是建立在什么模型基础上的数据库,Mysql数据库基础了解及基本操作

1、数据库&#xff1a;database&#xff0c;存数据的仓库&#xff1b;高效的存储和处理数据的介质(介质主要有磁盘和内存)。2、数据库分类&#xff1a;<1>基于介质的不同进行分类&#xff1a;(1)关系型数据库(SQL)&#xff1a; 大型&#xff1a;Oracle&#xff0c;DB2&am…

python数据拟合怎么做的_将数据拟合到分布?

这是个复杂的问题&#xff0c;没有完美的答案&#xff0c;对于给定的数据&#xff0c;有两种设置概率分布函数参数的方法&#xff1a;在我的经验中&#xff0c;最近几年最大似然是首选的&#xff0c;尽管这可能不是每个领域的情况。这是如何估算R中参数的具体示例。考虑从高斯分…

redhat 8 更换yum源 使用centos国内软件源

redhat和centos什么关系&#xff0c;这里就不解释了&#xff0c;直接说如何让redhat也能使用yum或者dnf来安装软件。 #阿里云的源sudo wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-8.reposudo dnf update#清华大学的源 文件内容如下#…

tar -zcvf命令_Java开发人员必须掌握的Linux命令(一)

做一个积极的人编码、改bug、提升自己我有一个乐园&#xff0c;面向编程&#xff0c;春暖花开&#xff01;子曰&#xff1a;“工欲善其事&#xff0c;必先利其器。“1、登录服务器SSH命令简单说&#xff0c;SSH是一种网络协议&#xff0c;用于计算机之间的加密登录。如果一个用…

写一个HTML页面,实现以下功能,左键点击页面时显示“你好”,右键点击时显示“禁止右键”。

<script language"javascript">function click() {if (event.button2) { alert(禁止右键&#xff01;) } if (event.button1) { alert(你好) }}document.οnmοusedοwnclick</script>

用户关系表 存储_列式存储-Apache HBase

简介HBase是一个基于HDFS的、分布式的、面向列(列族)的非关系型数据库&#xff08;NOSQL&#xff09;。HBase的特点1.海量数据存储&#xff0c;HBase表中的数据能够容纳上百亿行*上百万列。2.面向列的存储&#xff0c;数据在表中是按照列进行存储的&#xff0c;能够动态的增加列…