联结表

  创建联结  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()函数返回的是参数字段更新后的值

MySQL备忘点(下)的更多相关文章

  1. MySQL备忘点(上)

    给自己看的,所以以举例子为主了 检索数据 SELECT 检索单列 SELECT name FROM student 检索多列 SELECT no, name FROM student  检索所有列 S ...

  2. MySQL备忘

    Access denied for user 'root'@'localhost' >> 执行以下语句 GRANT ALL ON dbname.* TO 'root'@'localhost ...

  3. mysql -- 备忘

    select distinct(authorid),author from forum_post where tid=1;

  4. centos 6.4 mysql rpm 离线安装【备忘】

    离线状态下使用rpm的安装包进行mysql的安装,仅作备忘 准备工作: 官网下载mysql离线rpm安装包(这里就不演示了,拿现成的做演示) =================更新线 2018-01- ...

  5. ubuntu下串口编程备忘

    弄了一下串口,一个小问题多折腾了下,备忘.软件环境:zl@zhanglong:~$ cat /etc/lsb-release DISTRIB_ID=UbuntuDISTRIB_RELEASE=12.0 ...

  6. Mysql又一次整理笔记--woods备忘

    ==============================SQL备忘 CRUD 查询 多表 事件等=============================== ------------------ ...

  7. Mysql CPU使用率长期100%的解决思路备忘

    最近一台服务器的CPU使用率长期保持在100%的状态,查看进程发现是Mysql服务导致的.于是搜索各方资料,终于成功解决问题.备忘以及分享一下,希望可以帮助各位新手朋友. (服务器运行环境是Windo ...

  8. 简单备忘一下Linux下的wget和curl如何使用http proxy

    简单备忘一下Linux下的wget和curl如何使用http proxywget -e "http_proxy=porxyhost:port" www.baidu.comcurl ...

  9. QT windows msvc下使用boost库(备忘)

    win32-msvc2015: { contains(QMAKE_HOST.arch, x86):{ INCLUDEPATH += D:\3SDK\boost_1_61_0 LIBS += -LD:\ ...

随机推荐

  1. Luogu4770 NOI2018你的名字(后缀自动机+线段树合并)

    先考虑l=1,r=n,并且不要求本质不同的情况.对原串建SAM,将询问串在上面跑,得到每个前缀的最长匹配后缀即可得到答案. 然后考虑本质不同.对询问串也建SAM,统计每个节点的贡献,得到该点right ...

  2. 16-MySQL DBA笔记-调优基础理论和工具

    第五部分 性能调优与架构篇 本篇将为读者介绍性能调优的一些背景知识和理论,然后介绍一些工具的运用,最后介绍从应用程序到操作系统.到数据库.到存储各个环节的优化. 性能调优是一个高度专业的领域,它需要一 ...

  3. C# 延迟初始化 Lazy<T>

    概念:延时初始化重点是延时,用时加载,意思是对象在使用的时候创建而不是在实例化的的时候才创建.   延时加载主要应用的场景: 数据层(ADO.NET或Entity Framework等ORM,Java ...

  4. Java Web 深入分析(6) Tomcat

    tomcat是什么:汤姆猫?Javaweb服务器? Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache ...

  5. gin框架初识(先跑一个简单demo) ①

    Gin 是一个 go 写的 web 框架,具有高性能的优点.官方地址:https://github.com/gin-gonic/gin 先跑一个demo(先安装gin框架,具体见官方地址): 1.vs ...

  6. springboot启动流程(二)SpringApplication run方法核心逻辑

    所有文章 https://www.cnblogs.com/lay2017/p/11478237.html run方法逻辑 在上一篇文章中,我们看到SpringApplication的静态方法最终是去构 ...

  7. js之split拆分字符串

    js之split拆分字符串 1.单字符拆分 let arr = str.split(',') 2.多字符拆分 let arr = str.split(/[(),]/)

  8. 用<audio>标签打造一个属于自己的HTML5音乐播放器

    上一章节,我们刚刚讲了<video>标签,今晚,我们讲的是<audio>标签,这两个东东除了表示的内容不一样以外,其他的特性相似的地方真的太多了,属性和用法几乎一样,也就说,如 ...

  9. 谁还不知道Java String的那点事

    String是我们平时接触最多的一种数据类型之一,不同语言有自己内部的实现,今日一起看下Java中String的内部实现. 常问问题 面试中常被提及的String问题 String为什么是Final的 ...

  10. 什么是领域模型(domain model)?贫血模型(anaemic domain model)和充血模型(rich domain model)有什么区别

    领域模型是领域内的概念类或现实世界中对象的可视化表示,又称为概念模型或分析对象模型,它专注于分析问题领域本身,发掘重要的业务领域概念,并建立业务领域概念之间的关系. 贫血模型是指使用的领域对象中只有s ...