MySQL查询语句汇总附练习带注释(二)
  bzUvzvVq9oY1 2023年11月02日 72 0

数据库查询语句包含

条件查询

语法:

SELECT */列名 FROM 表名
WHERE 条件
ORDER BY 列名1 ASC/DESC,列名2 ASC/DESC;
-- 条件可以包含关系运算符、逻辑运算符、特殊情况等
-- 是
-- 在几个选项之中
-- between and 在一定范围内

-- 要求查询emp表中员工编号大于等于50的员工编号
SELECT *
FROM 员工表
WHERE 员工编号>=50;

-- 查询员工表中员工编号是50的员工信息
SELECT *
FROM 员工表
WHERE 员工编号=50;

-- 查询员工表中员工编号在50-100之间的员工信息
SELECT *
FROM 员工表
WHERE 员工编号 BETWEEN 50 AND 100;

常见聚合函数

MySQL查询语句汇总附练习带注释(二)_查询语句

-- 查询EMP表中员工工资的最大值
SELECT MAX(SAL)
FROM EMP;

-- EMP表中员工编号的最大值
SELECT MAX(员工编号)
FROM EMP;

-- 查询学生表中学员分数的最小值
SELECT MIN(学员分数)
FROM 学生表;

-- 查询学生表中所有学员分数的平均值
SELECT AVG(学员分数)
FROM 学生表;

-- 查询EMP表中所有员工奖金总和
SELECT SUM(员工奖金)
FROM EMP;

-- 统计EMP表中职位是经理的个数
SELECT COUNT(经理)
FROM EMP;

字符串处理函数

MySQL查询语句汇总附练习带注释(二)_数据类型_02

-- 获取emp表中,员工姓名的长度
SELECT ename,LENGTH(ename)
FORE emp;

-- 查询emp表中,员工的姓名和姓名最后2个字符
-- ABCD EF    6-1
-- ABCDE FR
SELECT 姓名,SUBSTRING(姓名,LENGTH(姓名)-1,2)
FROM EMP;

数值处理函数

MySQL查询语句汇总附练习带注释(二)_查询语句_03

-- 保留小数点后两位
SELECT ROUND(12.123,2);
-- 生成随机数
SELECT RAND();

日期处理函数

MySQL查询语句汇总附练习带注释(二)_数据类型_04

•字符串处理函数

例:查询emp表中,员工的姓名和姓名最后2个字符

方法1:

select ename,substring(ename, length(ename)-1, 2) from emp;

方法2:

select ename,substring(ename, -2, 2) from emp;

查询student表中,姓名中含有唐的,学员的姓名、分数、班级

select sname,score,sclass from student where sname like '%唐%';

查询emp表中,倒数第2个字母是N的,员工的姓名、职位、入职时间

select ename,job,hiredate from emp where ename like '%N_';

查询student表中,分数(score)在70--99分之间的,班级名称(sclass),班级的人数,班级的平均分数,根据班级的平均分数降序排列

select sclass,count(*),avg(score)
from student
where score >= 70 and score <= 99
group by sclass
order by avg(score) desc;

创建数据表时添加列级别主键约束

CREATE TABLE 表名(
      列名1 数据类型(数据范围) PRIMARY KEY,
      列名2 数据类型(数据范围) PRIMARY KEY
);
-- 创建数据表时添加表级别唯一约束,可以多个主键约束
CREATE TABLE 表名(
      列名1 数据类型(数据范围),
      列名2 数据类型(数据范围) ,
      PRIMARY KEY(列名1,列名2)
);

修改表时添加主键约束

ALTER TABLE 表名 ADD PRIMARY KEY(列名1,列名2);

删除主键约束

ALTER TABLE 表名 DROP PRIMARY KEY;

-- 创建数据表时添加列级别主键约束

CREATE TABLE 表名(
      列名1 数据类型(数据范围) PRIMARY KEY,
      列名2 数据类型(数据范围) UNIQUE [KEY],
      列名2 数据类型(数据范围) UNIQUE [KEY]
);
-- 创建数据表时添加表级别唯一约束
CREATE TABLE 表名(
      列名1 数据类型(数据范围),
      列名2 数据类型(数据范围) ,
      UNIQUE KEY(列名1,列名2)
);

修改表时添加唯一约束

ALTER TABLE 表名 ADD UNIQUE KEY(列名1,列名2);

删除唯一约束

ALTER TABLE 表名 DROP INDEX 约束名称;

查看某张表中全部的索引

SHOW KEYS FROM 表名;

默认值约束

CREATE TABLE 表名(
      列名1 数据类型(数据范围) PRIMARY KEY,
      列名2 数据类型(数据范围) UNIQUE [KEY],
      列名2 数据类型(数据范围) DEFAULT 参数值
);

修改表时添加默认值

ALTER TABLE 表名 MODIFY 列名 数据类型 DEFAULT 默认值;

删除默认值

ALTER TABLE 表名 MODIFY 列名 数据类型 DEFAULT NULL;
ALTER TABLE 表名 MODIFY 列名 数据类型;

非空约束

CREATE TABLE 表名(
      列名1 数据类型(数据范围) PRIMARY KEY UNIQUE [KEY],
      列名2 数据类型(数据范围) UNIQUE [KEY],
      列名2 数据类型(数据范围) DEFAULT 参数值,
      列名2 数据类型(数据范围) NOT NULL
);

修改表时添加非空约束

ALTER TABLE 表名 MODIFY 列名 数据类型 NOT NUL

删除非空约束

ALTER TABLE 表名 MODIFY 列名 数据类型;

外键约束

CREATE TABLE 表名1(
      列名1 数据类型(数据范围) PRIMARY KEY,
      列名2 数据类型(数据范围) UNIQUE [KEY],
      列名3 数据类型(数据范围) DEFAULT 参数值,
      列名4 数据类型(数据范围) NOT NULL
);

CREATE TABLE 表名2(
      列名1 数据类型(数据范围) PRIMARY KEY,
      列名2a 数据类型(数据范围) UNIQUE [KEY],
      列名3 数据类型(数据范围) DEFAULT 参数值,
      列名4 数据类型(数据范围) NOT NULL,
      FOREIGN KEY(列名2a) PEFERENCES 表名1(列名2)
);

修改表时添加外键约束

ALTER TABLE 子表 ADD CONSTRAINT 约束名称 FOREIGN KEY(列名) PEFERENCES 主表(列名);

删除外键约束

ALTER TABLE 表名 DROP FOREIGN KEY 约束名称;

插入语句,指定列插入数据

INSERT INTO 表名(列名1,列名2) VALUES(列值1,列值2),(列值1,列值2);
-- 表名中的列名必须和VALUES 中的列值一一对应

全部列插入数据

INSERT INTO 表名 VALUES(列值1,列值2);
-- VALUES 中的列值,必须和表结构中的列名是对应的

修改记录(更新语句)

UPDATE 表名 SET 列名1=该列新值,列名2=该列新值 WHERE 条件;
-- 如果不指定条件WHERE,将更新表中所有记录

删除记录

DELETE FROM 表名 WHERE 条件;
1、查询stu01表中,全部列的数据
SELECT * FROM stu01;

MySQL查询语句汇总附练习带注释(二)_表名_05

2、查询cou01表中,课程编号、课程名称
SELSECT cno,cname FROM cou01;
-- cno课程编号
-- cname课程名称
3、查询sco01表中,学员编号、学员成绩并给每列起别名
SELECT sno,score FROM sco01;
-- SELECT 学员编号 别名,学员成绩 别名 FROM sco01;
-- select sno 编号,score 成绩 from sco01;


4、查询stu01表中,学员编号是2020005的,学员的编号、学员姓名、学员年龄
SELECT sno,sname,age FROM stu01 WHERE sno=2020005;
-- 查询指定数据,没有就为空
5、查询stu01表中,学员姓名是Jones的,学员的编号、学员姓名、学员地址
SELECT sno,sname,address FROM stu01 WHERE sname=’Jones’;
-- 学员姓名是! SNAME=!
6、查询stu01表中,学员姓名含有o的,学员的编号、学员姓名、学员性别
SELECT sno,sname,sex FROM stu01 WHERE sname LIKE ‘%O%’;
-- 包含...LIKE '%...%'
7、查询stu01表中,学员姓名首字母以J开头的,学员编号、学员姓名
SELECT sno,sname FROM stu01 WHERE sname LIKE ‘J%’;
-- 模糊查询
-- 以...开头 LIKE '...%'
-- 以...结尾 LIKE '%...'
8、查询sco01表中,学员成绩不在60~80之间的,学员的编号、学员成绩
select sno,score from sco01 where not score between 60 and 80;
-- 条件 不在60-80之间not...BETWEEN....AND
9、查询stu01表中,学员编号是2020001、2020003、2020009的学员信息
SELECT * FROM stu01 WHERE sno in(2020001、2020003、2020009);
-- in




















【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
bzUvzvVq9oY1
最新推荐 更多