联结表

  创建联结  FROM 表1,表2    与内连接作用相同类似;如果失去WHERE子句,会出现笛卡尔积现象

  内联结   INNER JOIN    

高级联结

  自联结   例子:SELECT 字段b FROM 表 WHERE 字段a = (SELECT 字段a FROM 表 WHERE 字段B的条件),单条SQL文多次引用一张表

  外联结   LEFT OUTER JOIN  RIGHT OUTER JOIN  FULL JOIN    外联结有三种,分别代表那张表的结果可以为空,还是说都可以为空

组合查询

  并        SQL1 UNION SQL2              SQL1 和 SQL2的结果集中字段名必须完全一致

  消除重复的并   SQL1 UNION ALL SQL2            SQL1 和 SQL2的结果集中字段名必须完全一致

  并排序      SQL1 UNION ALL SQL2 ORDER BY 字段     这个排序是将组合后的总结果集进行排序

插入数据      “多行插入”,“插入检索值”用的比较多

  单行插入    “值”可以是null,尽量把字段名完全列出来,而不是依赖自带的顺序

INSERT INTO 表名
(字段名1, 字段名2, 字段名3)
VALUES
(值1, 值2, 值3);

  多行插入    这是最简便的方式,避免使用 多条“单行插入”语句

INSERT INTO 表名
(字段名1, 字段名2, 字段名3)
VALUES
(值1x, 值2x, 值3x),
(值1y, 值2y, 值3y),
(值1z, 值2z, 值3z)

  插入检索值    INSERT-SELECT语句,INSERT部分和SELECT部分的列名可以不匹配,只要类型一致保证不报错即可,

INSERT INTO 表名
(字段名1, 字段名2, 字段名3)
SELECT
字段名1, 字段名2, 字段名3
FROM
表名x

例如:

INSERT INTO student (no)

SELECT student_no FROM people

更新删除数据      “更新”,“删除”都比较常用,避免使用不带WHERE条件的更新、删除语句,它们太危险了

更新

UPDATE 表名 SET
字段1=值1,
字段2=值2
WHERE
条件

删除

DELETE FROM 表名
WHERE
条件

创建和操纵表

创建表

CREATE TABLE 表名 (
字段1 类型 NOT NULL AUTO_INCREMENT,
字段2 类型 NULL DEFAULT 'Deolin',
…… ,
PRIMARY KEY (字段1)
) ENGINE=InnoDB

字段名 类型 null值? 自增? 默认值,
主键
引擎类型

更新表

ALTER TABLE 表名 (
ADD
DROP
)

删除表

DROP TABLE 表名

重命名表

RENAME TABLE 表名1 TO 表名2

视图        COOP时候的WebQuery

创建视图

CREATE VIEW 视图名 AS
SELECT语句

视图常见的作用就是重用SQL语句,特别是SELECT语句

一般来说视图不用与INSERT、UPDATE、DELETE

游标        

用于操作SQL文的结果集,常见的用法可能是分页

触发器

创建触发器

CREATE TRIGGER csts_del AFTER INSERT ON csts
FOR EACH ROW
BEGIN
SELECT 'success'
END

BEGIN - END用于容纳多条SQL语句,不是必须的

删除触发器

DROP TRIGGER csts_del

INSERT触发器

CREATE TRIGGER csts_ins AFTER INSERT ON csts
FOR EACH ROW
SELECT NEW.no

after可以换成before,before用于插入前数据的净化,after用于插入后的确认

NEW关键字指的是一个虚拟表,表中存储的是触发器INSERT语句插入的数据

DELETE触发器

CREATE TRIGGER csts_del AFTER INSERT ON csts
FOR EACH ROW
SELECT OLD.no

OLD关键字与NEW类似,存储的是触发器DELETE语句删除的数据

UPDATE触发器

CREATE TRIGGER csts_upd BEFORE UODATE ON csts
FOR EACH ROW
SET NEW.name =Upper(NEW.name);

Upper()函数返回的是参数字段更新后的值

最新文章

  1. 安卓模拟器genymotion连接eclipse成功但是不显示其中项目
  2. Bootstrap <基础三十>Well
  3. php开发(CI框架使用)
  4. 测试 Mono 安装
  5. FFTW简介及使用
  6. OpenStack:安装Glance
  7. SQL中N $ # @的作用
  8. java反射案例讲解
  9. php explode 用法详解
  10. thinkphp中神奇的create()方法
  11. Optipng—PNG的优化图像工具初探
  12. 使用iptraf,ifstat查看网络流量
  13. 执行manage.py syncdb提示Unknown command: 'syncdb'
  14. shell脚本实现并发控制
  15. Linux中 ./configure --prefix命令
  16. 获取Linux服务器基本信息的shell脚本
  17. MySQL中数据的基本查询方式
  18. Echarts之悬浮框中的数据排序
  19. (源)VC助手VA破解使用指南
  20. What's the difference between - (one hyphen) and — (two hyphens) in a command?

热门文章

  1. B-JUI文档、下载
  2. 18-MySQL DBA笔记-MySQL Server调优
  3. (十)springmvc之文件的处理
  4. SQL优化中的重要概念:锁定
  5. Spring Boot 使用 @Scheduled 注解创建定时任务
  6. JavaScript 和 Java 是完全不同的语言
  7. friend
  8. stm32 ADC模数转换 ADC多通道 ADC DMA
  9. 开发六年mybatisplus使用小结
  10. 阿里P7告诉你什么是java并发包、线程池、锁