首页 > 数据库 >SQL学习记录 #1、入门:增删改查

SQL学习记录 #1、入门:增删改查

时间:2024-06-21 22:27:31浏览次数:14  
标签:... 数据库 SQL 改查 查询 表名 增删 where select

1. 通识

  1. SQL语句可以单行或多行书写,以分号结尾。
  2. SQL语句可以单独使用空格/缩进来增强语句的可读性。
  3. Mysql数据库的SQL语句不区分大小写,关键字建议使用大写。
  4. 注释:
  • 单行注释:--  注释内容 或 #  注释内容
  • 多行注释:/*注释内容*/

2. 分类

分类概述说明
DDL(Data Definition Language)

数据定义

定义(创、删)数据库对象(数据库,表,字段)
DML(Data Manipulation Language)

数据操作

对数据库表中的数据进行增删改
DQL(Data Query Language)

数据查询

查询数据库中表的记录
DCL(Data Control Language)数据控制创建数据用户,控制数据库的访问权限

3. DDL-定义

3.1 库管理

3.1.1 创建数据库

create database 数据库名 [charset UTF8];

3.1.2 删除数据库

drop database 数据库名;

3.1.3 查看所有数据库

show databases;

 3.1.4 查看当前使用的数据库

select datanase;

3.1.5 切换数据库

use  数据库名;

3.1.6 退出数据库

exit databaes 数据库名; 

3.1.7 删除数据库

drop databaes 数据库名; 

3.2 表管理

3.2.1 创建表

create table 表名(

        列1名称 列1类型,

        列2名称 列2类型,

        ......

);

列类型:int 整数;float 浮点数;varchar 字符串;date 日期类型...... 

3.2.2 查看所有表

show table;

3.2.3 表添列

alter table 表名 add 字段名 类型(长度); 

3.2.4 修改列类型

alter table 表名 modify 字段名 新数据类型(长度); 

3.2.5 修改列名和类型

alter table 表名 change 旧字段名 新字段名 类型(长度) ; 

3.2.6 删除列

alter table 表名 drop 字段名; 

3.2.7 修改表名

alter table 表名 rename to 新表名; 

3.2.8 删除表

drop table 表名;

 3.3 总结

create

        创建

show  

        查看  

alter

        修改

drop

        删除      

4. DML-操作

4.1 增-insert into

4.1.1 全部列插入数据

insert into 表名 values(值1,值2,...);

4.1.2 指定列插入数据

insert into 表名 (列1,列2,..) values (值1,值2,...);

4.1.3 批量插入数据

insert into 表名 (列1,列2,...) values (值1,值2,...),(值1,值2,...);

insert into 表名 values (值1,值2,...),(值1,值2,...);

4.2 删 -delete

4.2.1 删除全表数据

delete from 表名; 

4.2.2  按条件删除数据

 delete from 表名 [where 条件]; 

4.3 改-update

4.3.1 普通更新

update 表名 set 列1=值1,列2=值2,...;

4.3.2  按条件更新

update 表名 set 列1=值1,列2=值2,...[where 条件]; 

4.4 总结

insert into     

        value

delete

        where

updata 

        set

5. DQL-查询

5.1 查-select

5.1.1 普通查询

select * from 表名 ;                                                          # 全表查询

select 列1,列2,... from 表名;                                       # 指定列查询

select 列名 from 表名 where 条件;                                  # 条件查询

select 列1 [ as 别名1 ] , 列2 [ as 别名2 ] ... from 表名;    #  别名查询

select 列1 [ 别名1 ] , 列2 [ 别名2 ] ... from 表名;

select distinct 列名 from 表名;                                         # 去除重复记录

5.1.2 分组聚合

运用场景:统计班级中,男生和女生人数

select 聚合函数 from 表名  [ where 条件 ]  group by 列  

聚合函数:

  • sum(列) - 求和;
  • avg(列) - 求均值;
  • max(列) - 求最大值;
  • min(列) - 求最小值;
  • count(列) - 求数量......

5.1.3 分组聚合过滤

select 聚合函数 from 表名 [where 条件] group by 分组字段名 having 分组后过滤条件;

  • 执行时机不同:where是分组之前进行过滤,不满足where条件,不参与分组;而having是分组之后对结果进行过滤。
  • 判断条件不同:where不能对聚合函数进行判断,而having可以。

5.1.4 排序

  • asc:升序(默认值)
  • desc:降序

select  列名| 聚合函数| *  from  表名 order by 列1[ asc | desc ];

5.1.5 分页

select 列名| 聚合函数| *  from 表名 limit 起始索引,查询记录数; 

注意事项: 

  • 起始索引从0开始,起始索引=(查询页码-1) * 每页显示记录数。
  • 分页查询是数据库的方言,不同的数据库有不同的实现,MySQL中是limit。
  • 如果查询的是第一页数据,起始索引可以省略,直接简写为limit 10;

 5.2 总结

# 执行顺序

select

        列名| 聚合函数| *

from

        表名

where

        条件

group by

        聚合

having

        聚合后条件

order by

        排序

limit

        分页

6. DCL-控制(了解)

6.1 管理用户

select * from myspl.user;

查询结果含义:

  • Host:当前用户访问的主机, 如果为localhost, 仅代表只能够在当前本机访问,是不可以 远程访问的。
  • User:访问该数据库的用户名。在MySQL中需要通过Host和User来唯一标识一个用户。

6.2 权限控制

6.2.1 查询权限

show grants for  '用户名'@'主机名';

6.2.2 授予权限

grants 权限列表 on 数据库名.表名  to '用户名'@'主机名';

6.2.3 撤销权限

revoke 权限列表 on 数据库名.表名 from '用户名'@'主机名'

 注意事项:

  • 多个权限之间,使用逗号‘,’分隔;
  • 授权时,数据库名和表名可以使用 * 进行通配,代表所有。
权限说明
all,all privileges所有权限
select 查询权限
insert插入权限
update修改数据
delete删除数据
alter修改表
drop删除数据库/表/视图
create创建

 

 

If you don’t learn to think when you are young ,

you may never learn .


如果你年轻时就没有学会思考,那么就永远学不会思考—爱迪生

标签:...,数据库,SQL,改查,查询,表名,增删,where,select
From: https://blog.csdn.net/weixin_48733159/article/details/139869484

相关文章

  • MySQL数据库技术
    数据库基本概念1.数据库(Database,简称DB)数据库是存放数据的仓库,是长期储存在计算机内、有组织有结构的、可共享的数据集合。2.数据库管理系统(DatabaseManagementSystem,简称DMBS)数据库管理系统是为数据库的建立、使用和维护而配置的数据库管理软件,它位于用户与操作系......
  • [转] MySQL binlog 日志自动清理及手动删除
    参考转载自mysqlbinlog日志自动清理及手动删除-景岳-博客园说明当开启mysql数据库主从时,会产生大量如mysql-bin.00000*log的文件,这会大量耗费您的硬盘空间。mysql-bin.000001mysql-bin.000002mysql-bin.000003mysql-bin.000004mysql-bin.000005…有三种解......
  • MySQL之复制(九)
    复制复制管理和维护确定主备是否一致在理想情况下,备库和主库的数据应该是完全一样的。但事实上备库可能发生错误并导致数据不一致。即使没有明显的错误,备库同样可能因为MySQL自身的特性导致数据不一致,例如MySQL的Bug、网络中断、服务器崩溃,非正常关闭或者其他一些错误。(......
  • MySQL----表级锁&行级锁&排它锁和共享锁&意向锁
    MySQL的锁机制锁(Locking)是数据库在并发访问时保证数据一致性和完整性的主要机制。在MySQL中,不同存储引擎使用不同的加锁方式;我们以InnoDB存储引擎为例介绍MySQL中的锁机制,其他存储引擎中的锁相对简单一些。表级锁&行级锁表级锁:对整张表加锁。开销小,加锁快,不会出现......
  • MySQL----彻底卸载(附带每一步截图)
    停止mysql服务打开任务管理器,点击服务,找到mysql服务,这里我的是MySQL57,找到mysql服务后选中,点击右键选择停止服务删除mysql服务win+R打开命令框,输入cmd打开cmd控制台或者电脑左下角输入cmd搜索,选择管理员身份进入cmd控制台(否则会拒绝访问),弹出是否允许该应用对设备进行修......
  • mysql SHOW PROFILE
    SHOWPROFILE[type[,type]...][FORQUERYn][LIMITrow_count[OFFSEToffset]]type:{ALL|BLOCKIO|CONTEXTSWITCHES|CPU|IPC|MEMORY|PAGEFAULTS|SOURCE|SWAPS}SHOWPROFILE和SHOWPROFILES语句显示分析信息,这些信......
  • MySQL数据库
    一.数据库概念1.数据        描述事物的符号记录称为数据(Data)。数字、文字、图形、图像、声音、档案记录等都是数据。        在数据库中,数据是以“记录”的形式按照统一的格式进行存储的,而不是杂乱无章的。相同格式和类型的数据统一存放在一起,而不会把“人......
  • mybatis控制台打印Sql的两种方式 获取昨天时间 00:00:00
    logging:level:com.atguigu:debug123第一种方式1.maven工程下pom.xml添加log4j日志依赖<!--日志--><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.17</vers......
  • 列表的增删改查
      a=["a","b","c","d","e"]#查询,切片print(a[1])#取列表下标为1的值print(a[1:3])#取列表下标1到2的值,右边不包括下标为3print(a[1::2])#取下标为1到最后的值,步长为2print(a[-1::-2])#从最后一个开始到第一个,步长为2的取值print(a[3::-2])#从......
  • MySQL 查数据转Json
    将数据库表里的字段查询出来并且连接成json格式的实现方法SELECTCONCAT('[',GROUP_CONCAT(JSON_OBJECT('key-name',col1,'keyname2',col2,……,'key-namen',coln)),']')asjson_resultFROMtablenamewherecol1=83结果会将查询的数据一行行用{}返回,行之间&qu......