Mysql 的增删查改(基础)

1. CRUD

注释:在SQL中可以使用“--空格+描述”来表示注释说明
CRUD 即增加(Create)、查询(Retrieve)、更新(Update)、删除(Delete)四个单词的首字母缩写
 

2. 增加

在表中插入数据需要先创建一张表

-- 创建一张学生表
create table student(name varchar(10), id int);

2.1 单行数据 +  全列插入

--插入两条记录,values() 中数据 必须和表的列和数量相同
insert into student values ("小明", 1);
insert into student values ("小红", 2);

在表:student中插入了,小明,小红的信息

2.2 多行数据+指定列插入 

--插入两条记录,values() 中数据 必须和指定的列和数量相同
insert into student(name) values ("小强", "小美");

指定插入了小强小美的名字

3. 查询

3.1 全列查询 

-- 通常情况下不建议使用 * 进行全列查询
-- 询的列越多,意味着需要传输的数据量越大;
select * from 表名;

例如要查询刚才 的学生表

select * from student;

 3.2 指定查询

-- 指定列的顺序不需要按定义表的顺序来
select 列名, 列名... from 表名;

3.3 查询表达式

select id + 10 from student;

查询所有学生的id+10

3.4 别名

为查询结果中的列指定别名,表示返回的结果集中,以别名作为该列的名称

select id + 10 as ID from student;

为id +10 命名为 ID

as 可不写

3.5 去重:DISTINCT

例: 这里有一张商品表,我们发现有两个商品的价格都是2

Mysql 的增删查改(基础)_第1张图片  

 使用DISTINCT关键字对某列数据进行去重

 Mysql 的增删查改(基础)_第2张图片

 3.6 排序:ORDER BY

在不使用 order by时,查询返回的顺序是未定义的

例: 这里有一张商品表

 Mysql 的增删查改(基础)_第3张图片

使用 order by 按价格排序:

 Mysql 的增删查改(基础)_第4张图片

也可以在最后加上 desc 以排降序

Mysql 的增删查改(基础)_第5张图片

 注意:NULL 数据排序,视为比任何值都小,升序出现在最上面,降序出现在最下面

 3.7 条件查询:WHERE

 比较运算符::

运算符 说明
>, >=, <, <= 大于,大于等于,小于,小于等于
= 等于,NULL 不安全,例如 NULL = NULL 的结果是 NULL
<=> 等于,NULL 安全,例如 NULL <=> NULL 的结果是 TRUE(1)
!=, <> 不等于
BETWEEN a0 AND  a1 范围匹配,[a0, a1],如果 a0 <= value <= a1,返回 TRUE(1)
IN (option, ...) 如果是 option 中的任意一个,返回 TRUE(1)
IS NULL 是 NULL
IS NOT NULL 不是 NULL
LIKE 模糊匹配。% 表示任意多个(包括 0 个)任意字符;_ 表示任意一个字符

逻辑运算符:

运算符 说明
AND 多个条件必须都为 TRUE(1),结果才是 TRUE(1)
OR 任意一个条件为 TRUE(1), 结果为 TRUE(1)
NOT 条件为 TRUE(1),结果为 FALSE(0)

注:

  • 1. WHERE条件可以使用表达式,但不能使用别名。
  • 2. AND的优先级高于OR,在同时使用时,需要使用小括号()包裹优先执行的部分
     

以上面商品表为例:

查询价格在50以上的商品:

select * from goods where price > 50;

Mysql 的增删查改(基础)_第6张图片

范围查询:
1. BETWEEN ... AND

 查询价格在10 到 50 之间的商品:

select * from goods where price between 10 and 50;

Mysql 的增删查改(基础)_第7张图片

 2. IN

查询价格价格是 2 或 15 或 20 的商品:

 select * from goods where price in (2, 15, 20);

Mysql 的增删查改(基础)_第8张图片

模糊查询:LIKE

% :匹配任意多个字符

_ :匹配一个字符

例:

查询以笔结尾的商品名称:

select * from goods where name like '%笔';

Mysql 的增删查改(基础)_第9张图片

 查询以笔结尾的且只有两个字符的商品名称:

select * from goods where name like '_笔';

 Mysql 的增删查改(基础)_第10张图片

 NULL 的查询:IS [NOT] NULL

查询描述为空的商品:

select * from goods where description is null;

Mysql 的增删查改(基础)_第11张图片

 查询描述不为空的商品:

select * from goods where description is not null;

没有符合描述的商品所以无输出 

3.8 分页查询:LIMIT

限制每次查询的数据数量

从0号下标开始查询两个数据

select * from goods limit 2 offset 0;

Mysql 的增删查改(基础)_第12张图片

 从2号下标开始查询两个数据

select * from goods limit 2 offset 2;

Mysql 的增删查改(基础)_第13张图片

 

 4. 修改(Update)

语法:

update 表名 set 列名 = 数据 (可跟条件指定修改的数据的特征)

 例:

将书包的价格修改为200;

update goods set price = 200 where name = "书包";

Mysql 的增删查改(基础)_第14张图片

5. 删除(Delete)

 语法:

delete from 表名 (可跟条件指定修改的数据的特征 ,不加则是删除所有数据)

例:

删除商品:矿泉水

delete from goods where name = "矿泉水";

你可能感兴趣的:(mysql,java,数据库)