📅  最后修改于: 2020-11-19 09:24:21             🧑  作者: Mango
下面列出了最常见的MySQL面试问题和答案。
MySQL是一个多线程,多用户的SQL数据库管理系统,安装量超过1100万。它是世界上第二大最受欢迎和广泛使用的开源数据库。有趣的是,如何为该查询语言指定MySQL名称。 My是由联合创始人Michael Widenius的女儿的名字创造的,而SQL是Structured Query Language的缩写。对于开发人员而言,使用MySQL是免费的,但是企业必须向Oracle支付许可费。
以前,MySQL最初是由一家营利性公司MySQL AB所拥有,然后由Sun Microsystems收购,然后由Oracle收购Sun Microsystems,因此Oracle目前拥有MySQL。
MySQL是基于结构化查询语言的Oracle支持的关系数据库管理系统(RDBMS)。 MySQL支持多种操作系统,其中最著名的包括Windows,Linux和UNIX。尽管可以使用MySQL开发各种应用程序,但它仅用于Web应用程序和在线发布。它是称为Lamp的开源企业的基本组成部分。
什么是灯?
Lamp是用于Web开发的平台。 Lamp使用Linux,Apache,MySQL和PHP作为操作系统,Web服务器,数据库和面向对象的脚本语言。因此缩写为LAMP。
MySQL用C和C++编写,其SQL解析器用yacc编写。
MySQL具有以下技术规格-
SQL被称为标准查询语言。它用于与MySQL之类的数据库进行交互。 MySQL是一个存储各种数据并保持其安全性的数据库。
需要PHP脚本来存储和检索数据库中的值。
SQL是一种计算机语言,而MySQL是一种软件或应用程序
SQL用于创建数据库管理系统,而MySQL用于启用数据处理,存储,删除和修改数据
数据库和表之间的主要区别是。区别如下:
首先,MYSQL服务器可供开发人员和小型企业免费使用。
MySQL服务器是开源的。
MySQL的社区是巨大且支持的。因此,有关MySQL的任何帮助都将尽快解决。
MySQL具有很稳定的版本,因为MySQL进入市场已有很长时间了。先前版本中出现的所有错误均已被不断删除,并且每次更新后都提供非常稳定的版本。
MySQL数据库服务器非常快速,可靠并且易于使用。您可以轻松使用和修改软件。可以从互联网上免费下载MySQL软件。
默认情况下,有许多表仍然存在。但是,MyISAM是MySQL中使用的默认数据库引擎。存在五种类型的表:
在我们的系统上安装MySQL可以使我们安全地创建,删除和测试Web应用程序,而不会影响实时网站的数据。在我们的系统上有很多使用MySQL的方法,但是最好的方法是手动安装它。手动安装使我们可以了解有关系统的更多信息,并提供对数据库的更多控制。要查看Windows中MySQL的安装步骤,请转到以下链接:
https://www.javatpoint.com/how-to-install-mysql
手动安装MySQL有几个好处:
我们可以使用以下命令在Linux上检查MySQL版本:
mysql -v
如果我们在Windows中使用MySQL,则打开MySQL命令行工具将显示版本信息,而不使用任何标志。如果我们想了解有关服务器信息的更多信息,请使用以下语句:
SHOW VARIABLES LIKE "%version%";
它将返回如下输出:
在此输出中,我们可以看到有关已安装的MySQL软件的其他版本信息,例如innodb_version,protocol_version,version_ssl_library等。
列是表中的一系列单元格,为表中的每一行存储一个值。我们可以使用ALTER TABLE语句在现有表中添加列,如下所示:
ALTER TABLE table_name
ADD COLUMN column_name column_definition [FIRST|AFTER existing_column];
要了解更多信息,请单击此处。
我们可以使用Drop Table语句删除MySQL中的表。该语句从数据库中永久删除表的完整数据,包括结构和定义。因此,删除表时需要小心。使用该语句后,我们无法在MySQL中恢复该表。声明如下:
DROP TABLE table_name;
要了解更多信息,请单击此处。
外键用于将一个或多个表链接在一起。它与另一个表的主键字段匹配以链接两个表。它使我们能够与表创建父子关系。我们可以通过两种方式向表添加外键:
以下是使用CREATE TABLE或ALTER TABLE语句定义外键的语法:
[CONSTRAINT constraint_name]
FOREIGN KEY [foreign_key_name] (col_name, ...)
REFERENCES parent_tbl_name (col_name,...)
要了解更多信息,请单击此处。
MySQL允许我们主要通过两种方式与数据库服务器连接:
使用命令行工具
我们可以在MySQL安装文件夹的bin目录中找到命令行客户端工具。要调用此程序,我们需要浏览安装文件夹的bin目录并键入以下命令:
mysql
接下来,我们需要运行以下命令以连接到MySQL服务器:
shell>mysql -u root -p
最后,输入所选用户帐户root的密码,然后按Enter:
Enter password: ********
连接成功后,我们可以使用以下命令来使用:
USE database_name;
使用MySQL Workbench
我们可以使用MySQL Workbench与数据库建立连接,只需单击加号(+)图标或导航到菜单栏->数据库->连接到数据库,将出现以下屏幕。现在,您需要填写所有详细信息以建立连接:
一旦完成此设置,它将打开MySQL Workbench屏幕。现在,我们可以双击新创建的连接以连接数据库服务器。
要了解更多信息,请单击此处。
我们可以使用下面的语句在新的记事本文件中更改MySQL的root密码,并使用适当的名称保存它:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword';
接下来,打开命令提示符并导航到MySQL目录。现在,复制以下文件夹并将其粘贴到我们的DOS命令中,然后按Enter键。
C:\Users\javatpoint> CD C:\Program Files\MySQL\MySQL Server 8.0\bin
接下来,输入以下语句以更改密码:
mysqld --init-file=C:\\mysql-notepadfile.txt
最后,我们可以使用该新密码以root用户身份登录MySQL服务器。启动MySQL服务器后,将删除C:\ myswl-init.txt文件以确保更改密码。
要了解更多信息,请单击此处。
要在MySQL Workbench中创建新数据库,我们首先需要启动MySQL Workbench并使用用户名和密码登录。转到导航选项卡,然后单击架构菜单。右键单击Schema菜单下的,然后选择Create Schema或单击数据库图标(红色矩形),如以下屏幕所示。
出现一个新的弹出屏幕,我们需要在其中填写所有详细信息。输入详细信息后,单击“应用”按钮,然后单击“完成”按钮以完成数据库创建。
要了解更多信息,请单击此处。
启动MySQL Workbench,然后转到Navigation选项卡,然后单击Schema菜单,其中显示了所有先前创建的数据库。选择任何数据库,然后双击它。它将显示子菜单,我们需要在其中选择Tables选项。
选择表子菜单,右键单击它,然后选择创建表选项。我们还可以单击“创建新表”图标(以红色矩形显示)来创建表。它将打开新的弹出屏幕,我们需要在其中填写所有详细信息以创建表格。在这里,我们将输入表名和列详细信息。输入详细信息后,单击“应用”按钮,然后单击“完成”按钮以完成表的创建。
要了解更多信息,请单击此处。
有时我们的表名是无意义的。在这种情况下,我们需要更改或重命名表名称。 MySQL提供以下语法来重命名当前数据库中的一个或多个表:
mysql> RENAME old_table TO new_table;
如果要更改多个表名,请使用以下语法:
RENAME TABLE old_tab1 TO new_tab1,
old_tab2 TO new_tab2, old_tab3 TO new_tab3;
要了解更多信息,请单击此处。
有时由于数据库名称无意义,我们需要更改或重命名数据库名称。要重命名数据库名称,我们首先需要在MySQL服务器中创建一个新数据库。接下来,MySQL提供mysqldump shell命令来创建所选数据库的转储副本,然后将所有数据导入到新创建的数据库中。以下是使用mysqldump命令的语法:
mysqldump -u username -p "password" -R oldDbName > oldDbName.sql
现在,使用以下命令将数据导入到新创建的数据库中:
mysql -u username -p"password" newDbName < oldDbName.sql
在MySQL中导入数据库是将数据从一个地方移动到另一个地方的过程。这是备份必要数据或在不同位置之间传输数据的非常有用的方法。例如,我们有一个通讯录数据库,这对于将其保存在安全的地方至关重要。因此,我们需要将其导出到一个安全的地方,每当它从原始位置丢失时,我们都可以使用导入选项将其还原。
在MySQL中,我们可以通过两种方式导入数据库:
要阅读有关导入数据库的更多信息,请单击此处。
创建表时,我们错误地保留了其中一个列名。要在MySQL中更改或重命名现有的列名,我们需要一起使用ALTER TABLE和CHANGE命令。以下是用于在MySQL中重命名列的语法:
ALTER TABLE table_name
CHANGE COLUMN old_column_name new_column_name column_definition [FIRST|AFTER existing_column];
假设该列的当前名称是S_ID,但是我们想用一个更合适的标题Stud_ID来更改它。我们将使用以下语句更改其名称:
ALTER TABLE Student CHANGE COLUMN S_ID Stud_ID varchar(10);
我们可以使用ALTER TABLE语句删除,删除或删除现有表中的一个或多个列,如下所示:
ALTER TABLE table_name DROP COLUMN column_name1, column_name2....;
要了解更多信息,请单击此处。
我们可以使用INSERT STATEMENT在MySQL表中插入数据。此语句使我们可以在表中插入单行或多行。以下是将记录插入表中的基本语法:
INSERT INTO table_name ( field1, field2,...fieldN )
VALUES ( value1, value2,...valueN );
如果我们要在一个表中插入多行,请使用以下语法:
INSERT INTO table(field1, field2,...fieldN)
VALUES
(value1, value 2, ...),
(value1, value2, ...),
...
(value1, value2, ...);
要了解更多信息,请单击此处。
我们可以使用数据库内的DELETE STATEMENT从MySQL表中删除一行。以下是MySQL中DELETE语句从表中删除一个或多个行的通用语法:
DELETE FROM table_name WHERE Condition_specified;
注意,如果我们没有使用语法指定WHERE子句,则此语句将从给定表中删除所有记录。
要了解更多信息,请单击此处。
我们可以使用JOIN子句在MySQL中连接两个或多个表。 MySQL允许各种类型的JOIN子句。这些子句连接多个表,并且仅返回与所有表中的值和属性相同的记录。以下是在MySQL中联接两个或多个表的四种简单方法:
要了解更多信息,请单击此处。
有时我们需要从三个或更多表中获取数据。有两种类型可以执行这些类型的联接。假设我们有三个表,分别为Student,Marks和Details。
假设学生有(stud_id,name)列,Marks有(school_id,stud_id,scores)列,Details有(school_id,address,email)列。
1.使用SQL Join子句
这种方法类似于我们连接两个表的方式。以下查询从三个表返回结果:
SELECT name, scores, address, email FROM Student s
INNER JOIN Marks m on s.stud_id = m.stud_id
INNER JOIN Details d on d.school_id = m.school_id;
2.使用亲子关系
这是联接两个以上表的另一种方法。在上表中,我们必须创建一个父子关系。首先,将X列创建为一个表中的主键,并将其作为另一表中的外键。因此,stud_id是Student表中的主键,并且将是Marks表中的外键。接下来,school_id是Marks表中的主键,并且是Details表中的外键。以下查询从三个表返回结果:
SELECT name, scores, address, email
FROM Student s, Marks m, Details d
WHERE s.stud_id = m.stud_id AND m.school_id = d.school_id;
要阅读有关外键的更多信息,请单击此处。
我们可以使用SET和WHERE子句附带的UPDATE语句更新表中的现有记录。 SET子句更改指定列的值。 WHERE子句是可选的,用于指定条件。此语句还可用于一次更改单行或多行中一个或多个列中的值。以下是用于将数据修改到MySQL表中的UPDATE命令的通用语法:
UPDATE table_name
SET field1=new-value1, field2=new-value2, ...
[WHERE Clause]
要了解更多信息,请单击此处。
MySQL Workbench是用于在MySQL数据库上工作的统一可视数据库设计或GUI工具。它由Oracle开发和维护,提供SQL开发,数据迁移以及用于服务器配置,用户管理,备份等的综合管理工具。我们可以使用此服务器管理来创建新的物理数据模型,ER图和SQL开发。它适用于所有主要操作系统。 MySQL从MySQL Server v5.6及更高版本开始为其提供支持。
主要提供三个版本,如下所示:
要了解更多信息,请单击此处。
MySQL主键是字段的单个或组合,用于唯一地标识表中的每个记录。主键列不能为null或为空。我们可以使用ALTER TABLE语句从表中删除或删除主键。以下语法用于删除主键:
ALTER TABLE table_name DROP PRIMARY KEY;
要了解更多信息,请单击此处。
存储过程是我们保存在数据库中的一组SQL语句。 SQL查询(包括INSERT,UPDATE,DELETE等)可以是存储过程的一部分。一个过程使我们可以通过执行一条语句来反复使用相同的代码。它存储在数据库数据字典中。
我们可以使用以下语法创建存储过程:
CREATE PROCEDURE procedure_name [ (parameter datatype [, parameter datatype]) ]
BEGIN
Body_section of SQL statements
END;
该语句可以通过参数返回一个或多个值,也可以不返回任何结果。以下示例对其进行了更清晰的说明:
DELIMITER $$
CREATE PROCEDURE get_student_info()
BEGIN
SELECT * FROM Student_table;
END$$
要了解更多信息,请单击此处。
我们可以通过简单的CALL查询在MySQL中执行存储过程。该查询采用存储过程的名称以及我们需要传递给它的所有参数。以下是执行存储过程的基本语法:
CALL stored_procedure_name (argument_list);
让我们通过以下示例了解它:
CALL Product_Pricing (@pricelow, @pricehigh);
在这里,名为Product_Pricing的存储过程计算并返回最低和最高产品价格。
视图是一个数据库对象,其值基于基表。它是由查询通过联接一个或多个表创建的虚拟表。它的操作类似于基表,但不包含其自身的任何数据。如果基础表中发生任何更改,则相同的更改也会反映在视图中。
以下是在MySQL中创建VIEW的一般语法:
CREATE [OR REPLACE] VIEW view_name AS
SELECT columns
FROM tables
[WHERE conditions];
要了解更多信息,请单击此处。
触发器是数据库中的过程代码,只要数据库中特定表或视图上的某些事件发生,它就会自动调用。可以在将记录插入表中或更新任何列时执行该命令。我们可以使用以下语法在MySQL中创建触发器:
CREATE TRIGGER trigger_name
[before | after]
{insert | update | delete}
ON table_name [FOR EACH ROW]
BEGIN
--variable declarations
--trigger code
END;
要了解更多信息,请单击此处。
如果我们在Windows中使用MySQL,则无法清除版本8之前的屏幕。那时,Windows操作系统提供了唯一的清除屏幕的方法,方法是退出MySQL命令行工具,然后再次打开MySQL。
MySQL版本8发行后,我们可以使用以下命令清除命令行屏幕:
mysql> SYSTEM CLS;
MySQL中的USER是USER-TABLE中的一条记录。它包含登录信息,帐户特权以及MySQL帐户访问和管理数据库的主机信息。我们可以使用MySQL Create User语句在数据库服务器中创建一个新的用户帐户。它为新帐户提供身份验证,SSL / TLS,资源限制,角色和密码管理属性。
以下是在MySQL中创建新用户的基本语法:
CREATE USER [IF NOT EXISTS] account_name IDENTIFIED BY 'password';
要了解更多信息,请单击此处。
如果要在MySQL中管理数据库,则需要查看数据库服务器中所有用户帐户的列表。以下命令用于检查数据库服务器中所有可用用户的列表:
mysql> SELECT USER FROM mysql.user;
要了解更多信息,请单击此处。
MySQL允许我们将CSV(逗号分隔值)文件导入数据库或表。 CSV是包含数据列表的纯文本文件,可以以表格格式保存。 MySQL提供了LOAD DATA INFILE语句来导入CSV文件。该语句用于读取文本文件并将其快速导入数据库表中。导入CSV文件的完整语法如下:
LOAD DATA INFILE 'C:/ProgramData/MySQL/MySQL Server 8.0/Uploads/filename.csv'
INTO TABLE tablename
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\r\n'
IGNORE 1 ROWS;
要了解更多信息,请单击此处。
MySQL允许我们使用INSERT STATEMENT在MySQL表中添加日期。 MySQL提供了几种数据类型来存储日期,例如DATE,TIMESTAMP,DATETIME和YEAR。 MySQL中日期的默认格式为YYYY-MM-DD。以下是在MySQL表中插入日期的基本语法:
INSERT INTO table_name (column_name, column_date) VALUES ('DATE: Manual Date', '2008-7-04');
如果我们要以mm / dd / yyyy格式插入日期,则需要使用以下语句:
INSERT INTO table_name VALUES (STR_TO_DATE(date_value, format_specifier));
MySQL允许我们查询information_schema.tables表以获取有关表和数据库的信息。它将返回有关数据长度,索引长度,排序规则,创建时间等的信息。我们可以使用以下语法检查服务器上数据库的大小:
SELECT table_schema AS 'Database Name',
SUM(data_length + index_length) 'Size in Bytes',
ROUND(SUM(data_length + index_length) / 1024 / 1024, 2) 'Size in MB'
FROM information_schema.tables
WHERE table_schema = 'testdb'
GROUP BY table_schema;
它将返回如下输出:
如果我们要检查特定数据库中表的大小,请使用以下语句:
SELECT table_name AS 'Table Name',
ROUND(((data_length + index_length) / 1024 / 1024), 2) AS 'Size in MB'
FROM information_schema.TABLES
WHERE table_schema = 'testdb'
ORDER BY (data_length + index_length) DESC;
它将返回如下输出:
索引编制是将无序列表查找到有序列表的过程。在MySQL中搜索表时,它有助于最大程度地提高查询效率。 MySQL索引的工作类似于书本索引。
假设我们有一本书,并且想获取有关搜索的信息。如果不建立索引,则需要一页一页地浏览所有页面,直到找不到特定主题为止。另一方面,索引包含关键字列表,以查找页面上提到的主题。然后,我们可以直接翻阅这些页面,而无需浏览所有页面。
MySQL是最受欢迎的免费开源数据库软件,受GNU通用公共许可证约束。最初,它是由瑞典公司MySQL AB拥有和赞助的。现在,它由负责管理和开发数据库的Sun Microsystems(现为Oracle Corporation)收购。
要了解更多信息,请单击此处。
使用MySQL服务器,查看或列出可用数据库是一项常见任务。我们可以使用以下命令查看MySQL服务器主机上的所有数据库:
mysql> SHOW DATABASES;
要了解更多信息,请单击此处。
自动增量是一种约束,它可以在将新记录插入表中时自动生成唯一编号。通常,它用于表中的主键字段。在MySQL中,我们可以使用ALTER TABLE语句为AUTO_INCREMENT列设置值,如下所示:
ALTER TABLE table_name AUTO_INCREMENT = value;
MySQL使用LIMIT关键字,该关键字可用于限制结果集。它将使我们能够获得前几行,后几行或行范围。它也可以用来查找第二,第三或第n个最高薪水。它可以确保您使用order by子句首先对结果集进行排序,然后print提供准确结果的输出。以下查询用于获取MySQL中第二高的薪水:
SELECT salary
FROM (SELECT salary FROM employees ORDER BY salary DESC LIMIT 2) AS Emp ORDER BY salary LIMIT 1;
还有一些其他方法可以在MySQL中找到第二高的薪水,如下所示:
该语句使用子查询和IN子句获得第二高的薪水:
SELECT MAX(salary)
FROM employees
WHERE salary NOT IN ( SELECT Max(salary) FROM employees);
此查询使用子查询和<运算符返回第二高的薪水:
SELECT MAX(salary) From employees
WHERE salary < ( SELECT Max(salary) FROM employees);
MySQL数据库中只允许使用六个触发器。
内存中存在的表称为HEAP表。在MySQL中创建堆表时,您需要将TYPE指定为HEAP。这些表通常称为内存表。它们被临时用于高速存储。它们不允许BLOB或TEXT字段。
BLOB是代表大型二进制对象的首字母缩写。它用于保存可变数量的数据。
BLOB有四种类型。
所有这些之间的差异是它们可以容纳的最大长度值。
TEXT是不区分大小写的BLOB。 TEXT值非二进制字符串(<字符>)。它们具有一个字符集,并且根据字符集的排序规则存储和比较值。
TEXT有四种类型。
触发器是一组响应某些事件而执行的代码。
堆表:
堆表位于临时用于高速存储的内存中。它们不允许BLOB或TEXT字段。
堆表不支持AUTO_INCREMENT。
索引不应为空。
临时表:
临时表用于保留临时数据。在某些情况下,保存临时数据会很有用。当前客户端会话终止后,将删除临时表。
主要区别:
堆表在客户端之间共享,而临时表不共享。
堆表只是另一个存储引擎,而对于临时表,则需要特殊特权(创建临时表)。
FLOAT最多可存储8个精度的浮点数,并分配4个字节。另一方面,DOUBLE最多可存储18个精度的浮点数,并分配8个字节。
Mysql_connect:
Mysql_pconnect:
如果没有WHERE子句,“ i_am_a_dummy标志”使MySQL引擎可以拒绝执行任何UPDATE或DELETE语句。因此,如果程序员不使用WHERE子句,可以避免程序员删除整个表,这是我的错。
要获取当前日期,请使用以下语法:
SELECT CURRENT_DATE();
安装防病毒软件并配置操作系统的防火墙。
切勿将MySQL服务器用作UNIX根用户。
更改root用户名和密码限制或禁用远程访问。
Mysqladmin -u root -p密码“ newpassword”。
实际上,Unix时间戳和MySQL时间戳都存储为32位整数,但是MySQL时间戳以YYYY-MM-DD HH:MM:SS格式的可读格式表示。
让我们来一个名为雇员的表。
要找到第N个最高薪水是:
按薪资降级限制n-1,1从员工订单中选择不同的(薪水)
如果您想找到第三大薪水:
按薪水上限2,1从员工订单中选择不同的(薪水)
MySQL的默认端口号是3306。
REGEXP是使用正则表达式的模式匹配。正则表达式是为复杂搜索指定模式的有效方法。
基本上,它是用于描述搜索模式的特殊文本字符串。为了更好地理解它,可以在搜索.txt文件以列出文件管理器中的所有文本文件时想到日常生活中的情况。 .txt的等效正则表达式将是。* \。txt。
一个标准表最多可以创建16个索引列。
NOW()命令用于显示当前年份,月份,日期以及小时,分钟和秒,而CURRENT_DATE()仅显示当前年份,月份和日期。
SELECT * FROM table_name LIMIT 0,20;
如果要显示当前日期和时间,请使用-
SELECT NOW();
如果只想显示当前日期,请使用:
SELECT CURRENT_DATE();
任何事务中的定义点都称为保存点。
SAVEPOINT是MySQL中的一条语句,用于设置带有标识符名称的命名事务保存点。
SQLyog程序是最流行的admin GUI工具。它是最受欢迎的MySQL管理器和管理工具。它结合了MySQL管理员,phpMyadmin和其他功能。 MySQL前端和MySQL GUI工具。
使用phpMyAdmin备份数据很容易。通过单击左侧导航栏中的数据库名称来选择要备份的数据库。然后单击导出按钮,并确保突出显示了要备份的所有表。然后在导出下指定所需的选项并保存输出。
的=,<>,<=,<,> =,>,<<,>>,<=,>,AND,OR或LIKE运算符是在MySQL运算符。这些运算符通常与SELECT语句一起使用。
从用户中选择COUNT个user_id;
从20到100本书中选择book_title;
SELECT team_name FROM team WHERE team_won IN(1、3、5、7);
MySQL服务器的默认端口是3306。
MyISAM表以三种格式存储在磁盘上。
ENUM是字符串对象。通过定义ENUM,我们允许最终用户提供正确的输入,以防万一用户提供的输入不属于ENUM定义的数据,则查询将不会执行,并且将显示一条错误消息,内容为“错误的查询”。例如,假设我们要以用户的性别作为输入,因此我们指定ENUM('male','female','other'),因此,只要用户尝试输入除这三个字符串以外的任何字符串,这会导致错误。
ENUM用于限制表中可能的值:
例如:
创建表月份(月份ENUM'January','February','March');插入月份值(“ 4月”)。
MyISAM遵循保守的磁盘空间管理方法,并将每个MyISAM表存储在单独的文件中,可以根据需要对其进行进一步压缩。另一方面,InnoDB将表存储在表空间中。其进一步的优化是困难的。
Mysql_fetch_object用于作为对象从数据库中检索结果,而mysql_fetch_array以数组形式返回结果。这将允许通过字段名称访问数据。
例如:
使用mysql_fetch_object字段可以作为$ result-> name访问。
使用mysql_fetch_array字段可以通过$ result-> [name]访问。
使用mysql_fetch_row($ result),其中$ result是使用mysql_query()函数执行的成功查询返回的结果资源。
例:
$result = mysql_query("SELECT * from students");
while($row = mysql_fetch_row($result))
{
Some statement;
}
Mysql_connect()用于打开与数据库的新连接,而mysql_pconnect()用于打开与数据库的持久连接。它指定每次加载页面时,mysql_pconnect()不会打开数据库。
Mysql_close()无法用于关闭持久连接。但是,它可以用来关闭由mysql_connect()打开的连接。
MySQL数据目录是MySQL存储其数据的地方。该数据字典下的每个子目录都代表一个MySQL数据库。默认情况下,MySQL =服务器mysqld管理的信息存储在数据目录中。
Windows中MySQL数据目录的默认位置为C:\ mysql \ data或C:\ Program Files \ MySQL \ MySQL Server 5.0 \ data。
在MySQL中,查询中使用正则表达式来搜索字符串的模式。
例:
以下语句检索所有列employee_name包含文本1000(示例工资)的行:
Select employee_name
From employee
Where employee_name REGEXP '1000'
Order by employee_name
在MySQL中,除非存在WHERE子句,否则“ i-am-a-dummy”标志使MySQL引擎拒绝UPDATE和DELETE命令。
SELECT命令用于在MySQL中查看表的内容。
解释访问控制列表。
ACL是与对象关联的权限列表。 MySQL将访问控制列表缓存在内存中,每当用户尝试验证或执行命令时,MySQL都会检查对象所需的权限,如果权限可用,则执行成功完成。
InnoDB是用于SQL的存储数据库。 InnoDB中还提供了ACID事务,还包括对外键的支持。自2005年收购Oracle后,最初由InnobaseOY拥有的公司现在属于Oracle Corporation。
它是由IBM开发的文件管理系统,它允许记录按顺序甚至是随机访问。
要在MySQL中执行批处理模式,我们使用以下命令:
mysql;
mysql mysql.out;
联合表是指向其他服务器上其他数据库上的表的表。
为了识别表的每一行,我们将使用主键。对于一个表,仅存在一个主键。
候选键是一列或一组列,可用于唯一标识数据库中的任何记录,而不必引用任何其他数据。
以下是MySQL中可用的驱动程序:
SQL命令主要可以分为三类,即DDL,DML和DCL。数据定义语言(DDL)处理所有数据库模式,并定义数据应如何驻留在数据库中。诸如CreateTABLE和ALTER TABLE之类的命令是DDL的一部分。
数据操作语言(DML)处理数据的操作和操纵。 DML中的命令是“插入”,“选择”等。
数据控制语言(DCL)与授予和权限有关。简而言之,访问权限是由数据库定义的。