数据库基础学习_day01

– 创建db2数据库

CREATE database db2;

– 使用db2数据库

USE db2;

– 一 :DDL

– 创建商品表 (商品编号,商品名称,商品价格,商品库存,上架时间)

CREATE TABLE product(
id INT,
name VARCHAR(20),
price DOUBLE,
stock INT,
insert_time DATE -- 最后一行不写逗号
);

– 查询表结构

DESC product;

– 修改表

– 修改表名

ALTER TABLE product RENAME TO  product2;

– 修改表的字符集

SHOW TABLE STATUS FROM db2 LIKE 'product2';
ALTER TABLE product2 CHARACTER SET gbk;

– 给product2添加一列

ALTER TABLE product2 ADD color VARCHAR(10);
SELECT *from product2;

– 修改color数据类型为int

ALTER TABLE product2 MODIFY color INT;desc product2;

– 修改color 修改为address

ALTER TABLE product2 CHANGE color address VARCHAR(200);
desc product2;

– 删除address列

ALTER TABLE product2 DROP address;
desc product2;

– 删除数据表 drop table if exists 表名;存在即删除

create table pro(id INT);
DROP TABLE IF EXISTS pro;
SHOW TABLES;

– 二 : DML 数据表的增删改

– 给指定列添加数据 INSERT INTO 表名(列名1,列名2…) VALUES (值1,值2…);

– 给全部列添加数据 INSERT INTO 表名 VALUES (值1,值2…);

– 批量添加数据:INSERT INTO 表名(列名1,列名2…) VALUES (值1,值2…),(值1,值2…)…;

– 批量添加数据:INSERT INTO 表名 VALUES (值1,值2…),(值1,值2…)…;

– 除了数据类型的数据,其它数据类型都要加引号(单双都可以)

ALTER TABLE product2 RENAME TO  product;
select *from product;INSERT INTO product VALUES(1,'电脑',5999.9,100,'2021-1-1');INSERT INTO product VALUES
(2,'手机',2499,500,'2021-2-2'),
(3,'平板',2999,50,'2021-3-10'),
(4,'显示屏',1000,90,'2021-4-30');

– 修改数据 UPDATE 表名 SET 列名1=值1,列名2=值2,…[WHERE 条件]; 如果不加条件会修改全部数据

UPDATE product SET price = 3500 WHERE id = 2;UPDATE product SET price = 1800,stock = 36 WHERE id = 1;

– 删除数据 DELETE FROM 表名[WHERE 条件]; 如果不加条件会删除全部数据

DELETE FROM product;
SELECT *from product;

– DQL:表的查询

CREATE TABLE product1(
id INT,
name VARCHAR(20),
price DOUBLE,
brand VARCHAR(10), -- 品牌
stock INT,
insert_time DATE -- 最后一行不写逗号
);
SELECT *from product1;INSERT INTO product1 VALUES
(1,'华为手机',3999,'华为',23,'2021-2-2'),
(2,'小米手机',2999,'小米',39,'2020-3-10'),
(3,'苹果手机',1999,'苹果',23,'2019-3-10'),
(4,'华为电脑',22999,'华为',23,'2011-3-10'),
(5,'小米电脑',6999,'小米',32,'2031-3-10'),
(6,'苹果电脑',4999,'苹果',12,'2071-3-10'),
(7,'联想电脑',1000,'联想',NULL,'2221-4-30');-- 单表查询语法
-- SELECT 
--     字段列表
-- FROM
--     表名列表
-- WHERE
--     条件列表
-- Group BY
--     分组字段
-- HAVING
--     分组后的过滤条件
-- ORDER BY
--     排序
-- LIMIT
--     分页

– 查询全部 SELECT *FROM 表名;

SELECT *FROM product1;

– 查询指定字段 SELECT 列名1,列名2,… FROM 表名;

SELECT id,name FROM product1;

– 去除重复查询 SELECT DISTINCT 列名1,列名2,… FROM 表名;

SELECT DISTINCT brand FROM product1;

– 计算列的(四则运算) SELECT 列名1 运算符(±*/) 列名2 FROM 表名;

SELECT name,stock+10 AS end_stock FROM product1;

– null值判断 IFNULL(expr1,expr2)

SELECT name,IFNULL(stock,0)+10 AS end_stock FROM product1;

– 起别名查询 SELECT 列名 AS 别名 FROM 表名;

SELECT name,IFNULL(stock,0)+10 AS end_stock FROM product1;
SELECT name,IFNULL(stock,0)+10 end_stock FROM product1;

– 条件查询 SELECT 列名列表 FROM 表名 WHERE 条件;

SELECT *FROM product1 WHERE stock > 20;SELECT *FROM product1 WHERE brand='华为';SELECT *FROM product1 WHERE price >= 4000 AND price <= 6000;SELECT *FROM product1 WHERE price BETWEEN 4000 AND 6000;SELECT *FROM product1 WHERE stock IN(12,30,23);SELECT *FROM product1 WHERE stock=12 OR stock=30 OR stock=23;SELECT *FROM product1 WHERE stock IS NULL;SELECT *FROM product1 WHERE stock IS NOT NULL;SELECT *FROM product1 WHERE name LIKE '小米%';--  _下划线代表一个任意字符,%代表多个任意字符
SELECT *FROM product1 WHERE name LIKE '_为%';SELECT *FROM product1 WHERE name LIKE '____';SELECT *FROM product1 WHERE name LIKE '%电脑%';

– 聚合函数查询 count(列名) max(列名) min(列名) sum(列名) avg(列名)

– 语法:SELECT 函数名(列名) FROM 表名 [WHERE 条件];

– 计算表中总记录条数

SELECT COUNT(*) FROM product1;

– 获取最高价格

SELECT MAX(price) FROM product1;

– 获取最低库存

SELECT MIN(stock) FROM product1;

– 获取总库存数量

SELECT SUM(stock) FROM product1;

– 获取品牌为苹果的总库存的数量

SELECT SUM(stock) FROM product1 WHERE brand='苹果';

– 获取品牌为小米的平均商品价格

SELECT avg(price) FROM product1 WHERE brand='小米';

– 排序查询 SELECT 列名列表 FROM 表名 [WHERE 条件] ORDER BY 列名 排序方式,列名 排序方式…;

– ASC 升序 ,DESC 降序 默认升序

– 按照库存升序排序

SELECT *FROM product1 ORDER BY stock ASC;

– 查询名称中包含手机的商品信息。按照金额降序排序

SELECT *FROM product1 WHERE name LIKE '%手机%' ORDER BY price DESC;

– 按照金额升序排序,如果金额相同,按照库存降序排序

SELECT *FROM product1 ORDER BY price ASC,stock DESC;

– 分组查询

– SELECT 列名列表 FROM 表名 [WHERE 条件] GROUP BY 分组列名[HAVING 分组后的条件过滤] [ORDER BY 排序列名 排序方式];

– 按照品牌分组,获取每组商品的总金额

SELECT brand,SUM(price) FROM product1 GROUP BY brand;

– 对金额大于4000元的商品,按照品牌分组,获取每组商品的总金额

SELECT brand,SUM(price) FROM product1 WHERE price>4000 GROUP BY brand;

– 对金额大于4000元的商品,按照品牌分组,获取每组商品的总金额,只显示总金额大于7000元的

SELECT brand,SUM(price) getSum FROM product1 WHERE price>4000 GROUP BY brand HAVING getSum>7000;

– 对金额大于4000元的商品,按照品牌分组,获取每组商品的总金额,只显示总金额大于7000元的、并按照总金额的降序排序

SELECT brand,SUM(price) getSum FROM product1 WHERE price>4000 GROUP BY brand HAVING getSum>7000 ORDER BY getSum DESC;

– 分页查询

– 语法:SELECT 列名列表 FROM 表名 [WHERE 条件] GROUP BY 分组列名[HAVING 分组后的条件过滤] [ORDER BY 排序列名 排序方式] LIMIT 当前页数,每页显示的条数;

– 公式:当前页数 = (当前页数-1)*每页显示的条数

– 每页显示3条数据

– 第一页 当前页数= (1-1)*3

SELECT *FROM product1 LIMIT 0,3;

– 第二页 当前页数 = (2-1)*3

SELECT *FROM product1 LIMIT 3,3;

– 第三页 当前页数 = (3-1)*3

SELECT *FROM product1 LIMIT 6,3;


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部