数据库记录的操作

插入操作

第一种:

INSERT [INTO] tbl_name [(col_name,...)] {VALUES|VALUE} ({expr|DEFAULT},...),(...),...

注:VALUE后也可以写表达式

省略列名时要依次赋值,不然会报错

给自动编号的值赋值时,可用以下两种值来保持自动:
1.写成空值(NULL)
2.写成默认值(DEFAULT)

第二种:

INSERT [INTO] tbl_name SET col_name={expr|DEFAULT},...

注:此方法可以使用子查询,但这种方法一次只能插入一条记录

第三种:

INSERT [INTO] tbl_name [(col_name,...)] SELECT ...

注:此方法可以将查询结果写入指定数据表中

更新记录(UPDATE)

单表更新:

UPDATE[LOW_PRIORITY][IGNORE] table_reference SET col_name1={expr1|DEFAULT}[,col_name2={expr2|DEFAULT}]...[WHERE where_condition]

举个栗子,把users0表中的age字段加5:

mysql> UPDATE users0 SET age= age+5;
Query OK, 9 rows affected (0.01 sec)
Rows matched: 9  Changed: 9  Warnings: 0

删除记录(单表):

DELETE FROM tbl_name [WHERE where_condition]

删除记录后,再插入新纪录时id号接的是记录尾部

查询表达式解析

格式

SELECT select_expr[,select_expr ...]
[
    FROM table_reference
    [WHERE where_condition]
    [GROUP BY {col_name|position} [ASC|DESC],...]
    [HAVING where_condition]
    [ORDER BY {col_name|expr|position}[ASC|DESC],...]
    [LIMIT {[offset,]row_count|row_count OFFSET offset}]
]

1.每一个表达式表示想要的一列,必须有至少一个

2.多个列之间以英文逗号分隔

3.星号(*)表示所有列tbl_name.*可以表示命名表的所有列

4.查询表达式可以使用[AS] alias_name为其赋予别名

5.别名可用GROUP BY,ORDER BY,或HAVING子句

WHERE语句:

对记录进行过滤,如果没有指定WHERE子句,则显示所有记录

在WHERE表达式中,可以使用MySQL支持的函数运算符

GROUP BY语句:

查询结果分组:

[GROUP BY {col_name|position} [ASC|DESC],...]

ASC(默认):升序
DESC:降序

HAVING 语句:

分组条件:
[HAVING where]

HAVING后面如果不是聚合函数,则该字段必须出现在当前SELECT语句中,否则会报错

聚合函数

SQL基本函数,聚合函数对一组值执行计算,并返回单个值
除了 COUNT 以外,聚合函数都会忽略空值,聚合函数经常与 SELECT 语句的 GROUP BY 子句一起使用

ORDER BY语句

对查询结果排序:

[ORDER BY {col_name|expr|position} [ASC|DESC],…]

排序时当字段值相等时,可以再加入一个字段排序,例如:

mysql> SELECT * FROM users0 ORDER BY age,id DESC;

这样当age值相等时就会以id值降序排列,就像是第二关键字

LIMIT

限制查询结果返回的数量:

[LIMIT {[offset,] row_count|row_count OFFSET offset}]

举个栗子,从第三条记录开始返回,返回4个记录:

mysql> SELECT * FROM users0 LIMIT 2,4;

+----+----------+----------+-----+------+
| id | username | password | age | sex  |
+----+----------+----------+-----+------+
|  3 | SAM      | 12343    |  17 |    0 |
|  4 | SAM      | 12343    |  26 |    0 |
|  5 | SAM0     | 1243     |  15 |    0 |
|  6 | SAM0     | 1243     |  13 |    0 |
+----+----------+----------+-----+------+
4 rows in set (0.00 sec)

这里需要注意,记录是从0开始编号

你可能感兴趣的:(MySQL,数据库)