mysql的增删改查(常用)

增(insert)

语法: insert into 表名(字段) values( 字段对应的值)

案例:

创建一个学生表

结构如下:

create table student(id int ,name varchar(20),age int);

向表中插入2条数据

create table student(id int ,name varchar(20),age int);

insert into student (id,name,age) values(2,'tom',19);

查询结果

insert语句的细节

1.插入的数据应与字段的数据类型相同。

insert into student (id,name,age) values (3,'mary',19);

比如把'jack'添加到int类型会错误

2.数据的长度应在列的规定范围内,例如:不能将一个长度为30的字符串加入到长度为20的列中。

insert into student (id,name,age) values (4,'aaaaaaaaaaaaaaaaaaaaaaaaaaaaa',20) --错误

  1. values 中列出的数据位置必须与被加入的列的排列位置相对应

insert into student (id,name,age) values( 'jack',5,28) -- 不对 ;

  1. 字符和日期型数据应包含在单引号中

insert into student (id,name,age) values (3,mary,19); //错误 字符串类型应该加单引号 ''

5.列可以插入空值[前提是该字段允许为空],insertintotablevalue(null)

6.insert into tab_name (列名..) values (),(),() 形式添加多条记录

insert into student (id,name,age) values(5,'sam',20),(6,'luck',21);

  1. 如果是给表中的所有字段添加数据,可以不写前面的字段名称

insert into student values(7,'daming',22);

  1. 默认值的使用,当不给某个字段值时,如果有默认值就会添加默认值,否则报错

-- 如果某个列 没有指定 notnull,那么当添加数据时,没有给定值,则会默认给null

-- 如果我们希望指定某个列的默认值,可以在创建表时指定

删(delete)

语法: delete from 表名 [where查询条件]

删除表中名称为daming的数据

delete from student where name = 'daming'

清空学生表中所有记录

注意:在做删除操作的时候一定记得查看是否要加条件,不加条件表示删除整个表

delete from student

删除student这个表

drop table student

使用细节

改(update)

语法: update 表名 set col_name1 = value1 [,col_name2 = value2...] [where 条件]

1.将所有学生的年龄修改成18岁。[如果没有带where条件,会修改所有的记录,因此要小心]

update student set age = 18 ;

2.将姓名为jack的学生年龄修改为20。

update student set age = 20 where name = 'jack';

3.将mary的年龄在原有基础上增加5岁

update student set age = age + 5 where name = 'mary';

4.修改daming多个列的值

update student set name = 'lucy',age = 99 where name = 'daming';

使用细节

查(select)

语法: select [distinct] *|{column1,column2...}from表名

创建学生表2

CREATE TABLE student2 (

id INT NOT NULL DEFAULT 1,

NAME VARCHAR ( 20 ) NOT NULL DEFAULT '',

chinese FLOAT NOT NULL DEFAULT 0.0,

english FLOAT NOT NULL DEFAULT 0.0,

math FLOAT NOT NULL DEFAULT 0.0 );

导入数据

INSERT INTO student2(id,NAME,chinese,english,math)VALUES(1,'韩顺平',89,78,90);

INSERT INTO student2(id,NAME,chinese,english,math)VALUES(2,'张飞',67,98,56);

INSERT INTO student2(id,NAME,chinese,english,math)VALUES(3,'宋江',87,78,77);

INSERT INTO student2(id,NAME,chinese,english,math)VALUES(4,'关羽',88,98,90);

INSERT INTO student2(id,NAME,chinese,english,math)VALUES(5,'赵云',82,84,67);

INSERT INTO student2(id,NAME,chinese,english,math)VALUES(6,'欧阳锋',55,85,45);

INSERT INTO student2(id,NAME,chinese,english,math)VALUES(7,'黄蓉',75,65,30);

INSERT INTO student2(id,NAME,chinese,english,math)VALUES(8,'韩信',45,65,99);

查询表中所有学生的信息。

select * from student2;

查询表中所有学生的姓名和对应的英语成绩。

select name,english from student2;

过滤表中重复数据distinct

select distinct english from student2;

要查询的记录,每个字段都相同,才会去重

select distinck `name`,english from student2;

使用表达式对查询的列进行运算

--统计每个学生的总分

select `name`, (chinese+english+math) from student2;

--在所有学生总分加10分的情况

select `name`, (chinese+english+math+10) from student2;

在select语句中可使用as语句

--使用别名表示学生分数。

select `name` as '名字',(chinese+english+math+10) as total_score from student2;

相关推荐
老邓计算机毕设20 分钟前
SSM医疗资源普查6qxol(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面
数据库·ssm 框架·javaweb开发·医疗资源管理
dyyx11121 分钟前
如何从Python初学者进阶为专家?
jvm·数据库·python
码农水水36 分钟前
中国邮政Java面试被问:容器镜像的多阶段构建和优化
java·linux·开发语言·数据库·mysql·面试·php
曹牧42 分钟前
Oracle:NULL
数据库·oracle
龙之叶1 小时前
【Android Monkey源码解析五】- 异常处理
android·数据库
马克学长2 小时前
SSM医院门诊管理系统u4pw5(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面
数据库·ssm 框架·javaweb 开发·门诊管理
TDengine (老段)2 小时前
使用安装包快速体验 TDengine TSDB
大数据·数据库·物联网·时序数据库·tdengine·涛思数据
闻哥3 小时前
Redis 避坑指南:从命令到主从的全链路踩坑实录
java·数据库·redis·缓存·面试·springboot
建群新人小猿4 小时前
陀螺匠企业助手—个人简历
android·大数据·开发语言·前端·数据库
小毅&Nora4 小时前
【后端】【Redis】② Redis事务管理全解:从“购物车结算“到“银行转账“,一文彻底掌握事务机制
数据库·redis·事务