数据库基础学习4--表格的 增 删 改 查(简单查询与高级查询)

一、增

C:create 增加,创建,向数据库里面添加数据。

insert into Fruit values(‘K009‘,‘苹果‘,3.0,‘高青‘,90,‘‘)

insert into Fruit(Ids,Name,Price,Source,Numbers) values(‘K010‘,‘苹果‘,3.0,‘高青‘,90)

二、改

U:update修改,从数据库表里面修改数据。

update Fruit set Source=‘烟台‘ where Ids=‘K001‘

三、删

D:delete删除,从数据库中删除数据。

delete from Fruit where Ids=‘K007‘

事务:出现了错误,可以进行回滚

加事务:begin tarn

回滚:rollback

四、查

R:retrieve检索,查询,从数据库里面查询数据。

A、简单查询

一、查询表名和列名

1.查询所有 select * from 表名
2.查指定列 select 列名,列名 from 表名
3.替换列名 select Ids ‘代号‘,Name ‘名称‘,Price ‘价格‘,Source ‘产地‘ from Fruit
4.查指定行

select * from Fruit where Ids=‘K006‘
select * from Fruit where Price=2.4 and Source=‘烟台‘
select * from Fruit where Price between 2.0 and 4.0
select * from Fruit where Numbers in (90,80,70)

select *from  表名

select  列1,列2···from 表名

B、筛选

select top 3* from 表名   查询表的前三行

select top 3 列名 from 表名 where age >22 查询年龄大于22 岁的的前三行

1、等值与不等值

select *from 表名 where 列名=(!= ,>,<,>=,<=)值

2、多条件与范围

select*from 表名 where 条件 1 and或or 条件2  -- 查指定行按条件查

select*from 表名where  between····and··· --查指定行按范围查

select*from 表名 where 列  in(值)--查指定行,离散查

select distinct 列名 from表名            去重只能是一列

3、模糊查询

select * from News where title like ‘%。。。‘ --查以。。结尾的
select * from News where title like ‘。。。%‘ --查以。。开头的
select * from News where title like ‘%。。。%‘ --查以包含。。。的
select * from News where title like ‘%。。。_‘--,查。。。之后只有一个字符的

C、排序

select *from 表名 order by 列名 asc/ desc   把一列进行升序或者降序排列

select*from 表名 where age<25 order by age asc ,code desc   把小于年龄25岁的按照升序排列,如果有相同年龄的,再把相同年龄的按照降序排列

D、分组

a、聚合函数

count(),max(), min(),sum(),avg()

select count(*) from 表名 where 列名       统计总行数

select count(列名)from 表名    只统计这一列中的非空值,如果有一格为空,会少统计一行

select  min(列名) from 表名   找这一列的最小值

select avg(列名)from 表名 算这一列的平均分

b、group by....having.....

1、group by后面跟的是列名

2、一旦使用group by分组了,则select 和from中间就不能用星号,只能包含两类东西,一类是 group by后面的列名,另一类是统计函数

select 列名,avg(列名) from 表名 group by 列名

having 后面一般跟的统计函数,根据分组后的结果进行进一步筛选

select 列名 from 表名 group by 列名 having count(*)>1  可以把重复的找出来,并且显示有几个相同的

E、高级查询

1、连接查询
select * from 列名,列名 -- 形成笛卡尔积
select * from Info,Nation where Nation.Code=Info.Nation

join on 内连接(列的连接)
select * from Info join Nation on Info.Nation = Nation.Code

eg

--查哪位学生的哪一门课考了多少分?
select student.sname,course.cname,score.degree from student join score on score.sno=student.sno join course on course.cno = score.cno

右连接,右边表必须显示全,如果在左边表没有与之对应的信息,则补空值
select * from Info right join Nation on Info.Nation=Nation.Code
   左连接,左边表必须显示全,如果在右边表没有与之对应的信息,则补空值
select * from Info left join Nation on Info.Nation=Nation.Code
   全连接,左右两边的表都显示完全
select * from Info full join Nation on Info.Nation=Nation.Code

2、联合查询(行的扩展)

对于查出的两个或多个结构相同的表联合显示
select Code,Name from Info union select Info Code,Name from Family

3、子查询
--子查询的结果当做父查询的条件
select * from Info
--无关子查询,子查询执行是独立的,和父查询是没有关系的(没有用到父查询的东西)
select * from Info where year(Birthday)=(
select YEAR(Birthday) from info where Code=‘p005‘)

--相关子查询
select * from teacher
--求计算机系和电子工程系不同职称的老师信息
select * from teacher t1 where depart=‘计算机系‘ and not exists(
select * from teacher t2 where depart=‘电子工程系‘ and t1.prof = t2.prof)
union
select * from teacher t1 where depart=‘电子工程系‘
and not exists(
select * from teacher t2 where depart=‘计算机系‘ and t1.prof = t2.prof
)

--查询除了每门课最高分之外的其他学生信息。

select * from score where degree not in(select MAX(degree) from score group by cno)--错误

select * from score s1 where degree not in(
select MAX(degree) from score s2 group by cno having s1.cno = s2.cno
)

--select * from score where degree not in(86,75)

--分页

select top 5 * from Car -- 前5条数据,第一页
select top 5 * from Car where Code not in(
select top 5 Code from Car
) -- 第二页的数据

select top 5 * from Car where Code not in(
select top 10 Code from Car
) --第三页的数据

select top 5 * from Car where Code not in(
select top (5*2) Code from Car
)

select ceiling(COUNT(*)/5) from Car --求总页数

select * from Car where 条件 limit 跳过几条数据,取几条数据 --mysql里面的分页

时间: 2024-12-14 07:37:02

数据库基础学习4--表格的 增 删 改 查(简单查询与高级查询)的相关文章

第18课-数据库开发及ado.net 连接数据库.增.删.改向表中插入数据并且返回自动编号.SQLDataReade读取数据

第18课-数据库开发及ado.net 连接数据库.增.删.改向表中插入数据并且返回自动编号.SQLDataReade读取数据 ADO.NET 为什么要学习? 我们要搭建一个平台(Web/Winform)让用户方便的操作数据库中的数据. 什么是ADO.NET 是一组库类,System.Data. Ado.net组成 Connection:用来连接数据库 Command:用来执行SQL语句 DataReader:只读.只进的结果集,一条一条读取数据(SteamReader.XmlReader) Da

Python---MySQL数据库之四大操作(增 删 改 查)

一.对数据库,表,记录---四大操作(增 删 改 查) 1.操作数据库 (1)对数据库(文件夹):进行增加操作 Create  database  库名; 例:  Create  database  db7 ; 查询库: show  databases; 结果: +-----------------------------+ | Database                   | +----------------------------+ | information_schema | |

ADO.NET 增 删 改 查

ADO.NET:(数据访问技术)就是将C#和MSSQL连接起来的一个纽带 可以通过ADO.NET将内存中的临时数据写入到数据库中 也可以将数据库中的数据提取到内存中供程序调用 ADO.NET所有数据访问技术的基础 连接数据库基本格式:需要两个类1.数据库连接类 SqlConnection2.数据库操作类 SqlCommand 1.连接数据库写连接字符串,立马就要想到有4点要写完,1.连接哪台服务器,2.连接哪个数据库,3.连接用户名,4.密码string sql = "server=.(服务器i

php基础:数据库的含义和基本操作 增 删 改 查

//数据库是帮我们管理数据的一个软件,我们将数据给他,放进数据库里.他能很稳妥的帮我们管理起来,且效率很高.//php的大部分工作就是  php->连接数据库->写入数据->查出数据->格式化数据->显示出来,//数据库管理数据是以表的形式组成的,多行多列,表头声明好了,一个表创建好了,剩下的就是往里面添加数据 多张表放在一个文件夹里面就形成了库  mysql服务器帮我们管理多个库C:\wamp\bin\mysql\mysql5.6.12\data   数据库中的数据放在这个

数据库: Android使用JDBC连接数据库实现增 删 该 查 操作(5.0版本)

前言 上一节的代码没有测试通过,暂时没有找到问题,这节咱用5.0的jar包 配置数据库,导入jar包参考上一节(导入这节的jar包) 准备好测试的数据库 IP: 47.92.31.46 用户名: yang 密码:    11223344. 数据库名字 :  databasetest 表格:  userinfo 这是我云端电脑安装的数据库,大家都可以连接测试 我设置了权限,只可以增删改查数据 加载mysql驱动 Class.forName("com.mysql.jdbc.Driver")

数据库的增,删,改,查的操作示例

public class Test extends AndroidTestCase { private shujuku shu; private SQLiteDatabase db; // 测试方法执行前调用 @Override protected void setUp() throws Exception { // TODO Auto-generated method stub   super.setUp(); shu = new shujuku(getContext()); // 拿到数据库

怎样从C#中打开数据库并进行 增 删 改 查 操作

首先 在C#中引用数据库的操作! (因为我们用的是SQLserver数据库,所以是SqlClient) using System.Data.SqlClient; 1:要实现对数据库的操作,我们必须先登录数据库 Console.WriteLine("请输入用户名:"); //提示客户输入用户名和密码 string name = Console.ReadLine(); Console.WriteLine("请输入密码:"); string pwd = Console.R

iOS 数据库FMDN 数据库的增 删 改 查 的 的基本操作

FMDB的下载地址 (https://github.com/ccgus/fmdb) 话不多说首先将这个 库加进来,在将加进来,OK  准备工作就绪上代码. #import "DDViewController.h" #import "FMDB.h" @interface DDViewController () { FMDatabase *db; } @end @implementation DDViewController /** *  要先做要有个位置去存放数据库 

数据库的增 删 改 查语句汇总

(select * from xxx  - -查询语句) 一:新建数据库 (xxx表示名称) use XXX - -指向当前所操作的数据库 go create table xxx - -新建表关键字 (  列的名称 数据类型 not null,  列的名称 数据类型 not null,  列的名称 数据类型 not null  (  idenitiy(1,1)- -表示标识,标识种子为1增长为1     )  (  primary key (列名) - -设置主键