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

边栏推荐
- The Oracle 11g RAC cluster database cannot be started due to directory permission errors
- Redis
- 爱
- Yarn: unable to load file c:\users\xxx\appdata\roaming\npm\yarn PS1 because running scripts is prohibited on this system
- When they are in private, they have a sense of propriety
- I've been doing software testing for two years. I'd like to give some advice to girls who are still hesitating
- Test / development programmers, 30, do you feel confused? And where to go
- ida中交叉引用的解析
- Once beego failed to find bee after passing the go get command Exe's pit
- 都2022年了,你还不了解什么是性能测试?
猜你喜欢
![[STL source code analysis] configurator (to be supplemented)](/img/87/0ed1895e9cdb5327411c0c9cb0197f.png)
[STL source code analysis] configurator (to be supplemented)

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

When they are in private, they have a sense of propriety

Intranet learning notes (5)

Talking about the advantages of flying book in development work | community essay solicitation

使用ShaderGraph制作边缘融合粒子Shader的启示

Folding screen will become an important weapon for domestic mobile phones to share the apple market

记一次beego通过go get命令后找不到bee.exe的坑

Leecode learning notes - the shortest path for a robot to reach its destination

Rod and Schwartz cooperated with ZhongGuanCun pan Lianyuan Institute to carry out 6G technology research and early verification
随机推荐
Network planning | [four network layers] knowledge points and examples
打新债100%中签的方法 开户是安全的吗
请问polarDB数据库可以通过mysql进行数据源连接吗
Getting started with unityshader - Surface Shader
把 Oracle 数据库从 Windows 系统迁移到 Linux Oracle Rac 集群环境(1)——迁移数据到节点1
一线城市软件测试工资——你拖后腿了吗
Is it out of reach to enter Ali as a tester? Here may be the answer you want
Pit entry machine learning: I. Introduction
都2022年了,你还不了解什么是性能测试?
GO同步等待组
对进程内存的实践和思考
Sumati gamefi ecological overview, element design in the magical world
爱
Squid 代理服务器之 ACL 访问控制
JS regular matching numbers, upper and lower case letters, underscores, midlines and dots [easy to understand]
把 Oracle 数据库从 Windows 系统迁移到 Linux Oracle Rac 集群环境(4)—— 修改 oracle11g rac 集群的 scanIP
Mall project pc--- product details page
Advanced mathematics | proficient in mean value theorem problem solving routines summary
ida中交叉引用的解析
Intranet learning notes (7)