当前位置:网站首页>mysql学习笔记--单张表上的增删改查
mysql学习笔记--单张表上的增删改查
2022-06-24 23:43:00 【笑道三千】
注:学习的是这位姐姐的博客https://blog.csdn.net/shine_a?type=blog
一,sql和mysql的区别
SQL是为操作数据库而开发的一种语言。它可以对数据库里的表进行操作,比如修改数据,查找数据。
比如下面这个就是SQL语句。
--增
INSERT INTO <表名> (字段名)VALUES (值);
--删
DELETE FROM <表名> WHERE <筛选条件>;
--改
UPDATE <表名> SET <字段名=值> WHERE <筛选条件>;
--查
SELECT <字段名> FROM <表名> WHERE <筛选条件>;
MySQL是用来管理数据库的计算机软件,这种软件还有Oracle、SQL Server等。
二,安装mysql
下载MySQL:
https://dev.mysql.com/downloads/windows/installer/8.0.html
打开上方网址,会出现下面界面,我们选择第一个 Windows (x86, 32-bit), MSI Installer 安装。
安装Mysql会自带mysql workbench数据库图形化工具。
三,创建数据库,并创建一个新表
-- 创建数据库
CREATE database Xiyouji;
-- 选择数据库
USE Xiyouji;
-- 创建人物表 Roles:
CREATE TABLE Roles(
Sid INT ,
Sname VARCHAR(10),
Sex VARCHAR(10)
);
-- 插入语句
INSERT INTO Roles VALUES
(1 , '猪八戒' , '男'),
(2 , '唐三藏' , '男'),
(3 , '孙悟空' , '男'),
(4 , '沙悟净' , '男'),
(5 , '白龙马' , '男');
四,使用命令行访问数据库
- SQL语句会忽略大小写,SELECT与select是一样的,为了结构清晰,所有SQL关键词都用大写表示。
- SQL语句会忽略缩进和换行,完全是由分号 ; 分割。我们用缩进、换行等只是为了代码看着更美观,结构更清晰。
连接数据库:mysql -u root -p
显示现有数据库:show databases;
选择数据库:use [数据库名]
五,select语句
SELECT语句用来从数据库选取数据,结果会被存储在结果集中。
SELECT <字段名> FROM <表名>;
例如,我们从刚刚创建的“xiyouji”数据库中查找任务表“roles”的所有数据,
1,select *
--选择数据库
USE xiyouji;
--选择查找的表数据
SELECT * FROM ROLES;
2,select 多个字段
SELECT Sname,Sex FROM ROLES;
3,select 多个字段
这些字段可以不是表中现有的列名称,也可以是数学表达式、文本。我们用AS关键字设置列别名(AS可以省略)
SELECT Sname as '姓名',Sex FROM ROLES;
4,SELECT后面的字段,可以用DISTINCT 关键字,将数据去重。
SELECT DISTINCT Sname FROM ROLES;
六,where子句
SELECT <字段名> FROM <表名> WHERE <筛选条件>;
1,比较运算符
WHERE子句中,最常用到的就是比较运算符,包括大于(>)、小于(<)、等于(=)、大于等于(>=)、小于等于(<=)、不等于(!=或者<>)。要注意等于是一个等号而不是两个等号。
SELECT * FROM ROLES WHERE Sname='孙悟空';
2,AND,OR运算符
如果AND和OR同时使用,要注意AND优先级高于OR,但最好加括号,更加清晰一些。
SELECT * FROM ROLES WHERE Sname='孙悟空'OR Sname='沙悟净';
3,IN运算符和NOT IN运算符
SELECT * FROM ROLES WHERE Sname IN ('猪八戒','孙悟空');
4,BETWEEN … AND运算符
BETWEEN … AND区间是包含两端点的。
SELECT * FROM ROLES WHERE Sid BETWEEN 2 AND 4;
5,LIKE运算符和NOT LIKE运算符
模糊匹配时,使用这个,需要配合两个通配符。
%:匹配任意个字符
_:匹配一个字符
SELECT * FROM ROLES WHERE SNAME LIKE '%悟%';
6,REGEXP正则表达式
主要用来搜索字符串,比 LIKE 运算符适用场景要多一些。
^:开头
$:结尾
[abc]:包含abc
[a-c]:包含a-c
|:或
--查找姓名包含“宁”的学生
WHERE Sname REGEXP '宁';
--查找姓名是“宁”开头的学生
WHERE Sname REGEXP '^宁';
--查找姓名是“宁”结尾的学生
WHERE Sname REGEXP '宁$';
--查找姓名是“宁”或“拧“开头的学生
WHERE Sname REGEXP '^[宁柠]';
--查找学生编号Sid是2到5(包括2和5)的学生
WHERE Sid REGEXP '[2-5]';
--查找学生编号Sid是2到5或者7到9(包括2和5,7和9)的学生
WHERE Sid REGEXP '[2-5]|[7-9]';
包含悟字和马字的:
SELECT * FROM ROLES WHERE SNAME REGEXP '[悟马]';
7,IS NULL运算符和IS NOT NULL运算符
SELECT * FROM ROLES WHERE SNAME IS NULL;
七,ORDER BY 排序子句
SELECT <字段名> FROM <表名> ORDER BY <字段名>;
不仅可以给数字排序还可以给文字排序,它的后面的字段名可以是列的名字,列的名字后面还可以加关键字。ASC是升序(默认),DESC是降序。
SELECT * FROM ROLES WHERE SNAME REGEXP '[悟马]' ORDER BY SID DESC;
八,LIMIT子句用来限制返回记录的数量
SELECT <字段名> FROM <表名> LIMIT <限制行数>;
1、取前几条记录
我们可以通过 LIMIT n 取结果集中的前n条记录。
SELECT * FROM ROLES LIMIT 3;
2,跳过前几条记录
可以通过 LIMIT m,n 跳过结果集中的前 m 条记录后的前 n 条记录。
当我们想跳过前3条数据,直接取45两行时:
SELECT * FROM ROLES LIMIT 3,2;
九,INSERT插入语句
INSERT INTO <表名> (列名)VALUES (值);
1,可以不指定列名,插入的值必须按现有的字段顺序完整插入。
insert into roles values(9,'铁扇公主','女');
2,可以指明列名,后面值的顺序,与列名的顺序是对应的就可以。
insert into roles(Sid,Sname) values(10,'紫霞仙子');
3、插入多行,多行数据用括号间逗号隔开就可以了。
insert into roles values(11,'哪吒','男'),(12,'二郎神','男'),(14,'哮天犬','男');
十,UPDATE更新语句
UPDATE <表名> SET <字段名=值> WHERE <筛选条件>;
update roles set Sex='女' where Sname='哪吒';
十一,DELETE删除语句
DELETE FROM <表名> WHERE <筛选条件>;
DELETE FROM ROLES WHERE Sname='紫霞仙子';
边栏推荐
- 计网 | 【四 网络层】知识点及例题
- 消息称一加将很快更新TWS耳塞、智能手表和手环产品线
- UnityShader入门精要——表面着色器
- Is it out of reach to enter Ali as a tester? Here may be the answer you want
- internship:svn的使用
- automated testing
- Detailed explanation of cache (for the postgraduate entrance examination of XD)
- 【STL源码剖析】STL六大组件功能与运用(目录)
- ERROR日志格式与注意点
- 14 bs对象.节点名称.name attrs string 获取节点名称 属性 内容
猜你喜欢
Leecode learning notes - the shortest path for a robot to reach its destination
转行软件测试2年了,给还在犹豫的女生一点建议
jwt
Lihongyi, machine learning 6 Convolutional neural network
DSPACE的性能渲染问题
Sumati gamefi ecological overview, element design in the magical world
使用ShaderGraph制作边缘融合粒子Shader的启示
Talking about the advantages of flying book in development work | community essay solicitation
Planification du réseau | [quatre couches de réseau] points de connaissance et exemples
Rod and Schwartz cooperated with ZhongGuanCun pan Lianyuan Institute to carry out 6G technology research and early verification
随机推荐
automated testing
js正则匹配数字、大小写字母、下划线、中线和点[通俗易懂]
折叠屏将成国产手机分食苹果市场的重要武器
F - Spices(线性基)
Uncaught Error: [About] is not a <Route> component. All component children of <Routes> must be a <Ro
消息称一加将很快更新TWS耳塞、智能手表和手环产品线
It is said that Yijia will soon update the product line of TWS earplugs, smart watches and bracelets
GO同步等待组
After reciting the eight part essay, I won the hemp in June
3年测试经验,连简历上真正需要什么都没搞明白,张口就要20k?
NPM package publishing tutorial
Centos7.3 modifying MySQL default password_ Explain centos7 modifying the password of the specified user in MySQL
[analysis of STL source code] functions and applications of six STL components (directory)
Can the polardb database be connected to the data source through MySQL
Once beego failed to find bee after passing the go get command Exe's pit
Uncaught Error: [About] is not a <Route> component. All component children of <Routes> must be a <Ro
Intranet learning notes (5)
yarn : 无法加载文件 C:\Users\xxx\AppData\Roaming\npm\yarn.ps1,因为在此系统上禁止运行脚本
Unity存档系统——Json格式的文件
Of the seven levels of software testers, it is said that only 1% can achieve level 7