MySQL常用语法知识----增删改查

本文详述了MySQL数据库的基础语法和操作,包括创建、修改、删除数据库及数据表,以及CRUD操作。讨论了InnoDB和MyISAM存储引擎的特性,并展示了查询、聚合函数和分组查询的实例。内容涵盖了数据库和表的管理,以及数据的增、删、改、查等核心操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数据库 基础的语法和常见必备的操作

所有的操作都是基于SQlyog可以成功执行

	mysql语句不区分大小写

操作数据库

查询所有数据库
	 show  database;
	 
查询数据库的创建语句
    show create  database  mysql
    
创建数据库
	create databse db1
	
创建数据库(并且判断  如果不存在则创建)
	database if not exists db1;
	
创建数据库(指定字符集)
	create database db2 character set utf8
	
创建db3数据库 如果不存在则创建  指定字符集
	create  database if not exists db3 character set gbk;
	
查看数据库db3的的字符集
	show creata database db3;
	
修改数据库db4 的字符集为utf8
	alter  database db4 charcter set utf8
	
删除数据库db1
	drop database db1

操作数据表

	 user mysql
	 show  tables
 查看mysql数据库中的user表字符集
 	 show table status from mysql like 'user'
 	 创建表名
 	 create table product2(
 	 	id int,
 	 	name varhcar(20),
 	 	price double,
 	 	stock int,
 	 	inser_time date
 	 );
对该表进行操作
	查看product表详细结构
		desc  product
		
	修改product 表名为product2
		alter table product rename to product2
		
	修改表中的名称和数据类型  将color  修改为address
		alter table product2 change color address varchar(200);
		
	删除address列
		alter table product2 drop address;
		
	删除product2表
		drop table product2;
		
	删除product2 条件判断
		drop table if exists product2;

-engine innodb charset utf8

innodb存储引擎提供了具有提交、回滚和崩溃回复能力的事务安全

-engine Myisamcharset utf8

这是mysql默认的存储引擎 当create创建新表时为指定新表的存储引擎时
数据文件和索引文件可以放置在不同的目录 平均分布io 获得更快的速度

总结
innodb 安全性高 但是效率低 支持外键 支持事务
myisam 安全性较低 但是效率高 不支持外键 不支持事务

经典操作 CRUD 增删改查

新增表数据

USER db3;
	CREATE TABLE product2(
		id INT,
		NAME VARCHAR(20),
		price DOUBLE,
		stock INT,
		inser_time DATE
	);
更改列名
	alter table product2 change inser_time insert_time date;
	
向product表添加一条数据
	insert into product2 (id,name, price, stock, inset_time)
	values( 1,'手机',9999.9,20,'2021-12-1');
	
向product2 表添加指定列数据
	insert into product2 (id,name,price )values (2,'电脑',100000);
	
默认给全部列添加数据
	insert into product2 values (3,'电视',1500,35,'2030-09-12');

修改和删除

-- 修改手机的价格为3500
UPDATE product2 SET price=3500 WHERE NAME='手机';
-- 修改电脑的价格 和库存
UPDATE product2 SET price=7800,stock=500 WHERE NAME='电脑';
-- 删除表数据 洗衣机
DELETE FROM product2 WHERE NAME='洗衣机';
-- 删除表中库存为10的商品信息  不加条件则影响整张表的数据
DELETE FROM product2 WHERE stock=500;

查询

CREATE TABLE product(
	id INT,         
	NAME VARCHAR(20),  -- 商品名称
	price DOUBLE,	   -- 商品价格
	brand VARCHAR(10), -- 商品品牌
	stock INT,	   -- 商品库存
	insert_time DATE   -- 添加时间
);
去除重复查询
	select name , price brand , from product;
	
查询商品名称饿汉库存  库存数量在原有的基础上+10
	select name, stock+10, from product;
	
查询商品的名称和库存 库存数量在原有的基础上+10 进行null值判断 起别名 getsum
	select name, ifnull(stock,0)+10 as get sum from product;
	
查询品牌为华为的商品信息
	SELECT * FROM product WHERE brand='华为';
	
查询金额在4000~6000之间的商品信息
	SELECT * FROM product WHERE price >=400 AND price <= 600;
	
查询库存为 14 30 23的商品信息
	SELECT * FROM product WHERE stock=14 OR stock=30 OR stock=23;
	SELECT * FROM product WHERE stock IN(14,30,23);
	
查询库存为null的商品信息
	SELECT * FROM product WHERE stock IS NULL;
	
查询库存为不null的商品信息
	SELECT * FROM product WHERE stock IS NOT NULL;
	
查询名称以小米为开头的商品信息  表示 开头是小米 其他信息不关心
	SELECT * FROM product WHERE NAME LIKE '小米%';
	
查询名称第二个字是为的商品信息
	SELECT * FROM product WHERE NAME LIKE '_为%';
	
查询名称中包含电脑的商品信息
	SELECT * FROM WHERE NAME LIKE '%电脑%';
	
按照库存升序排序  从小到大
	select * from product order by stock asc;
	
查询名称中包含手机的商品信息 按照金额降序排序
	select * from product where name '%手机%' order by price desc;
	
按品牌分组 获取每组商品的总金额
	select brand ,sum(price) from product group by brand 
	
对金额大于4000元的商品  按照品牌分组  获取每组商品的总金额
	select brand , sum(price) from product where price > 4000 group by brand
	
对金额大于4000元的商品  按照品牌分组  获取分组商品的总金额  只显示总金额大于7000元的 
	select brand ,sum(price) as getsum from product where price > 4000 group by brand  having getsum>7000;
	
对金额大于4000元的商品 
按照品牌分组 获取每组商品的总金额 
只显示总金额大于7000元的
并且按照总金额的降序排序

	select brand ,sum (price) as getsum from product where price >4000 group by  brand having getsum > 7000 order by getsum desc;

常规的聚合函数

	sum max  min ....
--  按照市场价格由高往低排序  显示前三名商品信息

SELECT * FROM goods ORDER BY market_price DESC LIMIT 5;
SELECT * FROM goods ORDER BY goods_number ASC LIMIT 2,5;

语法 limit n  表示显示n条记录
        limit  m,n;m  表示跳过多少条记录  n显示多少条记录
        
如果查找第n页记录数
	limit  (n-1) * 5 , 5;
	当前页减一  * 每页显示数
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值