一、对数据库的操作

1、创建一个库

create database 库名

create database 库名 character set 编码

      2、删除一个库

drop database 库名

      3、使用库

use 库名

      4、查看当前正在操作的库

select database();

      5、显示所有的数据库

show databases;

      6、查看数据库编码

show create database 库名;

二、对数据库表的操作

  1、创建一张表

   create table 表名(

                  字段名  类型(长度)  [约束],

                  字段名  类型(长度)  [约束],

                  字段名  类型(长度)  [约束]

           );

      2、查看数据库表

  show tables;

      3、查看表的结构

desc 表名;

      4、删除一张表

drop table 表名;

      5、修改表

             a、添加一列:

  alter table 表名 add 字段名 类型(长度) [约束];

             b、修改列的类型(长度、约束)

alter table 表名 modify 要修改的字段名 类型(长度) [约束];

              c、修改列的列名

alter table 表名 change 旧列名 新列名 类型(长度) [约束];

              d、删除表的列

  alter table 表名 drop 列名;

              e、修改表名

rename table 表名 to 新表名;

              f、修改表的字符集

alter table 表名 character set 编码;

              g、查看表的编码

show create table 表名;

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

  1、插入记录

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

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

           c、插入数据中文乱码问题解决办法

                 方式一:【不建议】

  直接修改数据库安装目录里面的my.ini文件的第57行

                         default-character-set=utf8

                 方式二:

set names gbk;

      2、修改表的记录

           a、不带条件的(它会将该列的所有记录都更改)

                update 表名 set 字段名=值,字段名=值,字段名=值...;

           b、带条件的

update 表名 set 字段名=值,字段名=值,字段名=值... where 条件;

      3、删除表的记录

           a、带条件的(删除后,id不会重置)

delete from 表名 where 条件;

           b、不带条件的

delete from 表名;

           c、delete 与truncate 的区别?

  delete 删除的时候是一条一条的删除记录,它配合事物,可以将删除的数据找回;

                truncate 删除,它是将整个表摧毁,然后再创建一张一模一样的表。它删除的数据无法找回。

               

                delete操作演示:

                               

mysql切换到opengess_字段名


     




                  Truncate操作演示:

                               

mysql切换到opengess_数据_02

          

   注意:delete删除,id不会重置!而使用truncate操作,id会重置因为它删除了表结构,然后再创建一张一模一样的表,所以再次插入数据的数据的时候从1开始。


       4、查询操作

            select [distinct] * | 列名,列名 from 表名 [where 条件];

            a、查询所有

  select * from 表名;

            b、查询特定字段名

select 列名,列名 from 表名;

            c、使用别名查询所有

  select * from 表名 as 别名;

                 select * from 表名   别名;

            d、使用列别名查询表

select 列名 as 列别名 from 表名;

                 select 列名 列别名 from 表名;

            e、查询某列信息去掉重复值

select distinct(列名) from 表名;

            f、对整形数据的列进行加上特定值,并进行显示

select 列名+10 from 表名;

            g、按照特定顺序进行显示,如价格按照(升序、降序)显示

select * from 表名 order by price asc;

                 select * from 表名 order by price desc;

            h、显示某一字段包含特定字符串的数据

    select * from 表名 where 列名 like ‘%特定字符串%’

            i、聚合函数

                (1)、获取所有的商品价格的总和

select sum(price) from 表名;

                 (2)、获取所有商品的平均价格

select avg(price) from 表名;

                 (3)、获取所有商品的个数

    select count(*) from 表名;

            j、分组操作

                 (1)、根据某一字段分组,分组后统计每组个数

                           select 列名,count(*) from 表名 group by 列名; //一般这两个列名为同一列名

                 (2)、根据某一字段分组,分组统计每组商品的平均价格,并且平均价格大于20。

select 列名,avg(price) from 表名 gruop by 列名 having avg(price)>20;

使用Limit关键字进行查询操作(查询第几页,每页显示数量)

                 select * from 表名 limit 6,3;

指要查询(第几页-1)乘以第二个参数),

                  即  (3-1)*3=6;

            l、查询总结

                 select          一般在它后面的内容都是要查询的字段

                 from            要查询的表


                 where         查询条件

                 group by     分组

                 having        分组后带有条件只能使用having

                 order by      排序,它必须放在最后面,