江苏省住房与城乡建设部网站,公众号做电影网站,摄影师个人网站模板,企业百度网站怎么做的常用数据库#xff1a; 数据库#xff08;Database#xff09;是按照数据结构来组织、存储和管理数据的仓库#xff0c;它是长期存储在计算机内、有组织、有结构的数据集合。数据库是信息系统的核心部分#xff0c;现代软件系统中大量采用了数据库管理系统#xff08;DBM…常用数据库 数据库Database是按照数据结构来组织、存储和管理数据的仓库它是长期存储在计算机内、有组织、有结构的数据集合。数据库是信息系统的核心部分现代软件系统中大量采用了数据库管理系统DBMS来管理和操作数据。 MySQL/MariaDB由于其开源免费和社区支持成为了最流行的关系型数据库之一。Oracle商业数据库广泛用于企业级应用。Microsoft SQL Server商业数据库主要运行在 Windows 操作系统上广泛用于企业级应用。PostgreSQL开源免费的关系型数据库具有高级特性例如事务、联接和触发器。IBM DB2商业数据库主要运行在 IBM 的操作系统上如 AIX、IBM i 和 z/OS 等。SQLite开源免费的嵌入式数据库可以嵌入到其他应用程序中使用。MongoDB非关系型数据库主要用于存储非结构化数据具有高扩展性和灵活性。
平时最常见的是MySQL数据库是一个流行的关系型数据库管理系统是开放源代码的。它支持各种操作系统并提供了一组丰富的工具和库用于处理大量的数据。MySQL 使用 SQL 语言来管理和查询数据。本文以MySQL数据库为例讲解数据库表与表的连接操作。
简单数据库连接 在数据库中有多种连接Join的方式可以使用其中最常见的包括内连接左连接右连接外连接。 首先创建两个表t1,t2表结构如下图所示 sql语句如下
use student;
create table t1(id INT PRIMARY KEY AUTO_INCREMENT,name VARCHAR(50),age INT);create table t2(id INT PRIMARY KEY AUTO_INCREMENT,name VARCHAR(50),address VARCHAR(50));insert into t1 value(1,张三,52);
insert into t1 value(2,王五,25);
insert into t1 value(3,李四,36);
insert into t2 value(1,张三,陕西);
insert into t2 value(2,王五,北京);
insert into t2 value(3,李四,山东);
insert into t2 value(4,老王t1,河南);笛卡尔积Join 笛卡尔积是指将两个表中的每一行都进行组合生成一个新的表。新表的行数等于两个原表行数的乘积。 SELECT * FROM t1, t2; or
select * from t1 join t2结果如下所示
内连接Inner Join 它只返回两个表中都有匹配的行。具体来说它只返回左边表和右边表都满足条件的记录。 select * from t1 inner join t2 on t1.id t2.id;结果如下
左连接Left Join 它返回左边表的所有记录以及右边表中与左边表匹配的记录。如果右边表中没有匹配的记录则以 NULL 值填充。 select * from t2 left join t1 on t1.id t2.id结果如下所示 t1表中没有老王所以t1表中老王的属性设为NULL。 右连接Right Join 它返回右边表的所有记录以及左边表中与右边表匹配的记录。如果左边表中没有匹配的记录则以 NULL 值填充。 select * from t1 right join t2 on t1.id t2.id和左连接基本一样返回t2表中所有值t1表中老王的属性设为NULL。 外连接union 它包含左连接和右连接以及一些没有匹配的记录。它分为左外连接和右外连接左外连接返回左边表的所有记录和右边表中与左边表匹配的记录右外连接返回右边表的所有记录和左边表中与右边表匹配的记录。 SELECT *
FROM t1
LEFT JOIN t2 ON t1.id t2.id
UNION
SELECT *
FROM t1
RIGHT JOIN t2 ON t1.id t2.id
WHERE t1.id IS NULL;子表查询
子查询是指在查询语句内部使用另一个完整的 SELECT 语句子查询一般嵌套在 WHERE 子句中作为过滤条件。子查询常常用于获取符合某些条件的数据行。
例如假设有一个学生表 student 和一个成绩表 score现在要查询出所有及格的学生的信息可以使用子查询实现如下
SELECT *
FROM student
WHERE id IN (SELECT id FROM score WHERE score 60);在这个查询中内部的子查询 SELECT id FROM score WHERE score 60 返回了所有及格的学生的 id然后外部的查询根据这些 id 查询出对应的学生信息。
concat 数据库中的concat()函数可以用来连接两个或多个字符串在MySQL中它的语法如下
concat(str1,str2,...)用t1和t2表举个例子
select concat(id, ,name) as fullname from t1;这个查询会将t1表里的id和name属性拼接起来连成一个字符串并将结果显示在名为fullname的新列中结果如下 总结 这里总结一下sql语句中常用的关键字如果能灵活在数据库中使用会很方便。
SELECT用于查询数据库中的数据。FROM指定数据表。WHERE用于筛选符合条件的记录。GROUP BY将查询结果按照指定的列进行分组。HAVING对分组后的结果进行筛选。ORDER BY对查询结果进行排序。JOIN用于连接两个或多个数据表。UNION用于合并两个或多个SELECT语句的结果集。DISTINCT用于返回不同的值去除重复的记录。LIKE用于模糊匹配查询。IN用于指定一组值。NOT用于否定一个条件。EXISTS用于判断一个子查询是否返回数据。CONCAT用于将两个或多个字符串拼接起来。SUM、AVG、COUNT、MAX、MIN用于对查询结果进行聚合计算。AS用于给查询结果指定别名。