MySQL笔记06-MySQL数据查询

【数据库和表的操作】

创建数据库:CREATE DATABASE IF NOT EXISTS shop;

查看数据库:SHOW DATABASES;

删除数据库:DROP DATABASES IF EXISTS shop;

创建表:

MySQL笔记06-MySQL数据查询

查看当前数据库中的数据表:SHOW TABLES;

查看表结构:DESCRIBE item;

MySQL笔记06-MySQL数据查询

查看注释标识:SHOW CREATE TABLE item;

MySQL笔记06-MySQL数据查询

删除数据表:DROP TABLE IF EXISTS item;

复制数据表和数据(不能复制键(key)):

MySQL笔记06-MySQL数据查询

使用LIKE方式可以复制父表的表结构,但不能复制父表的记录。

MySQL笔记06-MySQL数据查询

使用ALTER TABLE 命令修改表结构:

(1)使用ADD关键字增加字段,(2)使用DROP关键字删除字段。

MySQL笔记06-MySQL数据查询

(3)使用CHANGE关键字修改字段,(4)将已有字段设为主键。

MySQL笔记06-MySQL数据查询

(5)使用RENAME TO 关键字修改表名:ALTER TABLE buyer RENAME TO customer;

 

2.【数据操作】

2.1插入数据:

(1)使用INSERT … VALUES 插入数据

MySQL笔记06-MySQL数据查询

(2)使用 INSERT … SET 插入数据,可根据明确指定的值插入数据;(3)使用 INSERT … SELECT 格式,可将从其他表查询的结果插入到另一张表中。优点是可以快速的将数据从一个或多个表中导入到另一个表中。

MySQL笔记06-MySQL数据查询

2.2 查询数据:

2.3 更新数据:

2.4 删除数据:DELETE和TRUNCATE都可以删除表中的所有记录,但后者实际上是删除并重新创建表,它释放了表空间,而前者不会释放。后者删除速度更快一些。对于有自增字段的表,DELETE后会继续计数,而TRUNCATE会从头开始计数。

 

【连接、子查询、事务处理】

2.5 连接——包括交叉连接、内连接、外连接、自然连接

(2.5.1) 交叉连接:查询结果集中的数据行数等于各个表中的数据行数的乘积。

MySQL笔记06-MySQL数据查询

(2.5.2) 内连接INNER JOIN:返回与连接条件相匹配的数据行。

MySQL笔记06-MySQL数据查询

(2.5.3) 外连接:不仅返回与连接条件匹配的数据行,还包含左表、右表或者左右表的所有数据。分为 左外连接 和 右外连接。

① 左外连接LEFT JOIN,左表的数据全部显示:

MySQL笔记06-MySQL数据查询

② 右外连接RIGHT JOIN,右表的数据全部显示:

MySQL笔记06-MySQL数据查询

(2.5.4) 自连接:将表与它自身相关联,通过给表起不同的别名来区分一个表的两个实例。

MySQL笔记06-MySQL数据查询

2.6 子查询:嵌套在另一个语句中的一个SELECT查询语句,可嵌套的SQL语句包括SELECT、INSERT、UPDATE、DELETE或其他子查询语句。子查询必须位于圆括号中。

(2.6.1) 将子查询作为派生表:需要给这个派生表起一个别名。

MySQL笔记06-MySQL数据查询

(2.6.2) 把子查询用在WHERE子句中,可以与比较运算符、逻辑运算符、IN或者EXIST等一起使用。

MySQL笔记06-MySQL数据查询

(2.6.3) 其他使用子查询的语句,如DELETE:

MySQL笔记06-MySQL数据查询

2.7 事务处理:transaction - commit - roll back

MySQL笔记06-MySQL数据查询

MySQL笔记06-MySQL数据查询

目前MySQL中只有InnoDB和BDB这两种存储引擎支持事务——

开始事务:START TRANSACTION 或者 BEGIN WORK (WORK可省略)

提交事务:COMMIT

回滚事务:ROLLBACK

 

使用事务的例子:向商品表item添加商品“apple”,同时更新商品名为“PHP”的数量为200.

MySQL笔记06-MySQL数据查询