首页 > 数据库 >数据库的增删改查

数据库的增删改查

时间:2023-05-24 13:32:14浏览次数:60  
标签:goods name -- 数据库 改查 查询 student 增删 SELECT

1. 数据库 C[create]R[read]U[update]D[delete]语句 750

数据库的增删改查_SELECT

1.1 Insert 语句  750

 使用 INSERT 语句向表中插入数据。

1.1.1 基本语法

数据库的增删改查_字段_02

1.1.2 快速入门  750

快速入门案例:

1.创建一张商品表goods (id int ,goods_name varchar(10), price double );

2.添加2条记录

代码在E:\java学习\初级\course153\db_

insert

#练习 insert 语句   750
-- 创建一张商品表 goods (id int , goods_name varchar(10), price double );
-- 添加 2 条记录

CREATE TABLE goods(
	id INT,
	goods_name VARCHAR(10),
	price DOUBLE);
# 添加数据
INSERT INTO goods(id,goods_name,price)
	VALUES(10,'华为手机',2000)
INSERT INTO goods(id,goods_name,price)
	VALUES(20,'苹果手机',3000)
SELECT * FROM goods

3.1.3 insert细节说明  751

1.插入的数据应与字段的数据类型相同。比如把'abc'添加到int类型会错误

2.数据的长度应在列的规定范围内,例如:不能将一个长度为80的字符串加入到长度为40的列中。

3.在values中列出的数据位置必须与被加入的列的排列位置相对应。

4.字符和日期型数据应包含在单引号中。

5.列可以插入空值[前提是该字段允许为空],insert into table value(null)

6. insert into tab name (列名..) values 0,0,0形式添加多条记录

7.如果是给表中的所有字段添加数据,可以不写前面的字段名称

8.默认值的使用,当不给某个字段值时,如果有默认值就会添加,否则报错

代码在E:\java学习\初级\course153\db_

insertdetail

#insert使用细节  751
-- 1.插入的数据应与字段的数据类型相同。比如把'abc'添加到int类型会错误
INSERT INTO `goods`(id,goods_name,price)
	VALUES('abc','小米手机',2000)#这里的abc是字符串类型,不能写入id的int类型

-- 2.数据的长度应在列的规定范围内,例如:不能将一个长度为80的字符串加入到长度为40的列中。
INSERT INTO `goods`(id,goods_name,price)
	VALUES(40,'vivo手机vivo手机vivo手机vivo手机',2000)#错误,因为goods_name长度是10,很明显超出了规定长度

-- 3.在values中列出的数据位置必须与被加入的列的排列位置相对应。
INSERT INTO `goods`(id,goods_name,price)
	VALUES('小米手机',40,2000)#错误,位置不对应

-- 4.字符和日期型数据应包含在单引号中。
INSERT INTO `goods`(id,goods_name,price)
	VALUES(40,vivo手机,2000)#错误,字符类型必须用单引号引起来,应该 'vivo手机'

-- 5.列可以插入空值[前提是该字段允许为空],insert into table value(null)
INSERT INTO `goods`(id,goods_name,price)
	VALUES(40,'vivo手机',NULL)

-- 6. insert into tab name (列名..) values 0,0,0形式添加多条记录
INSERT INTO `goods`(id,goods_name,price)
	VALUES(50,'三星手机',2300),(60,'oppo手机',1800)

-- 7.如果是给表中的所有字段添加数据,可以不写前面的字段名称
INSERT INTO `goods`
	VALUES(70,'IBM手机',5000)

-- 8.默认值的使用,当不给某个字段值时,如果有默认值就会添加,否则报错
-- 如果某个列 没有指定 not null ,那么当添加数据时,没有给定值,则会默认给 null
 
 INSERT INTO `goods`(id,goods_name)
	VALUES(50,'格力手机')
SELECT * FROM goods

-- 如果我们希望指定某个列的默认值,可以在创建表时指定
CREATE TABLE goods2(
	id INT,
	goods_name VARCHAR(10),
	price DOUBLE NOT NULL DEFAULT 100);
	
INSERT INTO `goods2`(id,goods_name)
	VALUES(70,'ab手机')
INSERT INTO `goods2`(id,goods_name,price)
	VALUES(80,'ab手机',2000)

SELECT * FROM goods2

4. update语句  752

4.1 使用 update 语句修改表中数据

数据库的增删改查_CRUD_03

4.2 演示update基本使用

要求:在上面创建的employee表中修改表中的纪录

1.将所有员工薪水修改为5000元。

2.将姓名为小妖怪的员工薪水修改为3000元。

3.将老妖怪的薪水在原有基础上增加1000元。

4.3 update使用细节

1. UPDATE语法可以用新值更新原有表行中的各列。

2. SET子句指示要修改哪些列和要给予哪些值。

3. WHERE子句指定应更新哪些行。 如没有WHERE子句,则更新所有的行(记录),因此老师提醒一定小心。

4.如果需要修改多个字段,可以通过set字段1 =值1,字段2=值....

4.2 和4.3 代码在E:\java学习\初级\course154\db_

update
#演示update基本使用  752
-- 要求:在上面创建的employee表中修改表中的纪录
-- 1.将所有员工薪水修改为5000元。

UPDATE employee SET salary = 5000 #[如果没有带 where 条件,会修改所有的记录,因此要小心]

-- 2.将姓名为小妖怪的员工薪水修改为3000元。
UPDATE employee
	SET salary = 3000
	WHERE user_name = '小妖怪'#这个带了where条件,因此只会修改小妖怪的薪水

-- 3.将老妖怪的薪水在原有基础上增加1000元。
INSERT INTO employee
	VALUES(200,'老妖怪','1990-11-11',
	'2000-11-10 11:11:11','捶背的',5000,'给大王捶背的','d:\\x.jpg')
UPDATE employee
	SET salary = salary+1000
	WHERE user_name = '老妖怪'

SELECT * FROM employee;

-- 4.如果需要修改多个字段,可以通过set字段1 =值1,字段2=值....
UPDATE employee
	SET salary = salary+1000,job = '出主意的'
	WHERE user_name = '老妖怪'
	
SELECT * FROM employee;

5. delete 语句  753

5.1 使用 delete 语句删除表中数据

数据库的增删改查_删除表_04

5.2 快速入门案例(使用employee测试)

删除表中名称为’老妖怪'的记录

删除表中所有记录。

5.3 delete使用细节

1. 如果不使用where子句,将删除表中所有数据。

2. Delete语句不能删除某一 列的值(可使用update设为null或者")

3. 使用delete语句仅删除记录,不删除表本身。如要删除表,使用drop table语句。drop table表名:

2.2和2..3代码在E:\java学习\初级\course154\db_

delete
#delete 语句  753
-- 删除表中名称为’老妖怪'的记录
DELETE FROM employee
	WHERE user_name = '老妖怪'
-- 删除表中所有记录。
INSERT INTO employee
	VALUES(200,'老妖怪','1990-11-11',
	'2000-11-10 11:11:11','捶背的',5000,'给大王捶背的','d:\\x.jpg')
DELETE FROM employee
	
SELECT * FROM employee

-- Delete 语句不能删除某一列的值(可使用 update 设为 null 或者 '')
UPDATE employee 
	SET job = ''
	WHERE user_name = '老妖怪'
SELECT * FROM employee

#删除这个表
DROP TABLE employee

6. select 语句   754

6.1 基本语法

数据库的增删改查_SELECT_05

6.2 注意事项 (创建测试表学生表 )

Select指定查询哪些列的数据。

column指定列名。

*号代表查询所有列。

From指定查询哪张表。

DISTINCT可选,指显示结果时,是否去掉重复数据

6.3 练习  754

1.查询表中所有学生的信息。

2.查询表中所有学生的姓名和对应的英语成绩。

3.过滤表中重复数据distinct

4.要查询的记录,每个字段都相同,才会去重

代码在E:\java学习\初级\course154\db_

select

#演示select语句   754
CREATE TABLE student(
	id INT NOT NULL DEFAULT 1,
	NAME VARCHAR(20) NOT NULL DEFAULT '',
	chinese FLOAT NOT NULL DEFAULT 0.0,
	english FLOAT NOT NULL DEFAULT 0.0,
	math FLOAT NOT NULL DEFAULT 0.0
);

INSERT INTO student(id,NAME,chinese,english,math) VALUES(1,'韩顺平',89,78,90);
INSERT INTO student(id,NAME,chinese,english,math) VALUES(2,'张飞',67,98,56);
INSERT INTO student(id,NAME,chinese,english,math) VALUES(3,'宋江',87,78,77);
INSERT INTO student(id,NAME,chinese,english,math) VALUES(4,'关羽',88,98,90);
INSERT INTO student(id,NAME,chinese,english,math) VALUES(5,'赵云',82,84,67);
INSERT INTO student(id,NAME,chinese,english,math) VALUES(6,'欧阳锋',55,85,45);
INSERT INTO student(id,NAME,chinese,english,math) VALUES(7,'黄蓉',75,65,30);

SELECT * FROM student

-- 1.查询表中所有学生的信息。
SELECT * FROM student
-- 2.查询表中所有学生的姓名和对应的英语成绩。
SELECT `name`,`english` FROM student
-- 3.过滤表中重复数据distinct
SELECT DISTINCT * FROM student
SELECT english FROM student#查询所有的英语成绩
SELECT DISTINCT english FROM student#查询所有的英语成绩,去掉重复项
-- 4.要查询的记录,每个字段都相同,才会去重
SELECT DISTINCT `name`, english FROM student#这个就不会去重,因为名字不相同

6.4 使用表达式对查询的列进行运算  755

数据库的增删改查_数据_06

6.5 在 select 语句中可使用 as 语句

数据库的增删改查_字段_07

6.6 练习 select02

1.统计每个学生的总分

2.在所有学生总分加10分的情况

3.使用别名表示学生分数。

代码在E:\java学习\初级\course154\db_

select02

#select的使用 755
-- 1.统计每个学生的总分
SELECT `name`,(chinese+english+math) FROM student;
-- 2.在所有学生总分加10分的情况
SELECT `name`,(chinese+english+math+10) FROM student;
-- 3.使用别名表示学生分数。
#例如给(chinese+english+math+10)指定别名为total_score
SELECT `name`,(chinese+english+math+10) AS total_score FROM student;
#也可以给name指定别名
SELECT `name` AS '名字',(chinese+english+math+10) AS total_score 
	FROM student;

6.7 在 where 子句中经常使用的运算符  756

数据库的增删改查_SELECT_08

6.8 使用 where 子句,进行过滤查询 select03   756

1.查询姓名为赵云的学生成绩

2.查询英语成绩大于90分的同学

3.查询总分大于200分的所有同学

使用where子句,练习

查询math大于60并且(and) id大于4的学生成绩

查询英语成绩大于语文成绩的同学

查询总分大于200分并且数学成绩小于语文成绩的姓赵的学生.

1.查询英语分数在80 - 90之间的同学。

2.查询数学分数为89,90,91的同学。

3. 查询所有姓韩的学生成绩。

4. 查询数学分> 80,语文分> 80的同学。

1.查询语文分数在70 - 80之间的同学。

2.查询总分为221,242,276的同学。

3.查询所有姓张或者姓宋的学生成绩。

4.查询数学比语文多2分的同学。

代码在E:\java学习\初级\course154\db_

select03

-- 使用 where 子句,进行过滤查询   756
-- 1.查询姓名为赵云的学生成绩
SELECT * FROM student
	WHERE `name` = '赵云'
-- 2.查询英语成绩大于90分的同学
SELECT * FROM student
	WHERE english>90
-- 3.查询总分大于200分的所有同学
SELECT * FROM student
	WHERE (chinese+english+math)>200
	
-- 使用where子句,练习   756
-- 查询math大于60并且(and) id大于4的学生成绩
SELECT * FROM student
	WHERE math>60 AND id>4
-- 查询英语成绩大于语文成绩的同学
SELECT *FROM student
	WHERE english>chinese
-- 查询总分大于200分并且数学成绩小于语文成绩的姓赵的学生.
SELECT * FROM student
	WHERE (chinese+english+math)>200 AND 
	math
	
-- 1.查询英语分数在80 - 90之间的同学。  756
SELECT *FROM student
	WHERE english >=80 AND english <=90;
#或者这样写 between……and是闭区间
SELECT *FROM student
	WHERE english BETWEEN 80 AND 90;
-- 2.查询数学分数为89,90,91的同学。
SELECT * FROM student
	WHERE math=89 OR math=90 OR math=91
SELECT * FROM student
	WHERE math IN(89,90,91)
-- 3. 查询所有姓韩的学生成绩。
SELECT * FROM student
	WHERE `name` LIKE '韩%'
-- 4. 查询数学分> 80,语文分> 80的同学。
SELECT * FROM student
	WHERE math>80 AND chinese >80


-- 1.查询语文分数在70 - 80之间的同学。
SELECT *FROM student
	WHERE chinese BETWEEN 70 AND 80;
-- 2.查询总分为221,242,276的同学。
SELECT * FROM student
	WHERE (chinese+english+math) IN (221,242,276)
-- 3.查询所有姓张或者姓宋的学生成绩。
SELECT * FROM student
	WHERE `name` LIKE '张%' OR `name` LIKE '宋%'
-- 4.查询数学比语文多2分的同学。
SELECT * FROM student
	WHERE (math-chinese) = 2

6.9 使用 order by 子句排序查询结果  757

数据库的增删改查_字段_09

1. Order by指定排序的列,排序的列既可以是表中的列名,也可以是select语句后指定的列名。

2. Asc 升序[默认]、Desc降序

3. ORDER BY子句应位于SELECT语句的结尾。

6.9.1课堂练习: orderby.sql  757

对数学成绩排序后输出[升序] 。

对总分按从高到低的顺序输出

对姓韩的学生成绩[总分]排序输出(升序)

代码在E:\java学习\初级\course154\db_

select04

#使用 order by 子句排序查询结果  757
-- 对数学成绩排序后输出[升序]
SELECT * FROM student
	ORDER BY math
-- 对总分按从高到低的顺序输出
SELECT `name`,(chinese+english+math) AS total_score FROM student
	ORDER BY total_score DESC  #这里直接按照别名排序了
-- 对姓韩的学生成绩[总分]排序输出(升序)
SELECT `name`,(chinese+english+math) AS total_score FROM student
	WHERE `name` LIKE '韩%'
	ORDER BY total_score


标签:goods,name,--,数据库,改查,查询,student,增删,SELECT
From: https://blog.51cto.com/u_15784725/6338752

相关文章

  • 150万学术名词中英对照字典ACCESS数据库
    今天这个数据是一款字典的类型的软件,专门用来查询一些学术上面的名词的中英对照,超过180个学科分类,150多万条记录,伴随您悠游于学海之中,是您做学问、写论文的好帮手。主要科目有:電子計算機名詞(107213)、電機工程名詞(100395)、電力工程(68379)、外國地名譯名(64487)、機械工程(49872)、生......
  • DDL之修改及删除数据库
    修改数据库alterdatabase数据库名character set字符集删除数据库,dropdatabase数据库名字alter修改drop删除练习--修改字符集alterdatabasedb1charactersetutf8;/*查看字符集修改成功CREATEDATABASE`db1`/*!40100DEFAULTCHARACTERSETutf8*//*!80016......
  • 4万多康熙字典全文ACCESS\EXCEL数据库
    康熙字典不但被文字研究爱好者喜欢,现在也越来越流行于汉字起名做参考,今天搞到的这一份康熙字典几乎是记录最多的数据库,并且数据库中的古文都能够正常显示,不像《2万见过的最好的康熙字典ACCESS数据库》古文需要字符集支持。康熙字典全文数据库仅包含2个字段。以“丰”字为例可......
  • kettle 连接oracle 12c以上数据库报错 ORA-12505, TNS:listener does not currently k
    在通过kettle连接oracle数据库时报错,但通过plsql是能正常连接的,ORA-12505,TNS:listenerdoesnotcurrentlyknowofSIDgiveninconnectdescriptororg.pentaho.di.core.exception.KettleDatabaseException:来看oracle数据库版本select*fromv$version;连接oracle12c以......
  • 在酒店房间中的数据库索引
    如果你经常去酒店,你会看到一块类似下面的标牌,指引你到达房间。这能够帮助你方便快速地找到房间,特别是当酒店拥有许多房间时。以一个有9层的酒店为例。你的房间号是917。第一步是找到你的房间在哪一层,通常第一个数字表示楼层。这意味着你的房间在第9层。你直接就找到了自己所在的......
  • 基于springboot+vue数码论坛系统设计与实现、论坛管理系统,附源码+数据库+lw文档+PPT
    1、项目介绍考虑到实际生活中在数码论坛方面的需要以及对该系统认真的分析,将系统权限按管理员和用户这两类涉及用户划分。(1)系统功能需求登录系统后,主要模块包括首页、数码板块、数码评价、数码论坛、畅聊板块、新闻资讯、个人中心、后台管理等功能。系统功能用例图如图3-1所示......
  • 网络数据库用户管理
    一概述    用户管理是网络数据库管理系统的常用要求之一,连接到数据库的每一个用户必须是系统的合法用户。用户是要使用网络数据库的管理系统,必须要拥有相应的权限,创建用户并授予权限权限是DBA的常用任务之一。下面以Oracle数据库为例,阐述网络数据库的用户管理。二:配置身份......
  • 不同数据库的格式化日期函数
    不同数据库的格式化日期MySql1、获取当前时间selectnow()2、日期格式化#年-月-日时:分:秒SELECTDATE_FORMAT(now(),'%Y-%m-%d%H:%i:%s')具体格式参考下面:格式描述%a缩写星期名(Sun..Sat)%b缩写月名(Jan..Dec)%c月,数值(0..12)%D带有英文......
  • 数据库之连接之外连接
    1、leftjoin是SQL语言中的查询类型,即连接查询。它的全称是左外连接(leftouterjoin),是外连接中的一种。2、Oracle中有三类OUTERJOIN--分别是LEFT,RIGHT和FULL。一个LEFTOUTERJOIN包含“左”表中的所有记录,即使它与在此连接中指定的“右”表并不存在任何匹配。3、RIGHTOUTE......
  • druid 数据库密码加密
    cmd命令:1、切换的druid-0.2.9.jar包所在目录2、在命令行中执行如下命令:java-cpdruid-0.2.9.jarcom.alibaba.druid.filter.config.ConfigToolsyou_password即输出加密后密码3、<!--sql统计功能就不能用<propertyname="filters"value="stat"/>--><propertyname="......