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(一)_增删改查的更多相关文章

  1. PHP学习之[第08讲]数据库MySQL基础之增删改查

    一.工具: 1.phpMyAdmin (http://www.phpmyadmin.net/) 2.Navicat (http://www.navicat.com/) 3.MySQL GUI Tool ...

  2. 使用JDBC分别利用Statement和PreparedStatement来对MySQL数据库进行简单的增删改查以及SQL注入的原理

    一.MySQL数据库的下载及安装 https://www.mysql.com/ 点击DOWNLOADS,拉到页面底部,找到MySQL Community(GPL)Downloads,点击 选择下图中的 ...

  3. MySQL数据库之表的增删改查

    目录 MySQL数据库之表的增删改查 1 引言 2 创建表 3 删除表 4 修改表 5 查看表 6 复制表 MySQL数据库之表的增删改查 1 引言 1.MySQL数据库中,数据库database就是 ...

  4. MySQL数据库 | 数据表的增删改查

    MySQL数据的增删改查(crud) 本文结构 一.增加 create 二.修改 update 三.查询 retrieve(简单查询,下篇详细展开) 四.删除 delete 首先,创建简单的class ...

  5. sqlite数据库操作详细介绍 增删改查,游标

    sqlite数据库操作详细介绍 增删改查,游标     本文来源于www.ifyao.com禁止转载!www.ifyao.com Source code     package com.example ...

  6. Delphi - cxGrid连接Oracle数据库 实现数据的增删改查

    cxGrid连接Oracle数据库 实现数据的增删改查 cxGrid连接Oracle数据库 1:通过OraSession连接数据库.OraDataSet实现OraSession和OraDataSour ...

  7. java数据库(MySQL)之增删改查

    1.查询数据 先救从简单的来吧,之前我们实现了将数据库表格信息读取到一个List集合中,数据库的查询,实 际上就是对这个集合的查询: public class Show { public static ...

  8. Mysql数据库和表的增删改查以及数据备份&恢复

    数据库 查看所有数据库 show databases; 使用数据库 use 数据库名; 查看当前使用的数据库 select database(); 创建数据库 create database 数据库名 ...

  9. Python操作MySQL数据库完成简易的增删改查功能

    说明:该篇博客是博主一字一码编写的,实属不易,请尊重原创,谢谢大家! 目录 一丶项目介绍 二丶效果展示 三丶数据准备 四丶代码实现 五丶完整代码 一丶项目介绍 1.叙述 博主闲暇之余花了10个小时写的 ...

随机推荐

  1. 记录XorDDos木马清理步骤

    1.检查 查看定时任务文件发现有两个异常定时任务 [root@manage ~]# cat /etc/crontab # * * * * * user-name command to be execu ...

  2. MyBatis中的$和#,用不好,准备走人!

    作者:程序猿的内心独白 https://m.toutiaocdn.com/i6685496024770806280 这是一次代码优化过程中发现的问题,在功能优化后发现部分数据查不到出来了,问题就在于一 ...

  3. An easy problem (位运算)

    [题目描述] 给出一个整数,输出比其大的第一个数,要求输出的数二进制表示和原数二进制表示下1的个数相同. [题目链接] http://noi.openjudge.cn/ch0406/1455/ [算法 ...

  4. python学习第十七天字符串的创建和操作方法

    字符串也是任何编程语言最常见的编程语言,字符串是有序的,可以通过下标来访问,可以切片,可以查找,可以替换,字符串可以和列表之间互相转换 join() split() 等函数 1,字符串的创建 单引号 ...

  5. JavaScript的进制转换

    先介绍两个API: 一.number 类型的 toString 方法 语法 JavaScript: numberObject.toString( [ radix ] ) 参数 参数 描述 radix ...

  6. PF_INET 与驱动

    https://blog.csdn.net/trustnature/article/details/7849562 ? ? ?

  7. LOJ6252. 「CodePlus 2017 11 月赛」大吉大利,晚上吃鸡! 最短路+bitset

    题目传送门 https://loj.ac/problem/6252 https://lydsy.com/JudgeOnline/problem.php?id=5109 题解 首先跑最短路,只保留 \( ...

  8. Linux中的touch命令总结(一)

    touch命令有两个主要功能: 改变 timestamps 新建_空白_文件 例如,不带任何参数地输入: touch file1 file2 file3 将在当前目录下新建三个空白文件:file1, ...

  9. 【leetcode】719. Find K-th Smallest Pair Distance

    题目如下: 解题思路:对于这一类知道上限和下限,求第N位是什么的题目,可以先看看二分查找的方法可不可行.首先对nums进行排序,很显然任意两个元素距离绝对值最小是0,最大是nums[-1] - num ...

  10. 【JVM】吞吐量与延迟关系

    堆内存增大,gc一次能处理的数量变大,吞吐量大:但是gc一次的时间会变长,导致后面排队的线程等待时间变长: 向反,如果堆内存小,gc一次时间短,排队等待的线程等待时间变短,延迟减少,但一次请求的数量变 ...