2021-04-24

MySQL

形象化:
数据库:文件夹
表:文件(.frm)
数据:表中的记录

SQL

数据类型
在这里插入图片描述

基本语法:

  1. SQL语句可以单行或者多行写,以分号结尾。
  2. 使用空格和缩进来增强语句可读性。
  3. MySQL不区分大小写,但是关键字建议用大写。
  4. 三种注释:
  • 单行注释:-- 注释内容 或 # 注释内容(mysql特有)
  • 多行注释:/* 注释内容 */
    分类
  1. DDL(Data Definition Language)数据定义语言,用来定义数据库对象:数据库,表,列等。关键字:create,drop,alter等。
  2. DML(Data Manipulation Language)数据操作语言,用来对数据库中表的数据进行增删改。关键字:insert,delete,update等。
  3. DQL(Data Query Language)数据查询语言,用来查询数据库中表的记录(数据)。关键字:select,where等。
  4. DCL(Data Control Language)数据控制语言(了解)用来定义数据库的访问权限和安全级别,及创建用户。关键字:GRANT,REVOKE等。
    1. DDL
    操作数据库:CRUD
  • C(Create):创建
    (1). 创建数据库:create database 数据库名称 (character set 字符集名称);
    (2). 创建数据库如果该数据库不存在:create database if not exists 数据库名称;
    例:创建db4数据库,判断是否存在,并制定字符集为gbk:create database if not db4 character set gbk;
  • R(Retrieve):查询
    (1). 查询所有数据库名称:show databases;
    (2). 查询某个数据库的字符集(创建语句):show create database 数据库名称;
  • U(Update):修改
    (1). 修改数据库的字符集:alter database 数据库名称 character set 字符集名称;
  • D(Delete):删除
    (1). 删除数据库:drop database 数据库名称;
    (2). 如果数据库存在就删除:drop database if exists 数据库名称;
  • 使用数据库
    (1). 查询当前正在使用的数据库:select database();
    (2). 使用某数据库:use 数据库名称;
    操作表:CRUD
  • C(Create):创建
    (1). 创建表空间:create table 表名(列名1 数据类型1,列名 数据类型2…age int);
    整形(int):age int
    小数类型(double):score double(5,2)-- 一共五位,两位是小数
    日期型(date):只包含年月日,格式 yyyy-MM-dd
    日期型(datetime):包含年月日以及时分秒,格式 yyyy-MM-dd HH:mm:ss
    时间错类型(timestamp):包含年月日以及时分秒,格式 yyyy-MM-dd HH:mm:ss与上个类型不同的是 当不给其赋值或者赋值为空时,系统自动将当前系统时间赋值给它
    字符串型(varchar):name varchar(20)-- name最多存放20个字符
    (2). 复制表:create table 表名 like 表名1;-- 创建一个像表名1一样的表
  • R(Retrieve):查询
    (1). 查询所有的表名称:show tables;
    (2). 查询表结构:desc 表明;
  • U(Update):修改
    (1). 修改表名:alter table 表名 rename to 新的名字;
    (2). 修改表的字符集:(查看:show create table 表名;)alter table 表名 character set 字符集名字;
    (3). 添加一列:alter table 表名 add 列名 数据类型;
    (4). 修改列名称 类型:alter table 表名 change 列名 新列名 新列类型;
    (5). 修改表类型:alter table 表名 modify 列名 新数据类型;
    (6). 删除列:alter table 表名 drop 列名;
  • D(Delete):删除
    (1). 删除表:drop table (if exists) 表名;
    2.DML
    (1). 增加数据:insert into 表名(列名1,列名2…列名n) values (值1,值2…值n);
    注意:
    列名与值要一一对应
    如果列表后,不定义列名,则默认给所有列添加值:insert 表名 values (值1…值n);
    除了数字类型,其他类型需要使用引号(单双都行)引起来
    (2). 删除数据:delect from 表名 [where 条件];
    注意:
    如果不加条件,则删除表中所有数据。
    删除所有数据:truncate 表名;(效率高)
    (3). 修改数据:update 表名 set 列名1=值1,列名2=值2,…[where 条件];
    注意:
    如果不添加任何条件,则会将表中所有聚氯全部修改。
    3.DQL
    ①.基础查询
    (1). 查询表中所有数据:select * from 表名;
    (2). 通用语法:
    select 字段列表 from 表名列表 where 条件列表 group by 分组字段 having 分组之后的条件 order by 排序 limit 分页限制;
    where后跟的条件时满足条件,having后跟的是不满足条件
    (3). 基础查询:
  1. 多个字段的查询:select 字段名,字段名2,…from 表名;(查询所有用*代替)
  2. 去除重复:distinct
  3. 计算列:一半可以使用四则运算计算一些列的值。(一般只会进行数值型的计算)ifnull(表达式1,表达式2) :null参与的运算,计算结果都为null;–表达式1时要判断是否为null的语句,表达式2是要替代的值。
  4. 起别名:as(可省略)
    ②. 条件查询
  5. where子句后跟条件
  6. 运算符
    <、>、<=、>=、<>
    between…and
    in(集合)
    like:模糊查询
    _ :单个占位符
    %:多个占位符
    is null
    and或&&
    or或||
    not 或!
    ③.排序查询
    语法:order by 排序字段1,排序方式1,排序字段2,排序方式2…
    排序方式:asc(升序,默认的排序方式),desc降序。
    注意:如果有多个排序字段,当前面排序字段的值一样时,才会判断第二个。
    例:select * from student order by math desc; – 将学生表按照数学成绩降序排序
    ④.聚合函数
    含义:将一列数据作为一个整体,进行纵向的计算.
    count:计算个数
    例:select count(name) from student; – 根据名字一列计算总人数.
    max:计算最大值
    例:select max(math) from student; – 计算数学的成绩的最大值
    min:计算最小值
    例:select min(math) from student; – 计算数学的成绩的最小值
    sum:求和
    例:select sum(math) from student; – 计算数学的成绩的总值
    avg:求平均数
    例:select avg(math) from student; – 计算数学的成绩的平均值
    注意:聚合函数的计算排除null值。
    ⑤.分组查询
    语法:group by 分组字段;
    注意:分组之后查询的字段:分组字段、聚合函数
    例:select sex,ave(math),count(id),from student group bysex;-- 将学生表里的学生按性别分组统计男女生的总人数以及平均成绩。
    ⑥.分页查询
    语法:limit 开始的索引,每页的条数;
    公式:开始的索引=(当前页码数-1)*每页显示的条数
    例:select * from student limit 0,3;-- 从0开始,一共显示3条
    注意:limit是MySQL的一个"方言"。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值