关系型数据库MySQL(一)_增删改查
1、创建表单
create table product
(product_id char(4) not null,
product_name varchar(100) not null,
sale_price integer,
regist_date date,
primary key(product_id));
2、创建表后添加主键
alter table product add primary key(product_id);
3、数据类型
integer 整型
char 定长字符串型
varchar 可变字符串型
date 日期型
4、约束
not null 非空约束
primary key 主键约束
5、表的删除
drop table product; --删除表结构和数据,不可恢复
delete from product; --删除表数据,留下表结构
6、表数据删除
delete from product where sale_price=4000; --删除特定数据
7、表的更新
rename table product to new_product; --表的重命名
alter table product add column product_type varchar(50); --添加列
alter table product drop column product_type; --删除列
alter table product modify column product_id char(8); --修改列的类型
alter table product change column sale_price new_sale_price integer; --修改列名
8、表数据更新
insert into product values('0001', '办公桌', null, 100); --插入一条数据
insert into new_product select * from product; --复制其他的表中的所有数据
update product set product_id='0001' where sale_price=500;
update product set sale_price=20,purchase_sale=50 where product_id='0002'; --多列更新
在workbench中运行上两条语句会报错,关闭安全模式即可: set sql_safe_updates=0;
9、列的查询
select product_id as id from product; --列的别名
select distinct product_type from product; --删除重复行
10、聚合查询
select count(sale_price) from product; --计算null之外的行数
select count(distinct sale_price) from product; --计算不同价格的行数
11、聚合函数
count(对行而言)
sum, avg, min, max(对列而言,会排除null)
12、对表进行分组
select product_type,count(*) from product group by product_type; --按商品类型进行分组
select sale_price,count(*) from product where product_type='衣服' group by sale_price;
13、为聚合结果指定条件
select product_type from product group by product_type having count(*)=2; --分组后为2行的组
14、排序查询
select * from product order by sale_price; --按价格升序
select * from product order by sale_price desc; --按价格降序
15、事务
start transaction;
DML语句1; DML语句2;DML语句3;...........;
commit/rollback;
定义:需要在同一个处理单元中执行的一系列更新处理的集合
commit: 一旦提交,就无法恢复到事务开始前的状态
rollback: 一旦回滚,数据库就会恢复到事务开始之前的状态
数据定义DDL: create, drop, alter
数据操纵DML: select, insert, update, delete
数据控制DCL: commit, rollback, grant, revoke
16、视图
create view productview(product_type,count_type)
as
select product_type,count(*) from product group by product_type;
定义: 已经保存好的select语句,'参照视图'='执行相应的select语句'
drop view productview(product_type,count_type); --删除视图
17、谓词
like: 模糊查询(%: 0个以上的任意字符串, _: 任意1个字符串)
between: 范围查询
is null, is not null: 判断是否为null
in: or的简便用法—in(值1,值2,...)
exists: 判断是否存在满足某种条件的记录
18、其他
SQL的注释符:-- 一行,/* */ 多行
算术运算符:+, -, *, /, abs(数值), mod(被除数,除数), round(对象数值,保留小数位数)
逻辑运算符:not > and > or
比较运算符:>= 、 <= 、 <> 、 =
对null不能使用比较运算符,需用is null 或者 is not null
字符串函数:||拼接函数, length字符串长度函数, lower小写转换函数, upper大写转换函数
日期函数:current_time当前时间函数, current_date当前日期函数
19、表的加法(并集)
select product_name from product1
union
select product_name from product2;
union后面加个all,则可以保留重复行
表的减法(差集): except, 语法与union一样
表格公共部分(交集): intersect, 语法与union一样
20、内联结
以列为单位,选取同时存在于两张表中的数据
select sp.shop_id,sp.shop_name,p.product_id,p.product_name,
from shopproduct as sp inner join product as p
on sp.product_id=p.product_id;
把以上语句当成是一张新表,就可以在后面使用where,group by,having,order by语句
21、外联结
选取出主表中的全部信息,指定主表的关键字是left/right
select sp.shop_id,sp.shop_name,p.product_id,p.product_name,
from shopproduct as sp left outer join product as p
on sp.product_id=p.product_id;
关系型数据库MySQL(一)_增删改查的更多相关文章
- PHP学习之[第08讲]数据库MySQL基础之增删改查
一.工具: 1.phpMyAdmin (http://www.phpmyadmin.net/) 2.Navicat (http://www.navicat.com/) 3.MySQL GUI Tool ...
- 使用JDBC分别利用Statement和PreparedStatement来对MySQL数据库进行简单的增删改查以及SQL注入的原理
一.MySQL数据库的下载及安装 https://www.mysql.com/ 点击DOWNLOADS,拉到页面底部,找到MySQL Community(GPL)Downloads,点击 选择下图中的 ...
- MySQL数据库之表的增删改查
目录 MySQL数据库之表的增删改查 1 引言 2 创建表 3 删除表 4 修改表 5 查看表 6 复制表 MySQL数据库之表的增删改查 1 引言 1.MySQL数据库中,数据库database就是 ...
- MySQL数据库 | 数据表的增删改查
MySQL数据的增删改查(crud) 本文结构 一.增加 create 二.修改 update 三.查询 retrieve(简单查询,下篇详细展开) 四.删除 delete 首先,创建简单的class ...
- sqlite数据库操作详细介绍 增删改查,游标
sqlite数据库操作详细介绍 增删改查,游标 本文来源于www.ifyao.com禁止转载!www.ifyao.com Source code package com.example ...
- Delphi - cxGrid连接Oracle数据库 实现数据的增删改查
cxGrid连接Oracle数据库 实现数据的增删改查 cxGrid连接Oracle数据库 1:通过OraSession连接数据库.OraDataSet实现OraSession和OraDataSour ...
- java数据库(MySQL)之增删改查
1.查询数据 先救从简单的来吧,之前我们实现了将数据库表格信息读取到一个List集合中,数据库的查询,实 际上就是对这个集合的查询: public class Show { public static ...
- Mysql数据库和表的增删改查以及数据备份&恢复
数据库 查看所有数据库 show databases; 使用数据库 use 数据库名; 查看当前使用的数据库 select database(); 创建数据库 create database 数据库名 ...
- Python操作MySQL数据库完成简易的增删改查功能
说明:该篇博客是博主一字一码编写的,实属不易,请尊重原创,谢谢大家! 目录 一丶项目介绍 二丶效果展示 三丶数据准备 四丶代码实现 五丶完整代码 一丶项目介绍 1.叙述 博主闲暇之余花了10个小时写的 ...
随机推荐
- [Python3 填坑] 013 几个类相关函数的举例
目录 1. print( 坑的信息 ) 2. 开始填坑 2.1 issubclass() 2.2 isinstance() 2.3 hasattr() 2.4 getattr() 2.5 setatt ...
- Lock和synchronized使用
该文章主要讲解如何快速应用Lock和synchronized 读者可以自行学习Lock和synchronized系统级比较:可参考并发实战等,自己决定什么场景下使有哪种锁 Lock使用案例: publ ...
- spring-第一篇之spring核心机制依赖注入(DI)/控制翻转(IoC)
1.spring的核心机制:依赖注入(DI)/控制翻转(IoC) 什么是依赖:A对象需要调用B对象,所以A依赖于B. 什么是注入:A对象注入一个属性B对象. 什么是依赖注入(DI):A对象依赖于B对象 ...
- 国内常用Linux镜像站点
网易镜像站点 http://mirrors.163.com/ 搜狐镜像站点 http://mirrors.sohu.com/ 阿里云镜像站点 http://mirrors.aliyun.com/ 北京 ...
- 洛谷 P1168 中位数(优先队列)
题目链接 https://www.luogu.org/problemnew/show/P1168 解题思路 这个题就是求中位数,但是暴力会tle,所以我们用一种O(nlogn)的算法来实现. 这里用到 ...
- Android禁止输入表情符号
在我们Android开发的项目中,难免有要求在输入框中禁止输入表情,所以呢,写了一个输入框禁止输入表情的demo,供大伙参考 效果图 如图显示,如果用户输入了表情字符,会提示. EmojiFilter ...
- 关于在IE下JavaScript的 Stack overflow at line 错误可能的原因
该错误只在IE中出现,出现该提示的原因主要有两种: 1. 重定义了系统的触发事件名称作为自定义函数名如: onclick / onsubmit … 都是系统保留的事件名称,不允许作为重定义函数名称 ...
- 2018-8-10-win10-uwp-MetroLog-入门
title author date CreateTime categories win10 uwp MetroLog 入门 lindexi 2018-08-10 19:16:53 +0800 2018 ...
- Thymeleaf入门——入门与基本概述
https://www.cnblogs.com/jiangbei/p/8462294.html 一.概述 1.是什么 简单说, Thymeleaf 是一个跟 Velocity.FreeMarker 类 ...
- Excption与Error包结构。OOM你遇到过哪些情况,SOF你遇到过哪些情况
Java语言把异常当做对象来处理,并定义了一个基类(java.util.Throwable)作为所有异常的父类.异常分为Error和Exception两大类. Error 不可恢复的异常. 程序中不推 ...