MySQL数据库 —— 表的增删改查(CRUD)

本文详细介绍了SQL语言中创建(create)、读取(retrieve)、更新(update)和删除(delete)操作的基本语法和注意事项,涵盖了数据的增删改查、查询优化、数据排序、分页查询及聚合函数的使用。

目录

1. 增加

2. 修改

3. 删除

4. 查询

4.1 简单查询

4.2 where子句

4.3 order by子句

4.4 limit分页 

5. 聚合函数

5.1 count

5.2 sum

5.3 avg

5.4 max/min

6. group by子句


表的CRUD(Create,Retrieve,Update,Delete),即增删改查。

1. 增加

  • 语法

      隐含列插入,给表中的所有字段添加数据

insert into table_name values (value [,value...]);

    指定列插入,只给表的某几个字段赋值,需要指定字段名

insert into table_name[(column[,column...])] values (value [,value...]);

    逐条插入

insert into table_name[(column[,column...])] values (value [,value...]);

   批量插入

insert into table_name[(column[,column...])] values (value [,value...]),(value [,value...]),(value [,value...]);
  • 注意:
    • 插入的数据应与字段的数据类型相同
    • 数据的大小应在规定的范围内
    • 在values中列出的数据位置必须与被加入的列位置相对应
    • 字符和日期类型应该包含在单引号中
    • 插入空值,不指定或指定为 null
  • 当插入时,主键出现冲突可以利用更新操作更改主键对应的其他数据。(找相同,先插后删)
insert into 表名(字段列表) values(值列表) on duplicate key update 字段=新值; 

  • 若主键没有冲突,直接插入数据
replace into 表名(包含字段) values(值列表);

2. 修改

  • 语法
update tbl_name set col_name1=expr1, [, col_name2=expr2 ...] [where conditon] [limit n];
  • 注意
    • update 语法可以用新值更新原有表中的各列值
    • set子句指示要修改的列和要新赋的值 
    • where子句指定应更新哪些行。如果没有where子句,则更新所有行。
    • where子句后面指定limit,更新符合条件的限制数量的行。

3. 删除

  • 语法
delete from  table_name [where condition];

truncate table table_name;
  • delete、truncate和drop删除整表的区别 
    • delete只删除表中数据,表的结构保留,不释放空间;truncate清空数据、释放空间;drop删除内容和定义,释放空间
    • delete可以rollback,truncate不可以rollback
    • delete属于DML,truncate和drop属于DDL
    • delete后空间不变,truncate后空间回到初始化时,drop后所有空间被释放
    • 速度:drop > truncate > delete
    • delete返回被删除的记录数,而truncate返回0
    • 清空表数据,建议使用truncate 
  • delete注意:
    • 只能删除一行数据,不能删除一列数据
  • 复制表结构
create table new_table_name like exist_table_name; 
  • 复制表中数据
insert into new_table_name select * from exist_table_name;

4. 查询

  • 4.1 简单查询

  • 语法
select [distinct] *| {column1,column2,...} from tbl_name [where condition];
  • * 表示查询所有列 ,效率低
  • distinct 去除重复行

  • select语句中可以使用as起别名

  • 4.2 where子句

在select中使用where子句,进行查询过滤。where后不能用select语句后指定的别名

  • 4.3 order by子句

在select语句中使用order by子句排序查询结果

  • 语法

select column1,column2,... from table order by column  asc|desc,...;
  • 注意
    • order by 指定排序的列,排序的列可以使表中的列名,也可以是select语句后指定的别名
    • asc升序(默认),desc降序
    • order by 子句应该位于select语句的结尾
  • 4.4 limit分页 

  • 语法
select 字段 from  表名 where 条件 limit 起始位置 ,记录条数 
select 字段 from  表名 where 条件 limit 记录条数  offset 起始位置

5. 聚合函数

  • 5.1 count

返回某一列,行的总数

  • 语法
select count(*)|count(列名) from tbl_name where condition;
  • count(*)会统计一共的记录数,count(列名)会排除为null的情况

  • 5.2 sum

返回满足where条件的列中数据的和

sum仅对数值起作用,否则结果无意义。 

  • 语法:
select sum(列名) {,sum(列名)...} from tbl_name [where condition];
  • 5.3 avg

返回满足where条件的一列的平均值

  • 语法
select avg(列名) [,avg(列名),...] from tbl_name [where condition]; 
  • 5.4 max/min

返回满足where条件的一列的大/小值

  • 语法
select max/min(列名) from tbl_name [where condition] 

6. group by子句

在select中使用group by 子句可以对指定列进行分组查询

  • 语法
select column1, column2, .. from table group by column;
  • group by不能和where搭配使用,应该与having搭配


SQL查询中各个关键字的执行先后顺序

    from > on > join > where > group by > with > having > select > distinct > order by > limit

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值