MySQL学习

SQL(Structure Query Language)结构化查询语言

是数据库的核心语言,是高级的非过程化编程语言。它功能强大,效率高,简单易学易维护。SQL语言基本上独立于数据库本身、使用的机器、网络、操作系统,基于SQL的DBMS产品可以运行在从个人机、工作站到基于局域网、小型机和大型机的各种计算机系统上,具有良好的可移植性。

SQL介绍:https://blog.csdn.net/Bonport/article/details/104779426

cmd登录操作:

cmd命令下
连接:mysql -h主机地址 -u用户名 -p用户密码 (注:u与root可以不用加空格,
其它也一样,最后不要加分号) 
断开:exit (回车)

在这里插入图片描述

一、对数据库的操作

1.创建一个库

	create database dbname;
	create database dbname character set 编码;

在这里插入图片描述
2.查看库属性

	show create database dbname;

在这里插入图片描述
3.删除一个库

	drop database dbname;

在这里插入图片描述
4.使用库

	use dbname;

5.查看当前正在操作的库

	select database();

在这里插入图片描述

二、对数据库表的操作

– 添加外键约束

CREATE TABLE stu(
    sid INT PRIMARY KEY,
    NAME VARCHAR(50) NOT NULL
);

– 添加外键约束方式一

CREATE TABLE score1(
    score DOUBLE,
    sid INT,
    CONSTRAINT fk_stu_score1_sid FOREIGN KEY(sid) REFERENCES stu(sid)
);

– 添加外键约束方式二(若表已存在,可用这种)

CREATE TABLE score1(
    score DOUBLE,
    sid INT
);
ALTER TABLE score1 ADD CONSTRAINT fk_sid FOREIGN KEY(sid) REFERENCES stu(sid)

1.创建一张表

	create table 表名(
		字段名 类型(长度) [约束],
		字段名 类型(长度) [约束],
		字段名 类型(长度) [约束]
	);

在这里插入图片描述
2.查看数据库表

 	 show tables;

在这里插入图片描述
3.查看表的结构

	desc 表名;

在这里插入图片描述
4.删除一张表

	drop table 表名;

在这里插入图片描述
5.修改表

	5.1 添加一列
		alter table 表名 add 字段名 类型(长度) [约束];
	5.2修改列的类型(长度、约束)
		alter table 表名 modify 要修改的字段名 类型(长度) [约束];
	5.3 修改列的列名
		alter table 表名 change 旧列名 新列名 类型(长度) [约束];
	5.4 删除表的列
		alter table 表名 drop 列名;
	5.5 修改表名
		rename table 表名 to 新表名;
	5.6 修改表的字符集
		alter table 表名 character set 编码;

在这里插入图片描述
6.查看当前表的编码

	show create table tbname;

在这里插入图片描述

三、对数据库表记录进行操作(修改)

1.插入记录

	insert into 表名(列名1,列名2,列名3……) values(1,2,3……);
	insert into 表名 values(1,2,3……);
	1.1 插入数据中文乱码问题解决办法
	方式一:【不建议!】
	直接修改数据库安装目录里面的my.ini文件的第57行
	方式二:
		set names gbk;

在这里插入图片描述
2.修改表记录

	2.1 不带条件的
		update 表名 set 字段名=, 字段名=, 字段名=值……;
	2.2 带条件的
		update 表名 set字段名=, 字段名=, 字段名=值…… where 条件;

在这里插入图片描述
在这里插入图片描述
3.删除表记录

	3.1 带条件的
		delete from 表名 where 条件;
	注意,删除后,uid不会重置!
	3.2.不带条件的
		先准备数据
		insert into tbl_user values(null,’老王’,666);
		删除操作
		delete from 表名;
	3.3 面试题   说说deletetruncate的区别?
		delete删除的时候是一条一条的删除记录,它配合事务,可以将删除的数据找回。
		truncate删除,它是将整个表摧毁,然后再创建一张一模一样的表。它删除的数据无法找回。
	注意:delete删除,uid不会重置!而使用truncate操作,uid会重置

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.查询操作

语法:
select [distinct] *| 列名,列名 from 表名 [where条件]
	4.1 简单查询
		1.查询所有商品
			select * from product;
		2. 查询商品名和商品价格
			select pname,price from product;
		3.查询所有商品信息使用表别名
			select * from product as p;
		4.查询商品名,使用列别名
			select pname as p from product; 
		5.去掉重复值(按照价格)
			select distinct(price) from product;
		6.将所有的商品的价格+10进行显示
			select pname,price+10 from product;

在这里插入图片描述
在这里插入图片描述

	4.2 条件查询
		1.查询商品名称为"左慈"的商品信息
			select * from product where paname="zuoci";
		2.查询价格>60元的所有商品信息	
			select * from product where price>60;
		3.查询商品名称含有"士"字的商品信息
			select * from product where pname like '%士%';
		4.查询商品id在(3,6,9)范围内的所有商品信息
			select * from product where pid in(3,6,9);
		5.查询商品名称含有"士"字并且id为6的商品信息
			select * from product where pname like "%士%" and pid=6;
		6.查询id为2或者6的商品信息	
			select * from product where pid=2 or pid=6;

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

	4.3 排序
		1.查询所有的商品,按价格进行排序(升序、降序)
			升序:select * from product order by price asc;
			降序:select * from product order by price desc;
		2.查询名称有"士"的商品信息并且按照价格降序排序
			select * from product where pname like '%士%' order by price desc;

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

	4.4 聚合函数
		1.获得所有商品的价格的总和
			select sum(price) from product;
		2.获得所有商品的平均价格
			select avg(price) from product;
		3.获得所有商品的个数
			select count(*) from product;

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

	4.5 分组操作
			1.添加分类id (alter table product add cid varchar(32);)
			2.初始化数据
			update product set cid='1';
			update product set cid='2' where  pid in (5,6,7);
		1.根据cid字段分组,分组后统计商品的个数。
			select cid,count(*) from product group by cid;
		2.根据cid分组,分组统计每组商品的平均价格,并且平均价格大于20000元。
			select cid,avg(price) from product group by cid having avg(price)>20000;

在这里插入图片描述
在这里插入图片描述

	4.6 查询总结
		select  一般在的后面的内容都是要查询的字段
		from  要查询到表
		where
		group by 
		having  分组后带有条件只能使用having
		order by 它必须放到最后面

Mysql事务简单介绍

https://blog.csdn.net/Bonport/article/details/104782421

简单的50道SQL小练习及答案与详细分析:

地址:
https://blog.csdn.net/Bonport/article/details/104826465

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值