MYSQL语法(一)
数据表准备:
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
: 计算指定列的数值和,如果不是数值类型,那么计算结果为0max
: 计算指定列的最大值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语法(一)的更多相关文章
- MYSQL 语法大全自己总结的
mysql语法大全 --------数据链接---------------------数据库服务启动net start mysql --关闭服务net stop mysql --登录 -u,-p后面不 ...
- 学习mysql语法--基础篇(一)
前 言 mysql mysql语法--本篇学习都是通过使用Navicat Premium(数据库管理工具),连接mysql数据. 本篇学习主要有两个部分: 一.创建用户,创建数据库,给 ...
- 学习mysql语法--基础篇(二)
前 言 mysql mysql语法--本篇学习都是通过使用Navicat Premium(数据库管理工具),连接mysql数据. 本篇学习主要有两个部分: [SQL语句的组成] DML ...
- mysql语法之case when then与列转行
mysql语法中case when then与列转行的使用场景非常丰富. case语句类似java中条件分支语句的作用,可以类比java中的switch语句或者if语句来学习. 其语法如下: case ...
- mongo 与 传统mysql语法对比
MongoDB语法 MySql语法 db.test.find({'name':'foobar'})<==> select ...
- Mongodb与mysql语法比较
Mongodb与mysql语法比较 mongodb与mysql命令对比 传统的关系数据库一般由数据库(database).表(table).记录(record)三个层次概念组成,MongoDB是由 ...
- mongodb linux基本启动 基础增删改 mysql语法的对比
一.主流数据源类型 还存在自定义数据源以及REST接口数据,共6中数据源. 二.linux下启动连接数据库 进去mongodb的目录启动服务:mongo --host 192.168.320.826 ...
- mysql 基础篇5(mysql语法---数据)
6 增删改数据 -- ********一.增删改数据********* --- -- 1.1 增加数据 -- 插入所有字段.一定依次按顺序插入 INSERT INTO student VALUES(1 ...
- MongoDB(五)mongo语法和mysql语法对比学习
我们总是在对比中看到自己的优点和缺点,对于mongodb来说也是一样,对比学习让我们尽快的掌握关于mongodb的基础知识. mongodb与MySQL命令对比 关系型数据库一般是由数据库(datab ...
- mysql 语法总结
设置SQL语句所用的字符编码:set names UTF8; 判断指定的数据库是否存在:DROP DATABASE IF EXISTS 库; 开始使用指定的数据库:USE 库; 创建数据库CREAT ...
随机推荐
- PPT如何转换为Word文档?
首先,打开你要转换的PPT,按F12键,此时会跳出另存为窗口,如图: 然后点击保存类型,选择RTF文件,保存到指定路径即可. 找到保存好的RTF文件,用word打开即可.
- C#中使用ajax请求
ajax简介 Ajax 即“Asynchronous Javascript And XML”(异步 JavaScript 和 XML),是指一种创建交互式.快速动态网页应用的网页开发技术,无需重新加载 ...
- 蜻蜓点水说说Redis的String的奥秘
本篇博客参考:掘金Redis小册 敖丙 如果面试官问你,单线程的Redis为什么那么快,你可能脱口而出,因为单线程,避免上下文切换:因为基于内存,比硬盘读写快很多:因为采用的是多路复用网络模型.不管你 ...
- MacOS下ElasticSearch学习(第二天)
ElasticSearch第二天 学于黑马和传智播客联合做的教学项目 感谢 黑马官网 传智播客官网 微信搜索"艺术行者",关注并回复关键词"elasticsearch&q ...
- MySQL三种InnoDB、MyISAM和MEMORY存储引擎对比
什么是存储引擎? MySQL中的数据用各种不同的技术存储在文件(或者内存)中.这些技术中的每一种技术都使用不同的存储机制.索引技巧.锁定水平并且最终提供广泛的不同的功能和能力.通过选择不同的技术,你能 ...
- LeetCode刷题时引发的思考:Java中ArrayList存放的是值还是引用?
好好学习,天天向上 本文已收录至我的Github仓库DayDayUP:github.com/RobodLee/DayDayUP,欢迎Star,更多文章请前往:目录导航 前言 今天我在刷LeetCode ...
- 属性集 Properties
5.1 概述 java.util.Properties 继承于 Hashtable ,来表示一个持久的属性集.它使用键值结构存储数据,每个键及其对应值都是一个字符串.该类也被许多Java类使用,比如获 ...
- Linux-sed命令使用笔记
Linux的sed命令和python脚本一起,可以对文本进行快速的修改.比如在删除日志的时候,python写出固定日期删除脚本,再用sed循环将python脚本的日期修改调用,就可以批删除指定日期的日 ...
- Meow 攻击会删除不安全(开放的)的Elasticsearch(及MongoDB) 索引,然后建一堆以Meow结尾的奇奇怪怪的索引(如:m3egspncll-meow)
07月29日,早上照例一来,先连接Elasticsearch查看日志[禁止转载,by @CoderBaby],结果,咦,什么情况,相关索引被删除了,产生了一堆以Meow开头的奇奇怪怪的索引,如下图: ...
- “随手记”开发记录day11
今天,我们团队针对每个团队对我们项目的意见或建议进行了探讨,决定了接下来需要改进的地方: (1)背景图片和颜色搭配: (2)增加修改功能: (3)对功能进行更明显划分,让使用者能够更方便的使用.