增删改查sql语句(增删改查sql语句例子)

增删改查sql语句(增删改查sql语句例子)打开 Navicat 或者终端指令界面 没有的话看上篇文章 下文都是以 Navicat 为例 右键 localhost 新建数据库 数据库名称看自己喜欢 字符集和排序顺序如图 再点击确定 双击 test 点击左上角新建查询 control

大家好,我是讯享网,很高兴认识大家。



打开Navicat或者终端指令界面(没有的话看上篇文章)(下文都是以Navicat为例)

右键localhost新建数据库,数据库名称看自己喜欢,字符集和排序顺序如图,再点击确定


讯享网

双击test,点击左上角新建查询,control CV输入以下代码快速创建三个表并录入相应数据

create table students(
    id int auto_increment primary key,
    name varchar(20),
    age int,
    height float,
    gender char(10),
    cls_id int,
    is_delete int
);

create table teachers(
    id int primary key,
    name varchar(20)
);

create table classes(
    id int primary key,
    teacher_id int,
    cls_content varchar(100),
    cls_date datetime,
    name varchar(50)
);

INSERT INTO `students` (`id`, `name`, `age`, `height`, `gender`, `cls_id`, `is_delete`) VALUES (1, '小明', 18, 180, '女', 1, 0);
INSERT INTO `students` (`id`, `name`, `age`, `height`, `gender`, `cls_id`, `is_delete`) VALUES (2, '小月月', 18, 180, '女', 2, 1);
INSERT INTO `students` (`id`, `name`, `age`, `height`, `gender`, `cls_id`, `is_delete`) VALUES (3, '彭于晏', 29, 185, '男', 1, 0);
INSERT INTO `students` (`id`, `name`, `age`, `height`, `gender`, `cls_id`, `is_delete`) VALUES (4, '刘德华', 59, 175, '男', 2, 1);
INSERT INTO `students` (`id`, `name`, `age`, `height`, `gender`, `cls_id`, `is_delete`) VALUES (5, '黄蓉', 38, 160, '女', 1, 0);
INSERT INTO `students` (`id`, `name`, `age`, `height`, `gender`, `cls_id`, `is_delete`) VALUES (6, '凤姐', 28, 150, '保密', 2, 1);
INSERT INTO `students` (`id`, `name`, `age`, `height`, `gender`, `cls_id`, `is_delete`) VALUES (7, '王祖贤', 18, 172, '保密', 1, 1);
INSERT INTO `students` (`id`, `name`, `age`, `height`, `gender`, `cls_id`, `is_delete`) VALUES (8, '周杰伦', 36, NULL, '男', 3, 0);
INSERT INTO `students` (`id`, `name`, `age`, `height`, `gender`, `cls_id`, `is_delete`) VALUES (9, '程坤', 27, 181, '男', 2, 0);
INSERT INTO `students` (`id`, `name`, `age`, `height`, `gender`, `cls_id`, `is_delete`) VALUES (10, '刘亦菲', 25, 166, '男', 2, 0);
INSERT INTO `students` (`id`, `name`, `age`, `height`, `gender`, `cls_id`, `is_delete`) VALUES (11, '猪猪侠', 33, 162, '保密', 3, 1);
INSERT INTO `students` (`id`, `name`, `age`, `height`, `gender`, `cls_id`, `is_delete`) VALUES (12, '静香', 12, 180, '女', 2, 0);
INSERT INTO `students` (`id`, `name`, `age`, `height`, `gender`, `cls_id`, `is_delete`) VALUES (13, '郭靖', 12, 170, '男', 3, 0);
INSERT INTO `students` (`id`, `name`, `age`, `height`, `gender`, `cls_id`, `is_delete`) VALUES (14, '周杰', 34, 176, '女', 1, 0);

INSERT INTO `teachers` (`id`, `name`) VALUES (1, '赵老师');
INSERT INTO `teachers` (`id`, `name`) VALUES (2, '孙老师');
INSERT INTO `teachers` (`id`, `name`) VALUES (3, '李老师');
INSERT INTO `teachers` (`id`, `name`) VALUES (4, '周老师');

INSERT INTO `classes` (`id`, `teacher_id`, `cls_content`, `cls_date`, `name`) VALUES (1, 1, '班级学生有较强的学习能力', '2024-10-01 00:00:00', 'python_01期');
INSERT INTO `classes` (`id`, `teacher_id`, `cls_content`, `cls_date`, `name`) VALUES (2, 2, '班级学生比较顽皮', '2024-11-01 00:00:00', 'python_02期');
INSERT INTO `classes` (`id`, `teacher_id`, `cls_content`, `cls_date`, `name`) VALUES (3, 2, '数据结构班', '2024-11-01 00:00:00', 'data_struct_01期');

输入完运行后左边表选项会出现三个表(没有的话右键表刷新)students,classes,teachers如下

至此准备工作结束!!!

SQL(Structured Query Language)结构化查询语言 ,是访问和处理数据库的标准的计算机语言,基本上包括以下种。

语法格式为:insert into 表名表中字段名values();

*为了避免表结构发生变化引发错误,建议要与表中字段名一一对应

例如:向students表中插入一段数据

insert into students (id,name,age,height,gender,cls_id,is_delete)

values (0,'小华',18,180,2,1,0)

结果如下(上述代码运行成功后运行SELECT * FROM students;指令查看students表)

如果要向表中插入多个数据,使用‘,’隔开

例如:同时插入两条数据

*为了避免表结构发生变化引发错误,建议要与表中字段名一一对应

语法格式为:update 表名 字段名=值字段名=值,......where条件;

例如:将所有学生的姓名改成lisi

UPDATE student SET name = 'lisi';

将名为lisi的学生性别改为女

UPDATE student SET gender = '女' WHERE name = 'lisi';

*1、更新多列数据使用逗号隔开;2、添加条件限制

语法格式为:delete from 表名 [where条件];

例如:删除名为lisi的学生

DELETE FROM student where name = 'lisi';

语法格式为:truncate table 表名;

*truncate删除数据但表还在,且不能加条件;delete删除数据可以加条件

语法格式为:select 列名 from 表名;

例如:查询所有学生信息

select * from students;

查询所有学生的id,姓名,性别

SELECT id,name,age FROM students;

语法格式为:select 列名 from 表名 where 条件

例如:查询体重为180的学生信息

SELECT * FROM students WHERE height=180;

语法格式为:select 列名 from 表名 where 条件 运算符 条件;

例如:查询性别为女并且在2班的学生的信息

SELECT * FROM students WHERE gender='女' and cls_id=2;

语法格式为:

SELECT 列名 FROM 表名 WHERE 字段 LIKE '';

例如:查询名字里面包含'小'的学生的信息

SELECT * FROM students WHERE name like '小%';

语法格式为:

SELECT 列名 FROM 表名 WHERE 字段 IN (值1,值2,....);

例如:查询id为8,9,10的学生信息

SELECT * FROM students WHERE id IN(8,9,10);

语法格式为:

SELECT 列名 FROM 表名 WHERE 字段 BETWEEN 值1 and 值2;

例如:查询id为7-10的学生的信息

SELECT * FROM students WHERE id BETWEEN 7 AND 10;

语法格式为:

SELECT DISTINCT 字段名1,字段名2...... FROM 表名;

例如:查询性别有几种分类

select distinct gender as '性别' from students;

语法格式为:

SELECT <字段名列表>

FROM <表名>

[WHERE<查询条件> ]

[ORDER BY<排序的列名>]

[ASC 或 DESC];

例如:将学生的身高按照升序排列

select * from students order by height;

将学生的身高按照降序排列

select * from students order by height desc;

语法格式为:

SELECT <字段名列表>

FROM <表名>

[WHERE <查询条件>]

[ORDER BY<排序的列名> [ASC 或 DESC]]

[LIMIT <行数>];

例如:只看前3条学生信息

select * from students limit 3;

内连接是返回连接表中符合连接条件记录的连接查询。

包括:显式内连接、隐式内连接

1.1显示内连接查询

语法格式为:

SELECT 字段 FROM 表1

INNER JOIN 表2

ON 连接条件

[WHERE 条件];

例如:查看学生所在班级

SELECT students.name,classes.name FROM students INNER JOIN classes ON students.cls_id=classes.id;

查看学生所在班级并且班级是1

SELECT students.name,classes.name FROM students INNER JOIN classes ON students.cls_id=classes.id WHERE students.cls_id=1;

1.2隐式内连接查询

语法格式为:

SELECT 字段

FROM 表1,表2

WHERE 表1.条件=表2.条件;

例如:

查看学生所在班级

select s.name as '名字',c.name as '班级' from students s, classes c where s.cls_id = c.id;

2.1左外连接查询

左外连接是以左表为基表,返回左表中所有记录及连接表中符合条件的记录的外连接。

语法格式为:

SELECT 字段 FROM 表1

LEFT [outer] JOIN 表2

ON 连接条件

[WHERE 条件];

例如:查看老师所在班级

select c.name,t.name from classes c left join teachers t on c.teacher_id = t.id;

2.2右外连接查询

右外连接是以右表为基表,返回右表中所有记录及连接表中符合条件的记录的外连接。

语法格式为:

SELECT 字段 FROM 表1

RIGHT [outer] JOIN 表2

ON 连接条件

[WHERE 条件];

例如:

查看老师所在班级

select classes.name,teachers.name from classes right join teachers on classes.teacher_id = teachers.id;

语法格式为:

SELECT 聚合函数

FROM 表名

[WHERE 条件]

[GROUP BY 聚合函数];

1.count()-计数

2.sum()-求和

3.max()-最大值

4.min()-最小值

5.avg()-平均值

例如:查询平均身高

查询班级有多少同学

select count(*) as '学生总数' from students;

定义:子查询是在一个查询的内部包括另一个查询的查询方式

例如:查看刘德华同学的所在班级的所有同学

SELECT * FROM students WHERE cls_id=(SELECT cls_id FROM students WHERE NAME='刘德华');

例如:查看赵老师所带的学生信息

SELECT * FROM students WHERE cls_id=ANY(SELECT id FROM classes WHERE teacher_id =(SELECT id FROM teachers WHERE teachers.name='赵老师'));

例如:查看学生所在班级

select * from students where cls_id >= all(select id from classes where teacher_id = (select id from teachers where name='赵老师'));

例如:查看存在王老师的班级表

select * from classes where exists (select * from teachers where name='赵老师');

例如:创建教师表

create table IF NOT EXISTS teachers(

id int primary key,

name varchar(20)

);

*避免重复创建

小讯
上一篇 2025-06-17 13:46
下一篇 2025-05-17 21:03

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/168170.html