数据库的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','火龙果','深圳')

完成之后的结果:

数据库的CRUD操作

2.删除操作

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

delete from fruit

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

数据库的CRUD操作

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

数据库的CRUD操作

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

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

数据库的CRUD操作
update fruit set type='人类',source ='淄博' where name ='青青'

数据库的CRUD操作

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

4.查询操作

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

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

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

数据库的CRUD操作

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

数据库的CRUD操作

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

数据库的CRUD操作

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列中带有红字的

数据库的CRUD操作
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 可不用写,按照价格升序排列

数据库的CRUD操作
select *from fruit order by price desc  --降序排列
select *from fruit order by price asc,ids desc  --先按照price升序排,price相同的按照ids降序排

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

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

数据库的CRUD操作
select COUNT(*)from fruit where type like '梨'  --种类是梨的个数

数据库的CRUD操作
select AVG(price) from fruit  --查平均值
select AVG(price) from fruit where type in('梨','苹果') --梨苹果的价格平均值

数据库的CRUD操作
select SUM (price)from fruit --求和,()内可以是表达式如:price/ids

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

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

数据库的CRUD操作
select MAX(price)from fruit  --查询价格最大值
elect Min(price)from fruit   --查询价格最小值

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

数据库的CRUD操作

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

数据库的CRUD操作
select type,Min(price)from fruit group by type  --每个类型中价格最小值

数据库的CRUD操作

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

数据库的CRUD操作

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

上一篇:P3373 线段树模板


下一篇:java子类数组的引用转换成超类数组的引用