MySQL 5.操作表中的数据

创建数据库并使用,创建数据表

 1 # 创建数据库并使用数据库
 2 CREATE DATABASE gzcsql;
 3 USE gzcsql;
 4 # 创建数据表
 5 CREATE TABLE table1(
 6 id SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
 7 name VARCHAR(20) NOT NULL,
 8 password VARCHAR(32) NOT NULL,
 9 age TINYINT UNSIGNED NOT NULL DEFAULT 10,
10 sex BOOLEAN
11 );

插入表记录(1):

Demo:此种方法在写值时支持算数

1 # 若未标明要插入哪几列的话则需全部插入,主键可使用DEFAULT或NULL让其使用默认自增的值,标记了默认值的也可使用DEFAULT表示使用默认值
2 INSERT table1 VALUES(NULL,'Tom','123',DEFAULT,1);

一次性插入多条记录,多条记录间用逗号隔开:

1 INSERT table1 VALUES(DEFAULT,'XiaoMing','456',DEFAULT,1),(NULL,'XiaoGuo','666',21,1);

插入表记录(2):

Demo:此种方法与第一种方法的区别是此方法可以使用子查询,且只能一次插入一条记录

1 INSERT table1 SET name='XiaoHong',password='999',age=21,sex=1;

插入表记录(3):

Demo:此种方法可以将查询结果插入到指定数据表

1 INSERT table1(username) SELECT table2.name FROM table2;

更新列记录(单表更新)、(省略WHERE条件):

1 UPDATE table1 SET age = age+5, sex=0;

带条件更新自己想要的那一条记录(WHERE条件):

1 UPDATE table1 SET name = gzc WHERE id=3;

删除记录(单表删除):

1 DELETE FROM table1 WHERE id=2;

查询表达式

  • 每一个表达式表示想要的一列,必须有至少一个
  • 多个列之间以英文逗号分隔
1 SELECT id,name,password FROM table1;
  • 查询表达式的顺序可以跟数据表中字段的顺序不一致。
1 SELECT password,name FROM table1;
  • 表名.列名,如下例子,此种方式可以避免多表关联的情况下只查找某一数据表的数据
1 SELECT table1.name,table1.password FROM table1;
  • 查询表达式可以使用 AS alias(别名)方式为某一列赋予别名,别名可用于 GROUP BY ,ORDER BY或者HAVING字句中,其查询结果显示的是别名而非原数据表中的列名
1 SELECT id AS userId ,name AS uname FROM table1;

PS:SELECT 语句字段出现的顺序将影响结果集出现的顺序,字段的别名将影响结果集中字段的别名(PHP中在别的编程语言中不清楚)


WHERE条件:

条件表达式:

  • 对记录的过滤,如果没有指定WHERE条件,则显示所有记录
  • 在WHERE表达式中,可以使用MySQL支持的函数或运算符

GROUP BY分组:

查询结果分组:

1 SELECT table1.name , table1.password, table1.sex FROM table1 GROUP BY sex;

HAVING设置分组的条件:

HAVING后面要是聚合函数(如求和、求最大值、最小值平均值等等 )或者该字段出现在当前的SELECT 语句当中

1 SELECT table1.name, table1.password ,table1.sexFROM table1 GROUP BY sex HAVING sex>10;

ORDER BY排序:

对查询结果的某一个字段进行排序

默认的升序:

1 SELECT table1.name ,table1.password, table1.age FROM table1 ORDER BY age;

DESC降序:

1 SELECT table1.name, table1.password,table1.age FROM table1 ORDER BY id DESC;

LIMIT

限制查询结果返回的数量

默认从第一条(索引从0开始)开始,返回2条:

1 SELECT * FROM table1 LIMIT 2;

默认从第3条(第一条的索引为0)开始,返回3条:

1 SELECT * FROM table1 LIMIT 2,3;

INSERT 和 SELECT 配合使用:

将查找的结果存储到指定的数据表

1 # 创建一个新表
2 CREATE TABLE test(
3 id TINYINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
4 username VARCHAR(20) NOT NULL
5 );
6 # 将一张数据表中的数据查询结果存储到创建的新表中
7 INSERT test(username) SELECT talbe1.name FROM table1;
View Code
原文地址:https://www.cnblogs.com/gzc911/p/4944694.html