MySQL学习日记2

MySQL数据表的增、删、改、查

SQL语句对大小写不敏感


1. 插入

使用 insert into 关键字

insert into (属性名,属性名…) values(值,值…);

insert into (ct_id,ct_name) values (1,'玩具');  

如果想要插入多行

insert into (ct_id,ct_name) values (2,'文具') ,(3,'书籍');

如果插入成功,MySQL会提醒:
Records: 3 Duplicates: 0 Warnings: 0
重复插入会报的错误:
mysql> insert into commoditytype (ct_id,ct_name) values (1,‘服装’);
ERROR 1062 (23000): Duplicate entry ‘1’ for key ‘PRIMARY’

2. 删除

使用 delete 关键字

delete from 表名 where 删除条件;

delete from commoditytype where ct_id=4;

如果不写删除条件,则会将表中记录全部删除。

3. 修改

使用 update 关键字

update 表名 set 修改的值 where 修改条件;

update commoditytype set ct_name='书籍' where ct_id=3;
Rows matched: 1  Changed: 1  Warnings: 0

如果不写修改条件,则会将表中数据修改成一样的值。

delete from commoditytype ;

4. 查

单表查询

使用select关键字

mysql> #mysql中 使用’'来标识值 使用``来标识字段或者表名称

select ‘helloworld’ ;
±-----------+
| helloworld |
±-----------+
| helloworld |
±-----------+
1 row in set (0.00 sec)

在这里select相当于输出

查询全表:

select * from 表名;

select * from commoditytype;
其中,(*)是选取所有列

查询想要的字段:
select 字段名 from 表名 where 查询条件;

在查询多个字段时,字段名用逗号(,)隔开。

select c_name,c_madein,c_outprice-c_inprice 
from commodity
where c_outprice-c_inprice>100;

MySQL中可以进行简单的四则运算。
当null参与运算的时候,结果也为null

在查询中,DISTINCT关键字可以去掉重复数据
select distinct 字段名,字段名… from 表名;

select distinct c_type from commodity;
1.带关系运算符和逻辑运算符的条件数据查询
算数运算符描述逻辑运算符描述
>大于AND(&&)逻辑与
<小于OR(
=等于XOR逻辑异或
!=(<>)不等于NOT(!)逻辑非
<=小于等于
>=大于等于
select c_name,c_inprice
from commodity
where (c_inprice>=10 and c_inprice<=100) and c_type=3;
2.带BETWEEN AND关键字的条件查询语句

between and 是包括两个数字的
不是10-100之间 c_inprice<=10 or c_inprice>=100
between 10 and 100 是包括10和100的

select c_name,c_inprice
from commodity
where (c_inprice between 10 and 100) and c_type=3;

not between and 是这个区间范围外的查询
not between 10 and 100是不包括10和100的

select c_name,c_inprice
from commodity
where c_inprice not between 10 and 100;
3.带IS NULL关键字的条件查询语句

is null 为空判断
is not null 非空判断

select c_name,c_type
from commodity
where c_outprice is null;
4.带IN关键字的条件查询语句

in 关键字 用来检索特点的某些值

select c_name,c_inprice
from commodity
where c_inprice in (10,20,30,40,50);

不在以上这些数字里面用 not in

select c_name,c_inprice from commodity
where c_inprice not in (10,20,30,40,50);

c_inprice in (10,20,30,40,50)相当于c_inprice=10 or c_inprice=20…
而c_inprice not in (10,20,30,40,50)相当于c_inprice<>10 and c_inprice<>20…

5.带LIKE关键字的条件查询语句;

使用like关键字,进行模糊匹配
LIKE要和通配符一起用,不然没有用通配符的LIKE效果等同于“=”,常用的通配符有“_”和“%”;
_:表示任意单个字符。匹配单个任意字符,它常用来限制表达式的字符长度语句:(可以代表一个中文字符)
%:表示任意个或多个字符。可匹配任意类型和长度的字符。
比如"_a%"表示第一个字母任意,第二个字母必须是a,后面字母任意,复合的结果有ward,martin,james等

select c_name from commodity
where c_name like '%玩具%';

like ‘孙’ 效果等同于 =‘孙’
like ‘%’ 效果等同于 查询所有

如果要查"%"或者 "",使用"escape",转义字符后面的"%“或”“就不作为通配符了,注意:前面没有转义字符的”%“和”_"仍然起通配符作用

6. 排序

排序的关键字是ORDER BY,后面跟ASC(升序,可以不写默认)
或者DESC逆序;

select c_name,c_inprice from commodity
order by c_inprice ;

在排序中,如果有空值,ASC(升序)中空值排在最前,DESC(降序)中空值排在最后。

ORDER BY 可与LIMIT关键字一直使用。LIMIT 子句可以被用于强制 SELECT 语句返回指定的记录数。

举个例子吧:
select * from table limit 2; 只输出前2行;
select * from table limit 0,5;从第0行开始,输出5行;
select * from table order by sal limit 1;按照sal列升序排序

select c_name,c_inprice
from commodity
order by c_inprice desc
limit 5;

可以使用它来做排行榜,来进行分页。
如果使用它来分页,随着数据量的增加,页数会越来越多,就是越往后分页,LIMIT语句的偏移量就会越大,速度也会明显变慢。这时要
数据库优化
所以在分页的时候,最好不要直接使用limit,而是先获取到索引,使用limit来获取数据。效果会好很多。

其中尽量避免使用LIKE关键字和通配符,在建有索引的字段上尽量不要使用函数进行操作,是数据库优化的一种方法。

7. 统计函数

COUNT()函数:统计记录数;

select count(*) from commodity where c_type=1;

count(*)使用方式,实现对表中记录进行统计,不管是否包含NULL还是NOT NULL
count(field)使用方法对指定字段进行统计,将忽略NULL值!

AVG()函数:求平均值;
SUM()函数:求和;
MAX()函数:求最大数;
MIN()函数:求最小数;

select avg(c_inprice) from commodity where c_type=4;
select avg(c_outprice),sum(c_outprice) from commodity;

其中,统计函数会自动去除条件中的null值。

count和其他聚合函数的区别:
当没有结果的时候 其他函数返回null count返回0

8. 分组

group by 进行分组查询
group by 一般和 聚合函数一起出现

select * from commodity group by c_type;
select c_type, sum(c_inprice),avg(c_inprice),max(c_outprice)
from commodity
group by c_type;

在mysql中,要对分组查询结果进行条件限制查询,不能使用WHERE关键字,需要使用HAVING关键字。

select c_type , avg(c_inprice)
from commodity
group by c_type
having avg(c_inprice)>100;

注意!having中的条件,即使查询条件没有出现在结果表中,依然可以查询出结果。

select c_type
from commodity
group by c_type
having avg(c_inprice)>100;

这个having中不需要出现在结果表中 是从MySQL5.7版本才开始支持的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: MySQL宋红康学习日记是宋红康在学习MySQL数据库过程中记录的笔记和心得体会。在这个学习日记中,宋红康详细地记录了自己的学习过程以及遇到的问题和解决方法。 首先,宋红康在学习日记中介绍了MySQL数据库的基本概念和原理。他学习MySQL的架构和组成部分,包括服务器端、客户端和存储引擎。他还学习MySQL的常用数据类型和索引类型,了解了MySQL如何存储和管理数据。 其次,宋红康记录了自己学习MySQL的过程和方法。他通过阅读官方文档、参考书籍和观看教学视频等途径,系统地学习MySQL的各种功能和语法。他还提到自己在学习过程中遇到的一些问题,如数据查询和更新的语法错误,以及性能优化的挑战等。他通过查找资料和请教他人的帮助,成功地解决了这些问题,并对解决方法进行总结和归纳。 此外,宋红康还分享了自己在使用MySQL时的一些经验和技巧。他介绍了一些常用的MySQL命令和操作,如创建数据库、建、插入和查询数据等。他还分享了一些优化数据库性能的方法,如使用索引、合理设计数据结构和加强查询语句的效率等。这些经验和技巧对于其他学习MySQL的人来说是非常有价值的。 最后,在学习日记的结尾,宋红康总结了自己在学习MySQL过程中的收获和感受。他认为MySQL是一种功能强大、应用广泛的数据库系统,掌握MySQL的技能对于他的职业发展非常重要。在学习的过程中,他不仅加深了对数据库原理和操作的理解,还培养了自己分析和解决问题的能力。 总之,MySQL宋红康学习日记是宋红康在学习MySQL过程中的记录和总结,对于其他学习MySQL的人来说是一份宝贵的学习资料和参考指南。 ### 回答2: MySQL宋红康学习日记 今天我开始学习MySQL数据库,对于数据库的概念和作用有了初步了解。数据库是一个存储和管理数据的系统,可以方便地对数据进行增删改查操作。而MySQL是目前最流行的关系型数据库管理系统之一。 首先,我学习MySQL的安装和配置。通过官方网站下载并安装了MySQL,然后进行了一些基本的配置,如设置用户名和密码等。安装完成后,我尝试连接并登录到MySQL服务器,成功进入了MySQL的命令行界面。 接下来,我学习了数据库的创建和管理。在MySQL中,可以使用CREATE DATABASE语句来创建一个新的数据库。我创建了一个名为“mydb”的数据库,并使用USE语句将其设为当前数据库。然后我学习了如何创建格,格是用来存储数据的基本单位,可以通过CREATE TABLE语句定义格的结构和字段。 在创建格后,我学习了如何向格中插入数据。使用INSERT INTO语句可以将数据插入到格中的指定字段中。我尝试了一些简单的插入操作,并成功地将一些测试数据插入到了格中。 除了插入数据,我还学习了如何查询数据。可以使用SELECT语句从格中提取数据。通过指定字段和条件,可以过滤和排序所查询的结果。我尝试了一些简单的查询操作,查找了符合条件的数据,并进行了一些排序操作。 在学习了基本的增删改查操作后,我对MySQL学习有了初步的了解。下一步,我将继续学习MySQL的高级特性和优化技巧,以提高数据库的性能和效率。我相信通过不断的学习和实践,我能够更加熟练地使用MySQL,并能够应对更复杂的数据库操作。 ### 回答3: MySQL宋红康学习日记是宋红康学习MySQL数据库的记录和总结。MySQL是一种开源的关系型数据库管理系统,被广泛应用于网站开发、数据分析和企业应用等领域。宋红康根据自己的学习经历和体会,记录了他在学习MySQL过程中的所思所感。 学习MySQL的第一天,宋红康首先了解了MySQL的基本概念和特点。MySQL是使用C和C++编写的,支持多用户多线程的数据库管理系统。它具有高性能、稳定可靠等特点,可以处理大量的数据和高并发的请求。宋红康对MySQL的这些特点示非常欣赏,并意识到MySQL在现代互联网时代的重要性。 第二天,宋红康开始学习MySQL的基本操作。他学习了如何创建数据库、创建和插入、更新、删除数据等基本操作。他通过实际操作,深入理解了SQL语句的执行过程和结果。 第三天,宋红康学习了数据库的设计和规范化。他了解了关系型数据库的基本原理和范式理论。他明白了数据库设计的重要性,以及遵循规范化原则对提高数据存储效率和数据一致性的重要性。 第四天,宋红康开始学习MySQL的高级应用。他学习了索引的创建、查询优化和事务处理等内容。他深入研究了索引的原理和使用方法,并学会了如何通过优化SQL语句提高查询性能。他还了解了事务的概念和特点,并通过实例演示了事务的使用方法。 第五天,宋红康开始进行MySQL的实战练习。他通过编写简单的应用程序,实现了与MySQL数据库的交互。他学会了使用编程语言与MySQL进行连接,并通过SQL语句实现数据库的增删改查操作。他深刻体会到了MySQL在实际应用中的价值和重要性。 总结起来,宋红康的MySQL学习日记记录了他在学习过程中的所学所悟。通过系统学习和实践,他对MySQL的基本概念、基本操作、数据库设计、高级应用和实际应用都有了较深入的了解。这些学习将为他今后的数据库工作奠定了坚实的基础。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值