当前位置:网站首页>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='紫霞仙子';

边栏推荐
- leecode学习笔记-机器人走到终点的最短路径
- The Oracle 11g RAC cluster database cannot be started due to directory permission errors
- LeetCode 210:课程表 II (拓扑排序)
- Once beego failed to find bee after passing the go get command Exe's pit
- 记一次beego通过go get命令后找不到bee.exe的坑
- F - Spices(线性基)
- LINQ 查询(3)
- Application of TSDB in civil aircraft industry
- 国信金太阳打新债步骤 开户是安全的吗
- ProcessOn制作ER过程(自定义)
猜你喜欢

Use of hashcat

How transformers Roberta adds tokens

Lizuofan, co-founder of nonconvex: Taking quantification as his lifelong career

Rod and Schwartz cooperated with ZhongGuanCun pan Lianyuan Institute to carry out 6G technology research and early verification

AI服装生成,帮你完成服装设计的最后一步

Software testing weekly (issue 77): giving up once will breed the habit of giving up, and the problems that could have been solved will become insoluble.

Intranet learning notes (7)

Once beego failed to find bee after passing the go get command Exe's pit

一线城市软件测试工资——你拖后腿了吗

I've been doing software testing for two years. I'd like to give some advice to girls who are still hesitating
随机推荐
消息称一加将很快更新TWS耳塞、智能手表和手环产品线
LINQ 查询(3)
把 Oracle 数据库从 Windows 系统迁移到 Linux Oracle Rac 集群环境(2)——将数据库转换为集群模式
Application of TSDB in civil aircraft industry
doak-cms 文章管理系统 推荐
爱
Migrate Oracle database from windows system to Linux Oracle RAC cluster environment (2) -- convert database to cluster mode
Call system function security scheme
Once beego failed to find bee after passing the go get command Exe's pit
Migrate Oracle database from windows system to Linux Oracle RAC cluster environment (1) -- migrate data to node 1
[i.mx6ul] u-boot migration (VI) network driver modification lan8720a
Talking about the advantages of flying book in development work | community essay solicitation
ARM汇编中的栈桢小结
How to uninstall CUDA
Jetson nano from introduction to practice (cases: opencv configuration, face detection, QR code detection)
[STL source code analysis] configurator (to be supplemented)
给你讲懂 MVCC 续篇
Uncaught Error: [About] is not a <Route> component. All component children of <Routes> must be a <Ro
算力服务网络:一场多元融合的系统革命
目录权限错误导致 Oracle 11g rac 集群数据库无法启动的问题