MySQL入门之(二)SQL示例

SQL(Structured Query Language结构化查询语言)是一种高级的语言,通过SQL语句我们可以操作关系型数据库,如:创建、更新、查询和删除记录。SQL定义了一组实现这类功能的命令:如:SELECT, INSERT, UPDATE, DELETE, CREATE TABLE, DROP TABLE等。

SQL事例:

这里已经在数据库“studentdb”中创建好一个表“class101”,这个表有三个字段id, name和gpa(Grade Point Average – 平均分)。对于表的列需要为其指定数据类型,此处给id指定为int类型,gpa指定为float类型,name指定为varchar(50)(长度可变,最长50个英文字符)。表中已经写入了3条数据。

Database:studentdb

Table:class101

+-----------+--------------------+-------------+
| id (INT)  | name (VARCHAR(50)) | gpa (FLOAT) |
+-----------+--------------------+-------------+
|   11      | Tom                |  4.4        |
|   33      | Jack               |  4.8        |
|   44      | Kevin              |  4.6        |
+-----------+--------------------+-------------+

SQL为我们提供了简单并且直观的方式用于实现关系型数据库的交互。

SELECT语句:

–语法

SELECT column1, column2,... FROM tableName WHERE criteria
SELECT * FROM tableName WHERE criteria -- 查询所有列

–示例

SELECT name, gpa FROM class101

–查询表class101中的name和gpa字段

SELECT * FROM class101

— *表明查询表class101中的全部字段

SELECT name, gpa FROM class101 WHERE gpa >= 2.0

— 你可以将以下操作符用于数字的比较:=, >, <, >=, <=, <> (!=)

SELECT name, gpa FROM class101 WHERE name = 'Tom'

— 完全匹配字符串 (= or !=),字符串必须由单引号’括起来

SELECT name, gpa FROM class101 WHERE name LIKE 'K_v%'
  • “LIKE”用于字符串模糊匹配
  • 通配符%匹配0个或多个字符
  • 通配符_匹配1个字符
SELECT * FROM class101 WHERE gpa > 3.0 OR name LIKE '%K_v%' ORDER BY gpa DESC, name ASC

— 在查询条件中我们可以使用AND(与),OR(或),NOT(非)

— 结果的排序可以使用DESC(倒序)或ASC(正序)

DELETE语句

— 语法

DELETE FROM tableName WHERE criteria

— 示例

DELETE FROM class101

— 删除表”class101”中的所有数据,该命令一定要谨慎使用!

DELETE FROM class101 WHERE id = 33

— 删除id为33的记录

INSERT语句

— 语法

INSERT INTO tableName VALUES (firstColumnValue, ..., lastColumnValue)       -- 填写所有列值
INSERT INTO tableName (column1, column2, ...) VALUES (value1, value2, ...)  -- 填写指定列值

— 示例

INSERT INTO class101 VALUES (88, 'Jerry', 4.88)

— 为表class101中的每一个字段进行赋值

INSERT INTO class101 (name, gpa) VALUES ('Jack', 4.55)

— 未提供值的列将被赋予默认值NULL

UPDATE更新

— 语法

UPDATE tableName SET column = value WHERE criteria

— 示例

UPDATE class101 SET gpa = 5.0

— 更新所有记录gpa的值为5.0

UPDATE class101 SET gpa = gpa + 1.0 WHERE name = 'Tom'

— 更新用户Tom的gpa为当前数值+1

CREATE TABLE创建表

— 语法

CREATE TABLE tableName (column1Name column1Type, column2Name column2Type, ...)

— 示例

CREATE TABLE class101 (id INT, name VARCHAR(50), gpa FLOAT)

— 创建表class101

DROP TABLE删除表

— 语法

DROP TABLE tableName

— 示例

DROP TABLE class101

— 删除表class101,谨慎操作!

备注: SQL关键字,名称(字段名、表名),字符串可能区分大小写也可能不区分大小写,这完全取决于数据库的具体实现。多数情况下数据库中的关键字是不区分大小写的(如MySQL)。为了清晰起见,以上例子中我们的关键字全部采用大写字母。

对于程序员来说,最好的方式就是把名称和字符串按照大小写严格区分对待。 SQL字符串使用单引号’括起来,但是大多数数据库同时也支持双引号”。