SQL 是用于访问和处理数据库的标准的计算机语言。注意哟,SQL是一门语言。而MySQL、SQL Server、MangoDB等都是数据库。
SQL语言1974年由Boyce和Chamberlin提出,并首先在IBM公司研制的关系数据库系统SystemR上实现。由于它具有功能丰富、使用方便灵活、语言简洁易学等突出的优点,深受计算机工业界和计算机用户的欢迎。1980年10月,经美国国家标准局ANSI的数据库委员会X3H2批准,将SQL作为关系数据库语言的美国标准,同年公布了标准SQL,此后不久,国际标准化组织ISO也作出了同样的决定。
SQL命令
SQL分为DML和DDL两部分,DML是数据操作语言,DDL是数据定义语言。
DDL语句:
-
CREATE DATABASE
:创建新数据库。 -
ALTER DATABASE
:修改数据库。 -
CREATE TABLE
:创建新表。 -
ALTER TABLE
:变更(改变)数据库表。 -
DROP TABLE
:删除表。 -
CREATE INDEX
:创建索引(搜索键)。 -
DROP INDEX
:删除索引。
DML语句:
-
INSERT INTO
:向数据库表中插入数据。 -
SELECT
:从数据库表中获取数据。 -
UPDATE
:更新数据库表中的数据。 -
DELETE
:从数据库表中删除数据。
INSERT INTO
INSERT INTO
语句主要用于向表中插入新记录。
语法如下所示:
INSERT INTO table_name
VALUES (value1,value2,value3,...);
或
INSERT INTO table_name (column1,column2,column3,...)
VALUES (value1,value2,value3,...);
Test_table表的内容如下所示:
id | name | age | city |
---|---|---|---|
1 | Mark | 17 | New York |
2 | Tom | 18 | Paris |
3 | Anni | 17 | Sydney |
举例:
- 向Test_table表中插入一行新的数据:
INSERT INTO Test_table VALUES(4,'CoCo',20,'Paris');
输出结果为:
Query OK, 1 row affected (0.20 sec)
- 向Test_table表中插入多行新的数据:
INSERT INTO Test_table
VALUES(5,'KeKe',19,'London'),
(6,'Naci',20,'Sydney');
(7,'Angle',17,'Paris');
输出结果为:
Query OK, 3 rows affected (0.01 sec)
Records: 3 Duplicates: 0 Warnings: 0
- 查看Test_table表中的数据
+----+------+------+----------+
| id | name | age | city |
+----+------+------+----------+
| 1 | Mark | 17 | New York |
| 2 | Tom | 18 | Paris |
| 3 | Anni | 17 | Sydney |
| 4 | KeKe | 20 | Paris |
| 5 | CoCo | 19 | London |
| 6 | Naci | 20 | Sydney |
| 7 | Angle| 17 | Paris |
+----+------+------+----------+
SELECT
SELECT
语句主要用于从表中选取数据。返回的数据存储在结果集中。
语法如下所示:
SELECT column1, column2, ... FROM table_name;
举例:
- 查询Test_table表中所有数据:
SELECT * FROM Test_table;
输出:
+----+------+------+----------+
| id | name | age | city |
+----+------+------+----------+
| 1 | Mark | 17 | New York |
| 2 | Tom | 18 | Paris |
| 3 | Anni | 17 | Sydney |
| 4 | KeKe | 20 | Paris |
| 5 | CoCo | 19 | London |
| 6 | Naci | 20 | Sydney |
| 7 | Angle| 17 | Paris |
+----+------+------+----------+
- 查询Test_table表中的id、name字段:
SELECT id, name FROM Test_table;
输出:
+----+------+
| id | name |
+----+------+
| 1 | Mark |
| 2 | Tom |
| 3 | Anni |
| 4 | KeKe |
| 5 | CoCo |
| 6 | Naci |
| 7 | Angle|
+----+------+
UPDATE
UPDATE 语句用于修改表中已存在的记录。
语法如下所示:
UPDATE table_name SET column1 = value1, column2 = value2, ...
WHERE condition;
举例:
- 将表中id为5的字段,对应的age更新为21:
UPDATE Test_table SET age=21 WHERE id=5;
输出:
Query OK, 1 row affected (0.20 sec)
Rows matched: 1 Changed: 1 Warnings: 0
- 如果想将某个字段的全部值都修改,只要不指定WHERE子句就可以了,这里就不举例了。如果你想这样做的话,记得小心一点,毕竟数据一旦修改,就不能反悔了。
DELETE
DELETE 语句用于删除表中的记录。
语法如下所示:
DELETE FROM table_name WHERE condition;
举例:
- 删除表中id字段值为3的数据:
DELETE FROM Test_table WHERE id=3;
输出:
Query OK, 1 row affected (0.04 sec)
查看Test_table表:
+----+------+------+----------+
| id | name | age | city |
+----+------+------+----------+
| 1 | Mark | 17 | New York |
| 2 | Tom | 18 | Paris |
| 4 | KeKe | 20 | Paris |
| 5 | CoCo | 19 | London |
| 6 | Naci | 20 | Sydney |
| 7 | Angle| 17 | Paris |
+----+------+------+----------+
- 如果你不指定WHERE子句,则表示删除表中全部记录。这个操作要特别小心,因为一旦执行,就真的将整个表的数据删除了。
这和删除数据表是不用的,删除数据表后整个表都不存在了。而使用DELETE删除表记录后,表依然存在,表的结构、属性和索引等将保持不变。