您的位置:首页 > 财经 > 产业 > 深圳网站建设公司的外文名是_哈尔滨建设网站哪家靠谱_百度查重_如何写推广软文

深圳网站建设公司的外文名是_哈尔滨建设网站哪家靠谱_百度查重_如何写推广软文

2025/5/3 18:22:20 来源:https://blog.csdn.net/wjcurry/article/details/147362145  浏览:    关键词:深圳网站建设公司的外文名是_哈尔滨建设网站哪家靠谱_百度查重_如何写推广软文
深圳网站建设公司的外文名是_哈尔滨建设网站哪家靠谱_百度查重_如何写推广软文

SQL基础

NOSQL和SQL的区别?

SQL数据库,指关系型数据库 - 主要代表:SQL Server,Oracle,MySQL(开源),PostgreSQL(开源)。

关系型数据库存储结构化数据。这些数据逻辑上以行列二维表的形式存在,每一列代表数据的一种属性,每一行代表一个数据实体。

NoSQL指非关系型数据库 ,主要代表:MongoDB,Redis。NoSQL 数据库逻辑上提供了不同于二维表的存储方式,存储方式可以是JSON文档、哈希表或者其他方式。

数据库三大范式是什么?

第一范式(1NF):要求数据库表的每一列都是不可分割的原子数据项。

第二范式(2NF):在1NF的基础上,非码属性必须完全依赖于候选码(在1NF基础上消除非主属性对主码的部分函数依赖)

第二范式需要确保数据库表中的每一列都和主键相关,而不能只与主键的某一部分相关(主要针对联合主键而言)。

第三范式(3NF):在2NF基础上,任何非主属性 (opens new window)不依赖于其它非主属性(在2NF基础上消除传递依赖

第三范式需要确保数据表中的每一列数据都和主键直接相关,而不能间接相关。

MySQL 怎么连表查询?

数据库有以下几种联表查询类型:

内连接 (INNER JOIN)

左外连接 (LEFT JOIN)

右外连接 (RIGHT JOIN)

1. 内连接 (INNER JOIN)

内连接返回两个表中有匹配关系的行。示例:

2. 左外连接 (LEFT JOIN)

左外连接返回左表中的所有行,即使在右表中没有匹配的行。未匹配的右表列会包含NULL。示例:

3. 右外连接 (RIGHT JOIN)

右外连接返回右表中的所有行,即使左表中没有匹配的行。未匹配的左表列会包含NULL。示例:

内连接:

内连接通过INNER JOIN来实现,它将返回两张表中满足连接条件的数据,不满足条件的数据不会查询出来。

外连接:

外连接通过OUTER JOIN来实现,它会返回两张表中满足连接条件的数据,同时返回不满足连接条件的

数据。外连接有两种形式:左外连接(LEFT OUTER JOIN)、右外连接(RIGHT OUTER JOIN)。

左外连接:可以简称为左连接(LEFT JOIN),它会返回左表中的所有记录和右表中满足连接条件

的记录。

右外连接:可以简称为右连接(RIGHT JOIN),它会返回右表中的所有记录和左表中满足连接条

件的记录

MySQL如何避免重复插入数据?

方式一:使用UNIQUE约束

在表的相关列上添加UNIQUE约束,确保每个值在该列中唯一。例如:

方式二:使用INSERT ... ON DUPLICATE KEY UPDATE

这种语句允许在插入记录时处理重复键的情况。如果插入的记录与现有记录冲突,可以选择更新现有记录:

方式三:使用INSERT IGNORE: 该语句会在插入记录时忽略那些因重复键而导致的插入错误。例如:

CHAR 和 VARCHAR有什么区别?

CHAR是固定长度的字符串类型,定义时需要指定固定长度,存储时会在末尾补足空格。CHAR适合存储长度固定的数据,如固定长度的代码、状态等,存储空间固定,对于短字符串效率较高。

VARCHAR是可变长度的字符串类型,定义时需要指定最大长度,实际存储时根据实际长度占用存储空间。VARCHAR适合存储长度可变的数据,如用户输入的文本、备注等,节约存储空间。

Text数据类型可以无限大吗?

MySQL 3 种text类型的最大长度如下:

TEXT:65,535 bytes ~64kb

MEDIUMTEXT:16,777,215 bytes ~16Mb

LONGTEXT:4,294,967,295 bytes ~4Gb

说一下外键约束

外键约束的作用是维护表与表之间的关系,确保数据的完整性和一致性。让我们举一个简单的例子:

假设你有两个表,一个是学生表,另一个是课程表,这两个表之间有一个关系,即一个学生可以选修多门课程,而一门课程也可以被多个学生选修。在这种情况下,我们可以在学生表中定义一个指向课程表的外键,如下所示:

CREATE TABLE students (

  id INT PRIMARY KEY,

  name VARCHAR(50),

  course_id INT,

  FOREIGN KEY (course_id) REFERENCES courses(id)

);

这里,students表中的course_id字段是一个外键,它指向courses表中的id字段。这个外键约束确保了每个学生所选的课程在courses表中都存在,从而维护了数据的完整性和一致性。

MySQL的关键字in和exist

在MySQL中,IN 和 EXISTS 都是用来处理子查询的关键词,但它们在功能、性能和使用场景上有各自的特点和区别。

IN关键字

IN 用于检查左边的表达式是否存在于右边的列表或子查询的结果集中。如果存在,则IN 返回TRUE,否则返回FALSE。

语法结构:

SELECT column_name(s)

FROM table_name

WHERE column_name IN (value1, value2, ...);

EXISTS关键字

EXISTS 用于判断子查询是否至少能返回一行数据。它不关心子查询返回什么数据,只关心是否有结果。如果子查询有结果,则EXISTS 返回TRUE,否则返回FALSE。

SELECT column_name(s)

FROM table_name

WHERE EXISTS (SELECT column_name FROM another_table WHERE condition);

区别与选择:

性能差异:在很多情况下,EXISTS 的性能优于 IN,特别是当子查询的表很大时。这是因为EXISTS 一旦找到匹配项就会立即停止查询,而IN可能会扫描整个子查询结果集。

使用场景:如果子查询结果集较小且不频繁变动,IN 可能更直观易懂。而当子查询涉及外部查询的每一行判断,并且子查询的效率较高时,EXISTS 更为合适。

NULL值处理:IN 能够正确处理子查询中包含NULL值的情况,而EXISTS 不受子查询结果中NULL值的影响,因为它关注的是行的存在性,而不是具体值

mysql中的一些基本函数,你知道哪些?

一、字符串函数

CONCAT(str1, str2, ...):连接多个字符串,返回一个合并后的字符串。LENGTH(str):返回字符串的长度(字符数)。

SELECT LENGTH('Hello') AS StringLength;

SUBSTRING(str, pos, len):从指定位置开始,截取指定长度的子字符串。

REPLACE(str, from_str, to_str):将字符串中的某部分替换为另一个字符串。

二、数值函数

ABS(num):返回数字的绝对值。

POWER(num, exponent):返回指定数字的指定幂次方。

三、日期和时间函数

NOW():返回当前日期和时间。

CURDATE():返回当前日期。

四、聚合函数

COUNT(column):计算指定列中的非NULL值的个数。

SUM(column):计算指定列的总和。

AVG(column):计算指定列的平均值。

MAX(column):返回指定列的最大值。

MIN(column):返回指定列的最小值。

SQL查询语句的执行顺序怎么样的?

先from 再where 再groupby 再having 再select 再orderby 再limit

-- 在所有的查询结果中,返回前5行记录。

SELECT prod_name FROM products LIMIT 5;

-- 在所有的查询结果中,从第5行开始,返回5行记录。

SELECT prod_name FROM products LIMIT 5,5;

谈谈你对SQL注入的理解

SQL注入的原理是将SQL代码伪装到输入参数中,传递到服务器解析并执行的一种攻击手法

WHERE和HAVING有什么区别?

WHERE是一个约束声明,使用WHERE约束来自数据库的数据,WHERE是在结果返回之前起作用的, WHERE中不能使用聚合函数。

HAVING是一个过滤声明,是在查询返回结果集以后对查询结果进行的过滤操作,在HAVING中可以使用聚合函数。另一方面,HAVING子句中不能使用除了分组字段和聚合函数之外的其他字段。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com