任务一:向表中写入数据
# 创建数据库
CREATE DATABASE imc_db;
# 使用imc_db库
use imc_db;
# 创建imc_class
CREATE TABLE `imc_class` (
`class_id` smallint(5) unsigned NOT NULL AUTO_INCREMENT COMMENT ‘课程分类ID‘,
`class_name` varchar(10) NOT NULL DEFAULT ‘‘ COMMENT ‘分类名称‘,
`add_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT ‘填加时间‘,
PRIMARY KEY (`class_id`)
) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8 COMMENT=‘课程分类‘;
# AUTO_INCREMENT=14表示从第14条记录开始插入
# 插入记录
INSERT INTO imc_class(class_name) VALUES (‘MYSQL‘),(‘Redis‘),(‘MongoDB‘),(‘Oracle‘);
# 创建唯一键
create UNIQUE INDEX uqx_classname on imc_class(class_name);
继续插入class_name为mysql的数据
由于唯一键约束导致插入失败,但可以找一种讨巧的方案,即删除之前旧的数据插入新的数据。
# 继续插入class_name为mysql的数据
INSERT INTO imc_class(class_name) VALUES(‘MYSQL‘)
ON DUPLICATE KEY UPDATE
add_time = CURRENT_TIME
受影响的行数为2行,即先删除旧数据,再插入新数据,新数据的创建时间已发生变化。
任务二:查询表中的数据
查询出课程表中课程标题含有MySQL的课程
select * from imc_class where class_name like ‘%MySQL%‘;
比较运算符 | 说明 | |
---|---|---|
= > >= <= <> != | <>和!=都表示不等于 | |
between min and max | 列的值大于等于最小值,小于等于最大值 | |
is null、is not null | 判断列的值是否为null | |
in、not in | 判断列的值是否在指定的范围内 | |
and,&& | and运算符两百ode表达式都为真时,返回的结果才为真 | |
or,|| | or运算符两边的表达式有一条为真,返回的结果就是真 | |
XOR | XOR运算符两边的表达式一真一假时返回真,两真两假时返回假<异或> |
任何运算符和NULL值运算结果都为NULL
聚合函数 | 说明 |
---|---|
count(*)/count(col) | 计算符合条件的数据行数 |
Sum(col_name) | 计算表中符合条件的数值列的合计数 |
avg(col_name) | 计算表中符合条件的数值列的平均数 |
max(col_name) | 计算表中符合条件的任意列中数据的最大值 |
min(col_name) | 计算表中符合条件的任意列中数据的最小值 |
任务三:按条件删除表中的数据
修改表中符合条件的数据
# 向已创建的表中添加某一列信息
alter table imc_course add is_recommend tinyint default 0 comment ‘是否推荐,0不推荐,1推荐‘
# 重新查看建表语句
show create table imc_course;
# 随机推荐10门课程 Rand()随机函数 + limit
select course_id from imc_course order by Rand() limit 10;
原文:https://www.cnblogs.com/shine-rainbow/p/13167736.html