数据库的CRUD操作

一:数据库的CRUD操作,C是指create新增,R是指retrieve检索,U是指update更改,D是指delete删除

SQL语句分为3类:

1.DDL指数据定义语言如:create,drop,alter等;

2.DML指数据操纵语言:CRUD;

3.DCL指数据控制语言:备份语言之类。

数据库类型分为3大类:

1.关系型数据库:用表存储数据,易于检索,冗余度较小,现在用的就是关系型数据库。

2.层次型数据库,不常见

3.网状型数据库,不常见

二:CRUD操作语法

首先创建一个数据库,一个fruit表,go是一个分割,如果不加go,一起执行语句会发生错误,创建了一个fruit表,ids列用primary key定义成了主键列,由于type和source是关键字,所以用一个[]括起来。

create database MyDB
go
use MyDB
go
create table fruit
(
ids int  primary key,
name varchar (20) not null,
price float,
[type] varchar(20),--type是关键词加[]
[source]varchar(20)

)
go

1.添加操作

这里ids没有设置为自增长列,用insert像表里添加内容,默认有几列()内就填几个值如第一句;如果不用默认的就自己指定哪一列填哪个值如第二第三句。

insert into fruit values(‘1‘,‘红富士‘,‘5‘,‘苹果‘,‘栖霞‘)
insert into fruit(ids,name,price,[type]) values(‘2‘,‘巨峰‘,‘6‘,‘葡萄‘)
insert into fruit(ids,name,[type],price,[source])values(‘3‘,‘冬枣‘,‘枣类‘,‘20‘,‘沾化‘)

如果ids设置为了自增长列,则第一列ids是不可以填入任何值的,默认就成了四列内容,如下面的语句

insert into fruit values(‘红香蕉‘,‘4.5‘,‘苹果‘,‘牟平‘)
insert into fruit values(‘黑美人‘,‘2.0‘,‘西瓜‘,‘淄博‘)
insert into fruit values(‘提子‘,‘10.0‘,‘葡萄‘,‘新疆‘)
insert into fruit values(‘肥桃‘,‘3.0‘,‘桃子‘,‘肥城‘)
insert into fruit values(‘鸭梨‘,‘5.0‘,‘梨‘,‘莱阳‘)
insert into fruit values(‘贵妃笑‘,‘20.0‘,‘荔枝‘,‘深圳‘)
insert into fruit values(‘莱阳梨‘,‘3.0‘,‘梨‘,‘莱阳‘)
insert into fruit values(‘红柚‘,‘5.0‘,‘梨‘,‘广西‘)
insert into fruit values(‘青青‘,‘16‘,‘火龙果‘,‘深圳‘)

完成之后的结果:

2.删除操作

delete删除慢,写日志,自增长往下继续不重新开始

delete from fruit

delete from fruit where 列名 关系运算符 值
delete from fruit where source =‘莱阳‘
delete from fruit where type=‘葡萄‘  --去掉了产地是莱阳的行,去掉了类型是葡萄的行

条件多了也可以用and 或者 or,这样是删除了产地是深圳的价格小于18的行
lete from fruit where source=‘深圳‘and price<18

truncate table fruit --truncate快,截断不要,自增长列会从1开始复位

3.更新操作
--update fruit set 列名=值,列名=值,...where,如下语句:
update fruit set price=1000000 where name=‘青青‘


update fruit set type=‘人类‘,source =‘淄博‘ where name =‘青青‘

--begin tran和rollback,一个回滚操作,中间的句子操作错误了,可以用rollback返回,避免操作错误了无法挽回。
begin tran
update fruit set type=‘人类‘,source =‘淄博‘ --这样就使得所有的行都改了,操作错误,可以用rollback返回操作前的状态。
rollback

4.查询操作

--对列的筛选叫做投影,对行的筛选叫做筛选
--行的名字叫记录或者元组,列的名字叫字段或者属性

查询操作并不改变数据库中的内容,只是将里面的数据按照需要的方式显示出来。

select * from fruit   -- *是代表所有的列

select name,type,source from fruit   --指定的列,这里指定了name列、type列和source列

select *from fruit where price>=5 and source=‘莱阳‘   --指定行,这里指定了价格是大于等于5的产地是莱阳的这一行

select *from fruit where price between 10 and 20 --范围查询,查询价格在10到20之间的行
select *from fruit where price in(3,4,5) --离散值查询,查询价格是3,4,5的行

--列去重复
select distinct type from fruit --去除type类型中重复的项

--模糊查询

通配符:%是任意多个任意字符,_下划线代表一个任意字符,如%红%是指红的左右都可以有任意多个字符,需要写在单引号里。
select *from fruit where name like ‘%红%‘   --查询name列中带有红字的


select *from fruit where price like ‘%5%‘
select *from fruit where price like ‘_0%‘ or price like ‘__5%‘ --或者‘_[3.5]%‘[]内代表任取一个

--排序
select *from fruit order by price   --后面跟asc 可不用写,按照价格升序排列


select *from fruit order by price desc  --降序排列
select *from fruit order by price asc,ids desc  --先按照price升序排,price相同的按照ids降序排


select *from fruit where price>5 order by price  --先选出价格大于5的再按照价格升序排列

--统计,聚合函数
select COUNT(*)from fruit --查有多少条记录


select COUNT(*)from fruit where type like ‘梨‘  --种类是梨的个数


select AVG(price) from fruit  --查平均值
select AVG(price) from fruit where type in(‘梨‘,‘苹果‘) --梨苹果的价格平均值


select SUM (price)from fruit --求和,()内可以是表达式如:price/ids


select *,(price*0.9) as 折后价格 from fruit  --在表右面又出线了一列“折后价格”显示的是9折之后的价格,仅显示,数据库内并没有存入。


select ids 序号,name 名称,price 价格,type 类型,source 产地 from fruit   --用汉字代替英文的列名


select MAX(price)from fruit  --查询价格最大值
elect Min(price)from fruit   --查询价格最小值

--分组一般配合统计函数用
select type,COUNT(*) from fruit group by type order by COUNT(*) desc --对分组后的数据进行排序,按照type(种类)进行分组,按照每组的个数降序排列,显示出type列和每组的个数

select type,COUNT(*)from fruit where price>5 group by type    --对价格大于5的按照type进行分组


select type,Min(price)from fruit group by type  --每个类型中价格最小值

select type,COUNT(*) from fruit group by type having COUNT(*)>1  --对分组后的数据进行筛选,having只能跟在group by后面用;按照type进行分组,将组内个数大于1的type和个数显示出来

以上就是一些基本的CRUD操作,其中查询在这里面比较重要,内容也较多,利用查询可以方便的从众多数据中查到我们想要的数据。

时间: 2024-07-29 17:42:35

数据库的CRUD操作的相关文章

完成对数据库的CRUD操作

PS:查询相对复杂,要处理结果集,增删改则不用. 1 package it.cast.jdbc; 2 3 import java.sql.Connection; 4 import java.sql.ResultSet; 5 import java.sql.SQLException; 6 import java.sql.Statement; 7 8 public class CRUD { 9 10 /** 11 * @param args 12 * @throws ClassNotFoundExc

4月18 数据库的CRUD操作

php主要是实现B/S Brower Server;此外还有C/S:Client Server暂时不考虑: LAMP: Linux系统 A阿帕奇服务器 Mysql数据库 Php语言,而现在学的是在windows下的, mysql:常用代码   即创建表添加列 create table CeShi1( Uid varchar(50) primary key, Pwd varchar(50), Name varchar(50), Nation varchar(50), foreign key(Nat

MyBatis 对数据库进行CRUD操作

1.update修改 uodate修改也可以使用之前的机制在配置文件中直接编写sql 但是update语句的set字句中是根据传入的值决定的, 此时可以通过Mybatis提供的标签实现判断动态拼接update语句: <!-- update修改 --> <update id="updateOne"> update user <set> <if test="name != null">name = #{name},<

数据库CRUD操作以及MyBatisd的配置使用

• 业务字段设计 • 数据库创建 • CRUD操作 • MyBatis集成 • 注解和XML定义 • ViewObject和DateTool • 首页开发 • 业务字段设计 实体: • 数据库创建 GUI版本管理工具创建,然后通过GUI转SQL: • CRUD操作 insert into table_name (列1, 列2,...) VALUES (值1, 值2,....): select 列名1,列名2 from 表名称 where 条件: 条件: between 1 and 2 order

javaweb(三十三)——使用JDBC对数据库进行CRUD

一.statement对象介绍 Jdbc中的statement对象用于向数据库发送SQL语句,想完成对数据库的增删改查,只需要通过这个对象向数据库发送增删改查语句即可. Statement对象的executeUpdate方法,用于向数据库发送增.删.改的sql语句,executeUpdate执行完后,将会返回一个整数(即增删改语句导致了数据库几行数据发生了变化). Statement.executeQuery方法用于向数据库发送查询语句,executeQuery方法返回代表查询结果的Result

深入分析JavaWeb Item28 -- 使用JDBC对数据库进行CRUD

一.statement对象介绍 Jdbc中的statement对象用于向数据库发送SQL语句,想完成对数据库的增删改查,只需要通过这个对象向数据库发送增删改查语句即可. Statement对象的executeUpdate方法,用于向数据库发送增.删.改的sql语句,executeUpdate执行完后,将会返回一个整数(即增删改语句导致了数据库几行数据发生了变化). Statement.executeQuery方法用于向数据库发送查询语句,executeQuery方法返回代表查询结果的Result

JAVA实现DAO基本层CRUD操作

随着shh2各种操作方便框架.越来越多JAVA WEB效率,可是,假设在不了解这些框架使用的场合的情况下,一拿到项目就盲目地选择这些框架进行系统架构的搭建,就有可能造成非常多不是必需的资源浪费. 在项目开发中.对数据库的CRUD操作我们一般都是无法避免的操作,尽管hibernate封装的非常完美,可是.因为本人对这个框架的底层原理不是非常了解,每次使用的时候心里总认为没底.代码一旦出现异常,非常多时候都没法高速有效地解决.因此,为了让代码异常处理风险控制在自己的可控范围内,还是决定先将数据的CR

javaweb学习总结(三十三)——使用JDBC对数据库进行CRUD

javaweb学习总结(三十三)——使用JDBC对数据库进行CRUD 一.statement对象介绍 Jdbc中的statement对象用于向数据库发送SQL语句,想完成对数据库的增删改查,只需要通过这个对象向数据库发送增删改查语句即可. Statement对象的executeUpdate方法,用于向数据库发送增.删.改的sql语句,executeUpdate执行完后,将会返回一个整数(即增删改语句导致了数据库几行数据发生了变化). Statement.executeQuery方法用于向数据库发

Silverlight 2 (beta1)数据操作(5)——使用LINQ to SQL进行数据CRUD操作(上)

导言 Silverlight 2支持JSON.Web Service.WCF以及Sockets等新特性对数据CRUD操作,这个系列用实例结合数据库一步一步的图文描述来学习一下Silverlight 2 beta 1中进行数据库的CRUD操作方面的实战能力. 这篇文章介绍如何在Silverlight 2 beta 1中使用LINQ to SQL进行数据CRUD操作.我把这个实例大致分为3层. 这里多说几句:微软发布的是Silverlight 2 beta1 并不是Silverlight 2.0,也