数据库操作

目录

一、设计表

 1、表信息

 2、插入

3、修改

4、删除

5、查询

6、通配符

 7、排序查询

8、聚合函数

二、例题

1、例题1



一、设计表

 1、表信息

 2、插入

-- 插入
-- 第一种写法 (单条插入)
-- 如果列名与mysql关键字冲突用反引号括起来 避免冲突`name· 
INSERT INTO goods (`name`, price)
VALUES
	('连衣裙', 99.9) 

-- 第二种写法 (去掉列名插入)
-- 给表中所有的列添加值 去掉列名的括号 按照顺序依次写入值
-- default为id默认自增长(默认就写default)
INSERT INTO goods
VALUES
	(DEFAULT,'果冻',100,'2021-09-07',99.9)

-- 一次插入多条语句 
INSERT INTO goods
VALUES
	(DEFAULT,'酸奶',100,'2021-09-07',99.9),
	(DEFAULT,'薯片',100,'2021-09-07',99.9),
	(DEFAULT,'牛奶',100,'2021-09-07',99.9)

3、修改

-- 修改
UPDATE goods SET `name`='酸奶',cnt=200,price=199.8 WHERE id=5

4、删除

-- 删除
DELETE FROM goods WHERE id=1

-- 删除多条
DELETE FROM goods WHERE id in(5,6,7,8)

5、查询


-- 查询全部信息 SELECT 列名 FROM 表名
SELECT `name`,best_date FROM  goods 

-- 查询指定的行
SELECT `name`,best_date FROM  goods WHERE id=5

-- 查询整个表的信息 (*表示所有的字段)
SELECT * FROM goods 

-- 查询指定行的全部信息
SELECT * FROM goods WHERE id=5

-- AS关键字给某一个列(字段)起别名
SELECT `name` AS 商品名称 ,best_date AS 保质期 FROM  goods WHERE id=5

-- 多个条件查询 WHERE AND
INSERT INTO goods VALUES(DEFAULT,'酸奶',100,'2021-09-08',99.9)
SELECT * FROM goods WHERE `name`='酸奶' AND best_date='2021-09-08'

-- 查询多行的信息
SELECT * FROM goods WHERE id in(10,11)

-- 查询相邻两个区间之间的所有数据
SELECT * FROM goods WHERE best_date BETWEEN '2021-09-01' AND '2021-09-07'

-- 查询不重复的数据 DISTINCT只能针对某一个字段去重
SELECT DISTINCT(`name`)FROM goods

-- 检索表中是否有空null的数据 
SELECT * FROM goods WHERE cnt IS NUll

-- 查询所有不含空的数据
SELECT * FROM goods WHERE cnt IS NOT NUll

6、通配符

-- 通配符% 查询以酸开头的所有数据 
SELECT * FROM goods WHERE `name` LIKE '酸%'

 7、排序查询

-- 排序
-- 正序 ASC
-- 按保质期排序(数值都可以)
SELECT * FROM goods ORDER BY best_date ASC

-- 倒序 DESC
SELECT * FROM goods ORDER BY best_date DESC

-- 由某个条件来进行倒叙 WHERE ORDER BY
SELECT * FROM goods WHERE `name` LIKE '酸%' ORDER BY best_date DESC

-- 倒叙数据 LIMIT查询查询几条 限制结果集 0,3从0开始查查3条记录
SELECT * FROM goods ORDER BY best_date DESC LIMIT 0,3

-- 正序 LIMIT查询范围 查询几条
SELECT * FROM goods ORDER BY id DESC LIMIT 0,3

8、聚合函数


-- 聚合函数
-- 查询COMMIT某列中有多少个数据
SELECT COUNT(`name`) FROM goods

-- 查询某列所有数的总和 
SELECT SUM(cnt) AS 总库存 FROM goods

二、例题

1、例题1

  • 按照以下题目要求实现操作,并将sql语句记录在记事本中。
    • 要求1:创建一个数据库libry在数据库中。
    • 要求2:创建数据表books。
    • 要求3:向books表中插入记录
  • 创建表books

字段名

字段说明

数据类型

主键

外键

非空

唯一

自增

b_id

书编号

int(11)

b_name

书名

varchar(50)

authers

作者

varchar(100)

Price

价格

Float

pubdate

出版日期

Year

Note

说明

varchar(100)

Num

库存

int(11)

  • books表中的记录

b_id

b_name

authers

price

pubdate

Note

num

1

Tal of AAA

Dickes

23

1995

novel

11

2

EmmaT

Jane lura

35

1993

Joke

22

3

Story of Jane

Jane Tim

40

2001

novel

0

4

Lovey Day

George Byron

20

2005

novel

30

5

Old land

Honore Blade

30

2010

Law

0

6

The Battle

Upton Sara

30

1999

medicine

40

7

Rose Hood

Richard haggard

28

2008

cartoon

28

  • 要求4:查询价格低于30并且库存大于10的书名;
  • 要求5:查询作者名字的首字母为J的书的书名和作者;
  • 要求6:查询note为novel 出版时间在2000年以后的书的名字,出版日期,以及库存;
  • 要求7: 查询价格比Old land低的所有书的名称。

-- 查询价格低于30并且库存大于10的书名;
SELECT * FROM books WHERE price<30 AND num>10

-- 查询作者名字的首字母为J的书的书名和作者;
SELECT * FROM books WHERE authors LIKE 'j%'

-- 查询note为novel 出版时间在2000年以后的书的名字,出版日期,以及库存;
SELECT * FROM books WHERE Note='novel' AND pubdate>'2000-01-01'

-- 查询价格比Old land低的所有书的名称。
-- 得到old land这本书的价格
SELECT price FROM books WHERE b_name='Old land'

-- 子查询
SELECT * FROM books WHERE price<(SELECT price FROM books WHERE b_name='Old land')

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值