• MySql(一):基本操作


      sql语句其实不难,尤其对于那些英语稍好一些的人来说!

    最最最重要的就是搞清楚sql语句的执行顺序!!!数据就像沙子, 语句就是筛子, 沙子按照顺序经过给定的筛子,留下来的就是你要的!!!

    并不是写在前面的就先执行!!! 如下:

    SELECT *, SUM(pnum) '商品总数量' (4)

    FROM products (1)

    GROUP BY con (2)

    HAVING SUM(pnum) > 200; (3)

    这句sql语句其实是先执行 (1) FROM products 从products表中筛选所有数据

    再执行(2) GROUP BY con 将数据按照con字段进行分组

    再执行(3) HAVING SUM(pnum) > 200 筛选出pnum总数大于200的分组

    最后执行(4) SELECT * , SUM(pnum) 将层层过滤的数据显示出来

    注意: 顶哥较懒, 下文的sql语句统统小写啦

    如遇诸如 : Incoreect string value : ..... 之类的报错请通过以下sql语句查看自己的数据库默认编码是否和输入环境的编码一致:

    SHOW VARIABLES LIKE 'character%';

    l 数据定义语言:简称DDL(Data Definition Language),用来定义数据库对象:数据库, 表, 列等. 关键字: create , alter , drop 等

    l 数据操作语言:简称 DML(Data Manipulation Language), 用来对数据库中表的记录进行更新. 关键字:insert , delete, update等

    l 数据控制语言:简称 DCL(Data Control Language), 用来定义数据库的访问权限和安全级别,及创建用户

    l 数据查询语言:简称DQL(Data Query Language), 用来查询数据库中表的记录. 关键字:select, from, where 等

    DDL --database相关操作

    create database demo; # 创建名为demo的数据库(默认编码)

    create database if not exists demo; # 不存在则创建demo数据库

    create database demo character set ‘gbk’; # 创建名为demo gbk编码的数据库

    ​ show databases; # 列出mysql服务器中所有的数据库

    ​ show create database demo; # 查看demo数据库的定义信息

    ​ crop database demo; # 删除数据库demo

    ​ select database(); # 查看正在使用的数据库

    ​ use demo; # 使用demo 数据库

    DDL—table相关操作

    ​ create table demo( # 创建demo表, 指定 id 字段为主键约束,

    id int primary key, # name 字段为非空约束

    name varchar(12) not null

    );

    create table demo1 like demo; # 创建demo1表,表结构和demo表相同

    show tables ; # 查看数据库中所有的表

    desc demo; # 查看demo表的结构(Tips:为何是desc? describe是秒速的意思!

    drop table demo; # 删除demo表

    drop table if exists demo; # demo表存在则删除

    alter table demo add address varchar(20); # 为demo表增加地址字段

    alter table demo modify address varchar(30); # 修改表中字段的类型长度

    alter table demo change address addr varchar(30); # 修改表中字段名

    alter table demo drop addr; # 删除表中的字段

    rename table demo to dmeo1; # 将demo表重命名为demo1

    alter tabel demo1 character set 'gbk'; #将demo1表的编码修改为gbk

    DML 相关操作

    插入表记录: insert

    insert into demo(id, name) values(1, "song");

    insert into demo(id) values(2); # 无数据字段会使用null

    更新表记录:update

    update demo set id = 1, name = 'song'; # 将demo表中记录全部更新

    update demo name = 'hui' where id = 2; # 将id为2的记录名字更新为hui

    删除表记录

    delete from demo; # 删除demo表中的所有数据

    delete from demo where name = 'song'; # 删除demo表中name为song的记录

    truncate table demo; # 摧毁demo表并重建同结构的表

    DQL 相关操作

    select * from demo ; # 查询demo表中所有的数据

    select id, name from demo; # 查询demo表中id 和 name 列的数据

    select id as 编号, name as 姓名 from demo as 学生表; # 使用别名,as 可以省略

    select distinct name, age from demo; # 去除重复值

    select math + english 总成绩 from student; # 从学生表中查询熟悉和英语的总分并使用别名

    select name , age + 10 from student; # 查询姓名年龄,并将每个人的年龄增加10岁

    select * from student where math > 100 or english > 100; # 查询任意一科超过100的学生

    select * from student where name like '_宋%宝'; # 查询所有名字第二个字是宋且以宝结尾的学生

    select * from student where age > 12 order by id asc, age desc; # 查询年龄大于12的按照id升序排序显示,id一样时按照年龄降序排序

    select max(age) from student; # 查询学生表中年龄最大的

    select * from student where age > 18 group by sex having name is not null; # 查询 年龄大于18的按照性别进行分组,且姓名不为空的记录

    Tips: having 和where的区别:

    having 是在分组后对数据进行过滤

    where 是在分组前对数据进行过滤

    having 后面可以使用聚合函数

    where 后面不可以使用聚合函数

    select * from student limit 0, 3 ; # 查询索引从0开始,共3条记录

    Tips: 起始索引 = (当前页页码数 -1 ) * 每页显示条数

    #查询第一页的数据信息

    select * from sudent limit 0, 3;

    #查询第二页的数据信息

    select * from student limit 3, 3;

    可关注公众号,随时随地查阅相关文章

  • 相关阅读:
    postgres--流复制
    postgres--wal
    postgres--vacuum
    postgres10配置huge_pages
    Postgres间隔大量写IO的解决办法
    PostgreSQL配置文件--其他
    PostgreSQL配置文件--AUTOVACUUM参数
    PostgreSQL配置文件--实时统计
    PostgreSQL配置文件--日志和错误
    PostgreSQL配置文件--QUERY TUNING
  • 原文地址:https://www.cnblogs.com/dintalk/p/10844362.html
Copyright © 2020-2023  润新知