sql语句小结

Posted by 曾思勇 on May 14, 2017

一、安装mysql

如图检测当前mysql版本为5.5.49,输入命令 mysql -u root -p 进入数据库。 Paste_Image.png

二、操作数据库

  • 创建并显示当前数据库 创建并显示当前数据库
  • 删除一个库 drop database 库名;

  • 创建带有编码的数据库并查看具体信息 创建带有编码的数据库并查看具体信息
  • 使用库 use 库名;
  • 查看当前正在操作的库 select database();

三、操作数据库表

  • 创建一张表 create table 表名( 字段名 类型(长度) [约束], 字段名 类型(长度) [约束], 字段名 类型(长度) [约束] );

  • 查看数据库表 创建完成后,我们可以查看数据库表 show tables; 查看表的结构 desc 表名;

表的创建和查看

  • 删除一张表 drop table 表名;

  • 修改表 添加一列: alter table 表名 add 字段名 类型(长度) [约束]; 修改列的类型(长度、约束): alter table 表名 modify 要修改的字段名 类型(长度) [约束]; 修改列的列名: alter table 表名 change 旧列名 新列名 类型(长度) [约束]; 删除表的列: alter table 表名 drop 列名; 修改表名: rename table 表名 to 新表名; 修改表的字符集: alter table 表名 character set 编码; 查看当前表的编码: show create table 表名;

    四、对数据库表记录进行操作(修改)

  • 插入记录
    • 方式1: insert into 表名(列名1,列名2,列名3……) values(值1,值2,值3……)
    • 方式2: insert into 表名 values(值1,值2,值3……) insert into 表名 values(值1,值2,值3……) 注意:char的长度为2则只能存储两个字母
  • 修改表记录
    • 不带条件的: update 表名 set 字段名=值, 字段名=值, 字段名=值……
    • 带条件的 update 表名 set字段名=值, 字段名=值, 字段名=值…… where 条件 修改表记录 注意:插入数据中文乱码问题解决办法 set names gbk; 解决插入数据中文乱码
  • 删除表记录
    • 带条件的 delete from 表名 where 条件 注意,删除后,uid不会重置!
    • 不带条件的(直接删除整张表) delete from 表名;

注意:delete与truncate的区别: delete删除的时候是一条一条的删除记录,它配合事务,可以将删除的数据找回。 truncate删除,它是将整个表摧毁,然后再创建一张一模一样的表。它删除的数据无法找回,而且使用truncate操作,uid会重置

五、查询操作

`select [distinct] *| 列名,列名 from 表名 [where条件]` * 简单查询   * 查询所有商品 select * from product;   * 查询商品名和商品价格 select pname,price from product;   * 查询所有商品信息使用表别名(as可以省略) select * from product as  p;   * 查询商品名,使用列别名 select pname as  p from product   * 去掉重复值(按照价格) select distinct(price) from product;   * 将所有的商品的价格+10进行显示 select pname,price+10 from product;
  • 条件查询
    • 查询商品名称为某值的商品信息 select * from 表名 where 字段名=’值’
    • 查询价格>60的所有商品信息 select * from 表名 where price>60;
    • 查询商品名称含有”xx字”的商品信息 select * from 表名 where pname like ‘x字x’;
    • 查询商品id在(3,6,9)范围内的所有商品信息 select * from 表名 where pid like in(3,6,9);
  • 排序 查询所有的商品,按价格进行排序(升序/降序) select * from product order by price asc/desc;

  • 聚合函数
  • 获得所有商品的价格的总和 select sun(price) from product;
  • 获得所有商品的平均价格 select avg(price) from product;
  • 获得所有商品的个数 select count(price) from product;
  • 获得所有商品的平均价格

  • 分组操作
    • 添加分类id (alter table product add cid varchar(32);)
    • 初始化数据 update product set cid=’1’; update product set cid=’2’ where pid in (5,6,7); 1.根据cid字段分组,分组后统计商品的个数 Paste_Image.png 2.根据cid分组,分组统计每组商品的平均价格,并且平均价格大于20000元。 Paste_Image.png