MySQL备忘点(下)
联结表
创建联结 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备忘点(下)的更多相关文章
- MySQL备忘点(上)
给自己看的,所以以举例子为主了 检索数据 SELECT 检索单列 SELECT name FROM student 检索多列 SELECT no, name FROM student 检索所有列 S ...
- MySQL备忘
Access denied for user 'root'@'localhost' >> 执行以下语句 GRANT ALL ON dbname.* TO 'root'@'localhost ...
- mysql -- 备忘
select distinct(authorid),author from forum_post where tid=1;
- centos 6.4 mysql rpm 离线安装【备忘】
离线状态下使用rpm的安装包进行mysql的安装,仅作备忘 准备工作: 官网下载mysql离线rpm安装包(这里就不演示了,拿现成的做演示) =================更新线 2018-01- ...
- ubuntu下串口编程备忘
弄了一下串口,一个小问题多折腾了下,备忘.软件环境:zl@zhanglong:~$ cat /etc/lsb-release DISTRIB_ID=UbuntuDISTRIB_RELEASE=12.0 ...
- Mysql又一次整理笔记--woods备忘
==============================SQL备忘 CRUD 查询 多表 事件等=============================== ------------------ ...
- Mysql CPU使用率长期100%的解决思路备忘
最近一台服务器的CPU使用率长期保持在100%的状态,查看进程发现是Mysql服务导致的.于是搜索各方资料,终于成功解决问题.备忘以及分享一下,希望可以帮助各位新手朋友. (服务器运行环境是Windo ...
- 简单备忘一下Linux下的wget和curl如何使用http proxy
简单备忘一下Linux下的wget和curl如何使用http proxywget -e "http_proxy=porxyhost:port" www.baidu.comcurl ...
- QT windows msvc下使用boost库(备忘)
win32-msvc2015: { contains(QMAKE_HOST.arch, x86):{ INCLUDEPATH += D:\3SDK\boost_1_61_0 LIBS += -LD:\ ...
随机推荐
- (十二) web服务与javaweb结合(3)
一.需求 上一章节虽然将webservice和web项目绑定在了一起,但是还是不能共同一个端口,本章讲解webservice和web项目绑定且共同端口. 二.案例 2.1 创建web工程,并引入依赖 ...
- CAN总线上的消息单帧某个信号的值计算(C#)
public static ulong GetMotorolaSignalValue(byte[] data, int startBit, int bitLength) { ; , j =; i ...
- TeamCity安装和配置
目录 TeamCity安装和配置 前言 持续集成(CI) TeamCity 环境 安装 配置TeamCity 项目构建 效果展示 TeamCity自动构建项目及集成IDEA(待更新......) 结束 ...
- 整理一下Promise 的用法
Promise 的定义 Pormise是JS的异步编程的一种解决方案,在ES6将其写进了语言标准,提供了原生的Promise对象. Promise简单来理解就是一个容器,里面存放着某个未来才会结束的事 ...
- git的使用(win7 64位)
下载安装 1.官方下载网址:https://git-scm.com/downloads: 2.安装十分简单,按照默认配置,一直点击next,最后点击install,即安装成功: 3.安装成功之后,则自 ...
- stm32f429 仿真器不能识别芯片
刚买的野火挑战者开发板,下载几次程序后,忽然就不能通过JLINK下载了,提示如下错误: No Cortex-M Device found in JTAG chain. Error: Flash Dow ...
- 【转】ufw 端口
1.扫描端口 用ubuntu自带的网络工具中的端口扫描不够强大,扫描结果可能不全,推荐用nmap,黑客常用的端口扫描利器!安装方法:sudo apt-get install nmap ,想扫描端口nm ...
- ]Kinect for Windows SDK开发入门(六):骨骼追踪基础 上
原文来自:http://www.cnblogs.com/yangecnu/archive/2012/04/06/KinectSDK_Skeleton_Tracking_Part1.html Kinec ...
- javascript中如何判断数组是数组
if (!Array.isArray) { Array.isArray = function(arg) { return Object.prototype.toString.call(arg) === ...
- less注释
less中的注释 1.可以使用css中的注释(/***/) 2.也可以用//注释 //编译时会自动过滤掉 /**我是会被编译的*/ ul{ // padding: 0px; // height: ...