MYSQL(2)

排序查询

ASC升序(默认)

DESC降序

SELECT .... ORDER BY 排序字段 排序方式;

多字段排序
SELECT .... ORDER BY 排序字段1 排序方式1, 排序字段2 排序方式2......;
(先按照排序字段1进行排序,如果排序字段1有重复,则进行排序字段2)

聚合函数

count(表达式):统计行数

sum(表达式):求和

avg(表达式):求平均值

max(表达式):求最大值

min(表达式):求最小值

where条件是在查询之前进行筛选的

分组查询

SELECT.... GROUP BY 分组字段;

限制:查询的字段只能是:1.分组字段   2.聚合函数的结果

按照分组字段的不同进行分组,有几种就是显示的行数,不属于分组字段,也不属于聚合函数,则不能放在select后面

面试题:

having 分组条件和where 限定条件。区别是什么?

where在分组之前进行筛选,符合条件的数据才会参与分组,分组后才通过having进行筛选
where后面不能加聚合函数

分页查询

SELECT .... LIMIT 开始的索引值,查询的数量;

开始的索引=(当前页数 - 1)* 每页显示的数量

DDL补充

数据类型:
      常用类型:
        1. 数值型:
            mysql:
            - int(长度):整型
            - double(长度,小数点后长度):浮点型
            oracle:
            - number(长度,小数点后长度):数值类型
        2. 日期型:
            - date: 日期,包含年月日, 书写格式: "yyyy-MM-dd"
            - datetime : 日期+时间,包含年月日,时分秒. 
                书写格式:"yyyy-MM-dd HH:mm:ss"
            - timestamp: 时间戳, 指的是格林威治历(1970-1-1 00:00)到现在的毫秒数
        3. 字符串类型:
             mysql: 
            - char(长度) : 固定长度字符串
            - varchar(长度) : 可变长度字符串
             oracle:
            - char(长度) : 固定长度字符串
            - varchar2(长度) : 可变长度字符串

表格的DDL操作

1. C(Create): 创建  重点知识
        语法格式:
           create table 表名(
            列名1 数据类型,
            列名2 数据类型,
            ....
            列名n 数据类型
           );

    示例: 创建一个person表.
    字段列表:
        1. id, 类型: int(11)
        2. name, 类型 varchar(20)
        3. age, 类型:int(4)
    SQL:
        
*/
CREATE TABLE person(
    id INT(11),
    NAME VARCHAR(11),
    age INT(4)
);
/*
    练习: 创建一个学生表student:
        字段列表:
            编号id int
            姓名name varchar(20)
            年龄age int
            生日birthday date
            分数score double(5,5)
*/
CREATE TABLE student(
    id INT,
    NAME VARCHAR(20),
    age INT,
    birthday DATE,
    score DOUBLE(10,5)
);
DROP TABLE student;
/*
     复制表格格式, 来完成新表格的创建:
     格式: create table 新表名 like 原表名;

     -- 只复制结构,不复制数据.
     练习: 复制student表,得到新表student2
*/
CREATE TABLE student2 LIKE student;
/*

2. R(Retrieve) 查询
       - 查询表结构
        desc 表名;
       - 查询当前库所有表的名称
        show tables;

*/
SHOW TABLES;
DESC student;


/*
    表格的DDL操作:
    3. U(Update) 修改
        1. 修改表名:
          alter table 表名 rename to 新表名;
          练习: 修改studnet2 为 heiheihei
        2. 修改表的字符编码
          alter table 表名 character set 字符集名称;
        3. 添加一个新的列
          alter table 表名 add 列名 数据类型;
          练习: 给heiheihei表,添加一个字段: heihei varchar(32)
        4. 删除一个列
          alter table 表名 drop 字段名称;
           练习: 给heiheihei表,删除一个字段: heihei
        5. 修改列的信息
          alter table 表名 change 列名 新列名 新数据类型;
          alter table 表名 modify 列名 新列名 新数据类型;

          练习: 修改heiheihei表的 name字段为 sname varchar(32)
*/

ALTER TABLE student2 RENAME TO heiheihei;
ALTER TABLE heiheihei ADD heihei VARCHAR(32);
DESC heiheihei;
ALTER TABLE heiheihei DROP heihei;
ALTER TABLE heiheihei CHANGE NAME sname VARCHAR(32);

/*
    字段设置默认值的方式:
        1.在创建表格时,制定某个字段的默认值: 
        语法格式:
           create table 表名(
            列名1 数据类型 default 默认值,
            列名2 数据类型 default 默认值,
            ....
            列名n 数据类型 default 默认值
           );

        2. 在修改字段信息 或 通过修改表完成默认值的添加
          添加一个新的列
          alter table 表名 add 列名 数据类型 default 默认值;
          修改列的信息
          alter table 表名 change 列名 新列名 新数据类型 default 默认值;

*/

/*
    表格的DDL操作:
    4. D(DELETE) 删除
      - drop table 表名;
      - drop table if exists 表名;

    练习: 请删除person表,heiheihei表
    
*/
DROP TABLE person;
DROP TABLE heiheihei;

/*
DML. 对于表格数据的增加/删除/修改等操作.

 1. 向表格插入数据
    语法1, 指定字段插入数据: 
    insert into 表名(列名1,列名2...列名n) values(值1,值2...值n);

    注意事项: 
        1. 列名和值的顺序要一一对应.
        2. 除了数值类型,其他类型需要使用引号引住.

        
    语法2, 向所有字段顺序插入数据
        字段顺序:表格创建和修改字段后的固定顺序, 以DESC 表名为准;
    insert into 表名 values(值1,值2...值n);

    注意事项: 
        1. 值的顺序要与DESC 表名查询的字段顺序一一对应.
        2. 除了数值类型,其他类型需要使用引号引住.

    
    练习:
        1. 向student表,插入两行数据
        
*/
INSERT INTO student(id,NAME) VALUES(1,'王嘉琦');
INSERT INTO student VALUES(2,'高龙超',18,'2004-1-1',59);
-- 练习: 向student表插入一行数据:
DESC student;
ALTER TABLE student DROP score;

/*
    2. 从表格中删除数据
        格式1: delete from 表名;
            注意: 此格式表示删除表中所有数据. 
            通常情况下如果有清空表的需求,不建议这样操作;

            用于清空表的格式:
                truncate table 表名;
            delete: 根据存在的行数据, 逐行删除,直到清空;
            truncate: 删除表格,再创建一个空的新表;

        格式2: delete from 表名 where 条件;
    练习: 删除student 表格中, id为2的同学;

*/
DELETE FROM student WHERE id=2;

/*
    3. 修改数据:
        格式1: update 表名 set 列名1=值,列名2=值...列名n=值;
            修改表格中所有的数据;

            
        格式2: update 表名 set 列名1=值,列名2=值...列名n=值 where 条件;
        练习: 修改student表格中 id为1的学生的出生日期为: 1980年1月1日.
        
*/
UPDATE student SET birthday="1980-1-1" WHERE id=1;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值