MySQL边学边记

DDL
操作数据库和表

查看—SHOW DESC
创建—CREATE
修改 —ALTER
删除—DROP

SHOW datebase
DESC student;

查看数据库/表的结构

CREATE datebase
CREATE TABLE 表名(
	列名1 数据类型1,
	列名2 数据类型2...
	列名n 数据类型n
	);

创建数据库/表

ALTER DATABASE 数据库名称 CHARACTER SET 字符集名称;
ALTER TABLE 表名 CHARACTER SET 字符集名称;

修改数据库结构/表结构

DROP DATABASE 数据库名称
DROP TABLE 表名;

删除数据库/表

DML
增删改表中的数据

DQL
查询表中的数据

SELECT *FROM student2; --查询student2 表中的所有表数据;

DQL排序

SELECT *FROM student2 order by match ASC/DESC;

将student2表中对match数据进行(ASC)升序排序(DESC)降序排序

多重排序

SELECT *FROM student2 order by match ASC ,English DESC;

如果match数据大小相等,则按English的降序排序。

聚合函数
将一列数据作为一个整体进行计算

SELECT COUNT(match) FROM student2;

将student2 中的match数据进行个数计算

COUNT计算个数
MAX最大值
MIN最小值
SUM计算和
AVG计算平均数

聚合函数的计算会排除null值
解决:

SELECT COUNT(IFNULL(match,0)) FROM student2;
SELECT COUNT(*) FROM student2;
只要有一列的值不为null就算进去

分组查询

SELECT sex ,AVG(math) FROM student2 GROUP BY sex;

查询sex表 然后按sex分组,最后再将分组的查询出match的平均值

SELECT sex ,AVG(math) FROM student2 WHERE math>70 GROUP BY sex;

查询sex表 ,将分数大于70的进行按sex分组,最后再将分组的查询出match的平均值

SELECT sex ,AVG(math) ,COUNT(id) FROM student2 GROUP BY sex HAVING COUNT(id)>2; 

查询sex表 ,将分数大于70的进行按sex分组,最后再将分组的查询出match的平均值,分完组再进行count(id)是否大于2的判断。

where和having的区别
1.where是在分组前进行判断,如果不满足,不进行分组,having是在分组后进行判断,如果不满足,查询不出来
2.where不可以跟聚合函数 having可以

分页查询

SELECT *FROM student2 LIMIT 0,3;

语法:LIMIT 开始的索引,每页查询的个数
查询student2表然后从0开始查询3条记录
公式:开始的索引=(当前页面-1)*每页的条数

约束

  • 非空约束
  • 唯一约束
  • 主键约束
  • 外键约束
    非空约束
    NOT NULL
    使用该约束表中列的值就不能为空了
CREATE TABLE yue1(
id INT UNIQUE,
NAME VARCHAR(20) NOT NULL
);
创建一个非空约束的表yue
ALTER TABLE yue MODIFY NAME VARCHAR(20);
删除非空约束
ALTER TABLE yue MODIFY NAME VARCHAR(20) NOT NULL;
添加非空约束

唯一约束
UNIQUE
使用该约束列中的数据就有且只能有一个,但null不属于唯一,因为他是不确定的

CREATE TABLE yue2(
id INT UNIQUE,
NAME VARCHAR(20) UNIQUE
);
创建唯一约束
ALTER TABLE yue2 DROP INDEX NAME; 
ALTER TABLE yue MODIFY NAME VARCHAR(20) UNIQUE;

主键约束
PRIMARY KEY
使用该约束 非空且唯一,一般在id列使用

CREATE TABLE yue3(
id INT UNIQUE PRIMARY KEY,
NAME VARCHAR(20)
);
ALTER TABLE yue3 DROP PRIMARY KEY;
ALTER TABLE yue3 MODIFY id INT PRIMARY KEY;

外键约束
使用该约束就可以使得本表中的一列数据与其他表中的数据进行关联

CONSTRAINT 外键名(自定义) FOREIGN KEY (列名) REFERENCES 关联的表名(列名)
CREATE TABLE employe(
id INT PRIMARY KEY AUTO_INCREMENT,
NAME VARCHAR(20),
dropid INT ,
CONSTRAINT emp FOREIGN KEY (dropid) REFERENCES drops(id)
);

INSERT INTO employe VALUE(NULL,"张三",1),(NULL,"li",1),(NULL,"wang",2);
CREATE TABLE drops(
id INT PRIMARY KEY AUTO_INCREMENT,
NAME VARCHAR(20),
addlist VARCHAR(10)
);

SELECT *FROM employe;
INSERT INTO drops VALUE(NULL,"研发部","深圳"),(NULL,"销售部","深圳");

ALTER TABLE employe DROP FOREIGN KEY emp;
ALTER TABLE employe ADD CONSTRAINT emp FOREIGN KEY (dropid) REFERENCES drops(id);
  • 自动增长auto
  • 一般在主键上添加自动增长即可输入为null自动填充下一个数字,只能是int
  • 也可以手动填充
CREATE TABLE yue4(
id INT PRIMARY KEY AUTO_INCREMENT,
NAME VARCHAR(20)
);
ALTER TABLE yue4 MODIFY id INT;
ALTER TABLE yue4 MODIFY id INT AUTO_INCREMENT;
  • 外键的联级操作
  • 可以讲外键和本列关联,外键的值改变,本列也会同样该写
  • ALTER TABLE employe ADD CONSTRAINT emp FOREIGN KEY (dropid) REFERENCES drops(id) ON UPDATE CASCADE;
  • 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、付费专栏及课程。

余额充值