数据表准备:

CREATE TABLE student3 (
id int,
name varchar(20),
age int,
sex varchar(5),
address varchar(100),
math int,
english int
); INSERT INTO student3(id,NAME,age,sex,address,math,english) VALUES
(1,'马云',55,'男','杭州',66,78),
(2,'马化腾',45,'女','深圳',98,87),
(3,'马景涛',55,'男','香港',56,77),
(4,'柳岩',20,'女','湖南',76,65),
(5,'柳青',20,'男','湖南',86,NULL),
(6,'刘德华',57,'男','香港',99,99),
(7,'马德',22,'女','香港',99,99),
(8,'德玛西亚',18,'男','南京',56,65);

sql注释:

  • 单行注释

    -- 这是单行注释 注意--后面加一个空格再写内容
    # 这也是单行#号注释 一般在cmd上写
  • 多行注释
    /*
    多行注释
    */

查询语句:

1. 简单查询: select  *  from 表名

select * from student3   -- 查询student3所以信息
select id from student3 -- 查询表中的字段 id
select id,name,sex from student3 -- 查询student3中的字段id name sex
/*
*代表查询所有,多个字段查询,查询的字段使用逗号隔开
*/

2.where查询  where 关键字

where 关键字代表条件根据什么条件来查询
*/
select * from student3 where id = 1; -- 查询id为1的所有字段信息
select * from student3 where name = "马云" -- 查询name等于马云的信息

3.比较运算符查询

>大于  <小于   <=小于等于    >=大于等于    等于    <>!=不等于

select * from student3 where math > 66   -- 查询数学成绩大于66的所有学生信息
select name from student3 where english = 0 -- 查询英语成绩等于null的学生姓名

4.逻辑运算符查询

and(&&) 多个条件同时满足     or(||) 多个条件其中一个满足      not(!) 不满足

select name from student3 where math = 56 && english = 77 -- 查询数学为56 且 英语为77的学生姓名
select * from student3 where sex in('女'); -- 查询性别为女的信息
select * from student3 where sex not in('女') -- 查询性别不为女的信息

5.between 值1 and 值2   查询在值1和值2之间的数据    表示从值1到值2范围,包头又包尾

select * from student3 where math between 56 and 99  -- 查询数学分数在56到90之间的学生信息
select * from student3 where math>=56 and math<=99 -- 等同于 上面

6.like ,模糊查询

格式:SELECT * FROM 表名 WHERE 字段名 LIKE '通配符字符串';

通配符字符串:

  • %: 表示0个或多个字符(任意个字符)
  • _: 表示一个字符
select * from student3 where name like "马%";  -- 查询所有姓马的信息
select * from student3 where name like "马_"; -- 查询姓马且名字是两个字的信息

7.排序

order by 子句:可以将查询出的结果进行排序(排序只是显示方式,不会影响数据库中数据的顺序)

ASC: 升序, 默认是升序 ; DESC: 降序

select * from student3  order by id;  -- 根据id升序查询
select * from student3 order by id desc -- 根据id降序查询 select * from student3 order by name desc -- 根据姓名降序查询 根据首字母 排序

组合排序:

select * from student3 order by math asc,english asc  -- 根据数学成绩培训,英语成绩排序

8.聚合函数查询

五个聚合函数:

  • count: 统计指定列记录数,记录为NULL的不统计
  • sum: 计算指定列的数值和,如果不是数值类型,那么计算结果为0
  • max: 计算指定列的最大值
  • min: 计算指定列的最小值
  • avg: 计算指定列的平均值,如果不是数值类型,那么计算结果为0
select count(*) 信马的人数 from student3 where  name like "马%"  -- 查询有多少个学生

select sum(math) 总分数 from student3    -- 求班级总分数

select max(math) 数学最高分 from student3  -- 数学最高分

select min(english) 英语最低分 from student3 -- 英语最低分

select avg(math) 数学平均分 from student3  -- 求数学平均分

9.limit关键字

limit:是限制的意思,所以LIMIT的作用就是限制查询记录的条数。 用于分页查询

语法:LIMIT offset,length; 或者limit length; offset是指偏移量,可以认为是跳过的记录数量,默认为0 length是指需要显示的总记录数

select * from student3 limit 0,3   -- 查询第一条开始(包含第一条)后面三条数据

select * from student3 limit 3,3   -- 查询从第四条开始后面的三条数据

limit应用场景:

-- 每页显示5条
-- 第一页: LIMIT 0,5; 跳过0条,显示5条
-- 第二页: LIMIT 5,5; 跳过5条,显示5条
-- 第三页: LIMIT 10,5; 跳过10条,显示5条
SELECT * FROM student3 LIMIT 0,5;
SELECT * FROM student3 LIMIT 5,5;
SELECT * FROM student3 LIMIT 10,5;

10.别名查询 as 关键字  as可以省略 

select name as 学生姓名,age as 学生年龄 from student3 -- 查询学生姓名和年龄并设置别名

在查询时,数据库查询会展示字段名,我们可以使用别名来改变它的展示 查询时给列、表指定别名需要使用as 关键字

select name 学生姓名,age 学生年龄 from student3 -- 查询学生姓名和年龄并设置别名

对比如下:

select name,age from student3 -- 查询学生姓名和年龄不设置别名、

添加语句:

常规语句:INSERT INTO 表名 (字段名1, 字段名2, 字段名3…) VALUES (值1, 值2, 值3);

insert into student3(`name`,age,sex,address,math,english) values ('常将',21,'男','广东',98,68)  -- 插入一条数据

省略语句:INSERT INTO 表名 VALUES (值1, 值2, 值3…);

insert into student3 values (18,'常将',21,'男','广东',98,68)  -- 插入一条数据

插入多条语句::INSERT INTO 表名 VALUES (值1, 值2, 值3…),(值1, 值2, 值3…),(值1, 值2, 值3…),(值1, 值2, 值3…)..... ;

insert into student3 (`name`,age,sex,address,math,english)
values
('常将1',21,'男','广东',98,68),
('常将2',21,'男','广东',98,68),
('常将3',21,'男','广东',98,68),
('常将4',21,'男','广东',98,68),
('常将5',21,'男','广东',98,68);

注意: 

1. insert into student3 values (18,'常将',21,'男','广东',98,68)  -- 插入一条数据  
2、 insert into student3(`name`,age,sex,address,math,english) values ('常将',21,'男','广东',98,68)  -- 插入一条数据 

区别:第一条,没有限制插入的字段,所有默认插入数据库的全部字段,使用主键id也要添加上去,第二条,指定了字段个数,由于id是主键自增所有我就不写了,当然加上去也是可以的。

蠕虫复制 :INSERT INTO 表名1 SELECT * FROM 表名2;

CREATE TABLE student2 LIKE student3;     -- 首先创建一个表结构一样的表
insert into student2 select * from student3 -- 进行复制

注:表1和表2的表结构要一致

修改语句:

语法:UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值

update student3 set `name` = '柳依依' where id = 4 -- 将id为4的名字修改为柳依依
update student3 set age = 22 where `name` = '马云' -- 将名字为马云的年龄修改为 22

注:修改语句一定要跟一个where条件

删除语句:

删除表全部数据: DELETE FROM 表名;

delete from student2  -- 删除表student2 的数据、

摧毁表:TRUNCATE TABLE 表名;

truncate table student2   -- 摧毁表student2 的数据

根据条件删除:DELETE FROM 表名 WHERE 字段名=值;

delete from student3 where id = 18 -- 删除id为18的 学生数据
delete from student3 where id = 19 || id = 20  -- 删除id 为 19 和为20 的学生数据

个人学习,内容简略

MYSQL语法(一)的更多相关文章

  1. MYSQL 语法大全自己总结的

    mysql语法大全 --------数据链接---------------------数据库服务启动net start mysql --关闭服务net stop mysql --登录 -u,-p后面不 ...

  2. 学习mysql语法--基础篇(一)

      前  言  mysql  mysql语法--本篇学习都是通过使用Navicat Premium(数据库管理工具),连接mysql数据. 本篇学习主要有两个部分:    一.创建用户,创建数据库,给 ...

  3. 学习mysql语法--基础篇(二)

      前  言  mysql  mysql语法--本篇学习都是通过使用Navicat Premium(数据库管理工具),连接mysql数据. 本篇学习主要有两个部分: [SQL语句的组成]   DML ...

  4. mysql语法之case when then与列转行

    mysql语法中case when then与列转行的使用场景非常丰富. case语句类似java中条件分支语句的作用,可以类比java中的switch语句或者if语句来学习. 其语法如下: case ...

  5. mongo 与 传统mysql语法对比

    MongoDB语法                                  MySql语法 db.test.find({'name':'foobar'})<==> select ...

  6. Mongodb与mysql语法比较

    Mongodb与mysql语法比较   mongodb与mysql命令对比 传统的关系数据库一般由数据库(database).表(table).记录(record)三个层次概念组成,MongoDB是由 ...

  7. mongodb linux基本启动 基础增删改 mysql语法的对比

    一.主流数据源类型 还存在自定义数据源以及REST接口数据,共6中数据源. 二.linux下启动连接数据库 进去mongodb的目录启动服务:mongo --host 192.168.320.826 ...

  8. mysql 基础篇5(mysql语法---数据)

    6 增删改数据 -- ********一.增删改数据********* --- -- 1.1 增加数据 -- 插入所有字段.一定依次按顺序插入 INSERT INTO student VALUES(1 ...

  9. MongoDB(五)mongo语法和mysql语法对比学习

    我们总是在对比中看到自己的优点和缺点,对于mongodb来说也是一样,对比学习让我们尽快的掌握关于mongodb的基础知识. mongodb与MySQL命令对比 关系型数据库一般是由数据库(datab ...

  10. mysql 语法总结

    设置SQL语句所用的字符编码:set names UTF8; 判断指定的数据库是否存在:DROP DATABASE IF EXISTS  库; 开始使用指定的数据库:USE 库; 创建数据库CREAT ...

随机推荐

  1. Java基础篇(03):流程控制语句,和算法应用

    本文源码:GitHub·点这里 || GitEE·点这里 一.分支语句 流程控制语句对任何一门编程语言都是非常重要的,Java中基于流程控制程序执行的不同步骤和代码块. 1.IF条件 IF条件语句会根 ...

  2. 来自马铁大神的Spark10年回忆录

    本篇分享来自Martei在Spark AI Submit 2020的开场分享. 马铁是谁 什么!你不知道马铁是谁?Martei Zaharia(说实话,不知道谁给起的中文名字叫马铁,跟着叫就是了),现 ...

  3. [C#.NET 拾遗补漏]06:单例模式实佳实践

    大家好,这是[C#.NET 拾遗补漏]专辑的第 06 篇文章.今天讲讲大家熟悉的单例模式. 单例模式大概是所有设计模式中最简单的一种,如果在面试时被问及熟悉哪些设计模式,你可能第一个答的就是单例模式. ...

  4. PHP zip_entry_close() 函数

    定义和用法 zip_entry_close() 函数关闭由 zip_entry_open() 函数打开的 zip 档案.高佣联盟 www.cgewang.com 语法 zip_entry_close( ...

  5. PHP constant() 函数

    实例 返回一个常量的值: <?php//define a constantdefine("GREETING","Hello you! How are you tod ...

  6. 大话Android中的Handler机制

    在Android的线程间通信中,Handler独当一面,无论是framework层还是app层中都出现的相当频繁,有必要好好的拿出来深挖一下它的实现原理.而要说Handler的通信机制,除了Handl ...

  7. 授人以渔:stm32资料查询技巧

    摘要:本章以stm32f103作为案例向大家讲解arm公司和st公司的关系以及我们在对stm32开发时需要如何正确的查找手册. ARM公司和ST公司的关系 这里要从一块芯片的生产说起,比如我们要生成一 ...

  8. Android SP的具体内容

    过了这么久了,看看自己的园龄都17天了,一直在总结,从未缺席,我还是很开心的,踏踏实实的完成自己能学到的. 今天学习SP SP:全称SharedPreferences,别问我为啥知道,因为打了好多遍了 ...

  9. C#LeetCode刷题-堆

    堆篇 # 题名 刷题 通过率 难度 23 合并K个排序链表   39.4% 困难 215 数组中的第K个最大元素   51.5% 中等 218 天际线问题   32.9% 困难 239 滑动窗口最大值 ...

  10. C#开发笔记之03-为什么选择IsNotXXX方法而不是IsXXX方法?

    C#开发笔记概述 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/959 访问. 为什么有时候要选择IsNotXXX方法而 ...