>  기사  >  데이터 베이스  >  데이터베이스 추가, 삭제, 수정, 조회에 대한 기본 설명은 무엇입니까?

데이터베이스 추가, 삭제, 수정, 조회에 대한 기본 설명은 무엇입니까?

青灯夜游
青灯夜游원래의
2020-11-04 10:03:3567537검색

데이터베이스의 추가, 삭제, 수정 및 쿼리를 위한 기본 문: "INSERT INTO 테이블 이름 필드 목록 VALUES(값 목록)", "DELETE FROM 테이블 이름 WHERE 절", "UPDATE 테이블 이름 SET 열 = 값 WHERE 절" , "SELECT * FROM 테이블 이름".

데이터베이스 추가, 삭제, 수정, 조회에 대한 기본 설명은 무엇입니까?

(권장 튜토리얼: mysql 비디오 튜토리얼)

데이터베이스 추가, 삭제, 수정 및 쿼리를 위한 기본 명령문

데이터베이스에 데이터 추가

MySQL에서는 다음을 사용할 수 있습니다. INSERT INTO 문을 사용하여 기존 데이터베이스에 데이터를 추가합니다. 하나 이상의 튜플 데이터 행을 테이블에 삽입합니다.

구문 형식:

INSERT INTO 表名 ( 列名1, 列名2,...列名N )
                 VALUES
                 ( 值1, 值2,...值N );

데이터가 문자 유형인 경우 "value"와 같이 작은따옴표나 큰따옴표를 사용해야 합니다.

  • 테이블 이름: 연산할 테이블의 이름을 지정합니다.

  • 열 이름: 데이터를 삽입해야 하는 열 이름을 지정합니다. 테이블의 모든 컬럼에 데이터를 삽입하는 경우 모든 컬럼 이름을 생략할 수 있으며, INSERT34cd3e9c1174c81e3622d1820b4b2875VALUES(…)를 직접 사용할 수 있습니다.

  • VALUE 절: 이 절에는 삽입할 데이터 목록이 포함됩니다. 데이터 목록의 데이터 순서는 열 순서와 일치해야 합니다.

예: tb_courses 테이블에 새 레코드를 삽입하고,course_id 값은 1,course_name 값은 "Network",course_grade 값은 3,info값은 "Computer Network"입니다.

삽입 작업을 수행하기 전에 tb_courses 테이블을 확인하세요

mysql> SELECT * FROM tb_courses;
Empty set (0.00 sec)

쿼리 결과 현재 테이블 내용이 비어 있고 데이터가 없는 것으로 나타납니다. 다음으로, 입력 SQL 문과 실행 과정은 다음과 같습니다. 다음과 같습니다.

mysql> INSERT INTO tb_courses
    -> (course_id,course_name,course_grade,course_info)
    -> VALUES(1,'Network',3,'Computer Network');
Query OK, 1 rows affected (0.08 sec)

mysql> SELECT * FROM tb_courses;
+-----------+-------------+--------------+------------------+
| course_id | course_name | course_grade | course_info      |
+-----------+-------------+--------------+------------------+
|         1 | Network     |            3 | Computer Network |
+-----------+-------------+--------------+------------------+
1 row in set (0.00 sec)

레코드가 성공적으로 삽입된 것을 확인할 수 있습니다. 데이터 삽입 시 tb_courses 테이블의 모든 필드가 지정되므로 각 필드마다 새로운 값이 삽입됩니다.

참고:

  • INSERT 문 뒤의 컬럼 이름 순서는 tb_courses 테이블이 정의될 때의 순서일 필요는 없습니다. 즉, 데이터 삽입 시에 정의된 순서대로 삽입할 필요는 없습니다. 테이블의 값 순서는 열 필드의 순서와 동일하게 유지됩니다.

  • INSERT를 사용하여 데이터를 삽입할 때 열 이름 목록인 column_list는 비워 둘 수 있습니다. 이때 값 목록은 테이블의 각 필드에 대한 값을 지정해야 하며 값의 순서는 다음과 같습니다. 데이터 테이블에 필드가 정의된 순서와 동일해야 합니다.

참고: INSERT를 사용하여 데이터를 삽입할 때 삽입된 데이터의 열 이름은 무시될 수 있지만 값에 열 이름이 포함되어 있지 않으면 VALUES 키워드 뒤의 값이 완전해야 할 뿐만 아니라 순서는 테이블을 정의할 때의 열 순서와 동일해야 합니다. 테이블의 구조가 변경되거나, 컬럼이 추가, 삭제되거나, 위치가 변경되면, 이러한 작업으로 인해 데이터가 삽입되는 순서도 동시에 변경됩니다. 열 이름을 지정하면 테이블 구조 변경의 영향을 받지 않습니다.

데이터베이스 삭제

MySQL에서는 DELETE 문을 사용하여 테이블에서 하나 이상의 데이터 행을 삭제할 수 있습니다.

구문 형식:

DELETE FROM 表名 [WHERE 子句] [ORDER BY 子句] [LIMIT 子句]

지정된 데이터 삭제:

DELETE FROM 表名称 WHERE 列名称 = 值

구문은 다음과 같습니다.

  • 테이블 이름: 삭제할 데이터의 테이블 이름을 지정합니다.

  • ORDER BY 절: 선택사항. 삭제할 때 테이블의 행이 절에 지정된 순서대로 삭제됨을 나타냅니다.

  • WHERE 절: 선택 사항입니다. 삭제 작업 시 삭제 조건이 제한됨을 나타냅니다. 이 절을 생략하면 테이블의 모든 행이 삭제됩니다.

  • LIMIT 절: 선택 사항. 제어 명령이 클라이언트에 반환되기 전에 삭제할 최대 행 수를 서버에 알리는 데 사용됩니다.

참고: WHERE 조건을 사용하지 않으면 모든 데이터가 삭제됩니다.

예제 1: 테이블의 모든 데이터 삭제

tb_courses_new 테이블의 모든 데이터 삭제 입력된 SQL 문과 실행 결과는 다음과 같습니다.

mysql> DELETE FROM tb_courses_new;
Query OK, 3 rows affected (0.12 sec)
mysql> SELECT * FROM tb_courses_new;
Empty set (0.00 sec)

예제 2: 조건에 따라 테이블의 데이터 삭제

tb_courses_new 테이블에서course_id가 4인 레코드를 삭제합니다. 입력된 SQL 문과 실행 결과는 다음과 같습니다.

mysql> DELETE FROM tb_courses
    -> WHERE course_id=4;
Query OK, 1 row affected (0.00 sec)
mysql> SELECT * FROM tb_courses;
+-----------+-------------+--------------+------------------+
| course_id | course_name | course_grade | course_info      |
+-----------+-------------+--------------+------------------+
|         1 | Network     |            3 | Computer Network |
|         2 | Database    |            3 | MySQL            |
|         3 | Java        |            4 | Java EE          |
+-----------+-------------+--------------+------------------+
3 rows in set (0.00 sec)

실행 결과를 보면course_id가 4인 기록이 삭제된 것을 알 수 있습니다.

데이터베이스 수정

MySQL에서는 UPDATE 문을 사용하여 하나 이상의 테이블에 있는 데이터를 수정하고 업데이트할 수 있습니다.

구문 형식:

UPDATE 表名 SET 字段=值 [WHERE 子句 ]
[ORDER BY 子句] [LIMIT 子句]

예:

UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值

구문 설명은 다음과 같습니다.

  • 테이블 이름: 업데이트할 테이블의 이름을 지정하는 데 사용됩니다.

  • SET 절: 테이블에서 수정할 컬럼 이름과 컬럼 값을 지정하는 데 사용됩니다. 그 중 지정된 각 열 값은 해당 열에 해당하는 표현식이거나 기본값일 수 있습니다. 기본값이 지정되면 컬럼 값은 DEFAULT 키워드로 표시될 수 있습니다.

  • WHERE 절: 선택 사항입니다. 수정할 테이블의 행을 제한하는 데 사용됩니다. 지정하지 않으면 테이블의 모든 행이 수정됩니다.

  • ORDER BY 절: 선택사항. 테이블의 행이 수정되는 순서를 제한하는 데 사용됩니다.

  • LIMIT 절: 선택 사항. 수정되는 행 수를 제한하는 데 사용됩니다.

注意:修改一行数据的多个列值时,SET 子句的每个值用逗号分开即可。

示例1:修改表中的数据

在 tb_courses_new 表中,更新所有行的 course_grade 字段值为 4,输入的 SQL 语句和执行结果如下所示。

mysql> UPDATE tb_courses_new
    -> SET course_grade=4;
Query OK, 3 rows affected (0.11 sec)
Rows matched: 4  Changed: 3  Warnings: 0

mysql> SELECT * FROM tb_courses_new;
+-----------+-------------+--------------+------------------+
| course_id | course_name | course_grade | course_info      |
+-----------+-------------+--------------+------------------+
|         1 | Network     |            4 | Computer Network |
|         2 | Database    |            4 | MySQL            |
|         3 | Java        |            4 | Java EE          |
|         4 | System      |            4 | Operating System |
+-----------+-------------+--------------+------------------+
4 rows in set (0.00 sec)

示例1:根据条件修改表中的数据

在 tb_courses 表中,更新 course_id 值为 2 的记录,将 course_grade 字段值改为 3.5,将 course_name 字段值改为“DB”,输入的 SQL 语句和执行结果如下所示。

mysql> UPDATE tb_courses_new
    -> SET course_name='DB',course_grade=3.5
    -> WHERE course_id=2;
Query OK, 1 row affected (0.13 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> SELECT * FROM tb_courses_new;
+-----------+-------------+--------------+------------------+
| course_id | course_name | course_grade | course_info      |
+-----------+-------------+--------------+------------------+
|         1 | Network     |            4 | Computer Network |
|         2 | DB          |          3.5 | MySQL            |
|         3 | Java        |            4 | Java EE          |
|         4 | System      |            4 | Operating System |
+-----------+-------------+--------------+------------------+
4 rows in set (0.00 sec)

注意:保证 UPDATE 以 WHERE 子句结束,通过 WHERE 子句指定被更新的记录所需要满足的条件,如果忽略 WHERE 子句,MySQL 将更新表中所有的行。

数据库查询数据

在 MySQL 中,可以使用 SELECT 语句来查询数据。查询数据是指从数据库中根据需求,使用不同的查询方式来获取不同的数据,是使用频率最高、最重要的操作。

SELECT 的语法格式如下:

SELECT
{* | <字段列名>}
[
FROM <表 1>, <表 2>…
[WHERE <表达式>
[GROUP BY <group by definition>
[HAVING <expression> [{<operator> <expression>}…]]
[ORDER BY <order by definition>]
[LIMIT[<offset>,] <row count>]
]

其中,各条子句的含义如下:

  • {*|91f4a644069eb08f05815c14fcb8b2df}包含星号通配符的字段列表,表示所要查询字段的名称。

  • 1db5ee5e96c8774919312b86ea1e4ece,e612022ea012f486e2b8f4eb394bb6e0…,表 1 和表 2 表示查询数据的来源,可以是单个或多个。

  • WHERE a8db8f1ba937e93d98acf65ecbbdce13是可选项,如果选择该项,将限定查询数据必须满足该查询条件。

  • GROUP BY628258a999ccbeb31a9b66d6d3301cc9,该子句告诉 MySQL 如何显示查询出来的数据,并按照指定的字段分组。

  • [ORDER BY628258a999ccbeb31a9b66d6d3301cc9],该子句告诉 MySQL 按什么样的顺序显示查询出来的数据,可以进行的排序有升序(ASC)和降序(DESC),默认情况下是升序。

  • [LIMIT[ab76cfca1a1dc7ff1291dcdf873f72ec,]bc984d207842008469e14f06321b6461],该子句告诉 MySQL 每次显示查询出来的数据条数。

下面先介绍一些简单的 SELECT 语句,关于 WHERE、GROUP BY、ORDER BY 和 LIMIT 等限制条件就不细说了。

1、查询表中所有字段

查询所有字段是指查询表中所有字段的数据。MySQL 提供了以下 2 种方式查询表中的所有字段。

SELECT 可以使用“*”查找表中所有字段的数据,语法格式如下:

SELECT * FROM 表名;

使用“*”查询时,只能按照数据表中字段的顺序进行排列,不能改变字段的排列顺序。

示例:从 tb_students_info 表中查询所有字段的数据,SQL 语句和运行结果如下所示。

mysql> use test_db;
Database changed
mysql> SELECT * FROM tb_students_info;
+----+--------+---------+------+------+--------+------------+
| id | name   | dept_id | age  | sex  | height | login_date |
+----+--------+---------+------+------+--------+------------+
|  1 | Dany   |       1 |   25 | F    |    160 | 2015-09-10 |
|  2 | Green  |       3 |   23 | F    |    158 | 2016-10-22 |
|  3 | Henry  |       2 |   23 | M    |    185 | 2015-05-31 |
|  4 | Jane   |       1 |   22 | F    |    162 | 2016-12-20 |
|  5 | Jim    |       1 |   24 | M    |    175 | 2016-01-15 |
|  6 | John   |       2 |   21 | M    |    172 | 2015-11-11 |
|  7 | Lily   |       6 |   22 | F    |    165 | 2016-02-26 |
|  8 | Susan  |       4 |   23 | F    |    170 | 2015-10-01 |
|  9 | Thomas |       3 |   22 | M    |    178 | 2016-06-07 |
| 10 | Tom    |       4 |   23 | M    |    165 | 2016-08-05 |
+----+--------+---------+------+------+--------+------------+
10 rows in set (0.26 sec)

结果显示,使用“*”通配符时,将返回所有列,数据列按照创建表时的顺序显示。

注意:一般情况下,除非需要使用表中所有的字段数据,否则最好不要使用通配符“*”。虽然使用通配符可以节省输入查询语句的时间,但是获取不需要的列数据通常会降低查询和所使用的应用程序的效率。使用“*”的优势是,当不知道所需列的名称时,可以通过“*”获取它们。

2、查询表中指定的字段

查询表中的某一个字段的语法格式为:

SELECT < 列名 > FROM < 表名 >;

示例:

查询 tb_students_info 表中 name 列所有学生的姓名,SQL 语句和运行结果如下所示。

mysql> SELECT name FROM tb_students_info;
+--------+
| name   |
+--------+
| Dany   |
| Green  |
| Henry  |
| Jane   |
| Jim    |
| John   |
| Lily   |
| Susan  |
| Thomas |
| Tom    |
+--------+
10 rows in set (0.00 sec)

输出结果显示了 tb_students_info 表中 name 字段下的所有数据。

使用 SELECT 声明可以获取多个字段下的数据,只需要在关键字 SELECT 后面指定要查找的字段名称,不同字段名称之间用逗号“,”分隔开,最后一个字段后面不需要加逗号,语法格式如下:

SELECT <字段名1>,<字段名2>,…,<字段名n> FROM <表名>;

示例:

从 tb_students_info 表中获取 id、name 和 height 三列,SQL 语句和运行结果如下所示。

mysql> SELECT id,name,height
    -> FROM tb_students_info;
+----+--------+--------+
| id | name   | height |
+----+--------+--------+
|  1 | Dany   |    160 |
|  2 | Green  |    158 |
|  3 | Henry  |    185 |
|  4 | Jane   |    162 |
|  5 | Jim    |    175 |
|  6 | John   |    172 |
|  7 | Lily   |    165 |
|  8 | Susan  |    170 |
|  9 | Thomas |    178 |
| 10 | Tom    |    165 |
+----+--------+--------+
10 rows in set (0.00 sec)

输出结果显示了 tb_students_info 表中 id、name 和 height 三个字段下的所有数据。

更多编程相关知识,请访问:编程视频!!

위 내용은 데이터베이스 추가, 삭제, 수정, 조회에 대한 기본 설명은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.