[mysql] sql语句操作数据库

1.登录Mysql

mysql -uroot -p 

 

一。对数据库的操作

  1. 创建一个库

create database 库名

create database 库名 character set 编码

     2. 删除一个库

drop database 库名

     3. 使用库

use 库名

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

Select database();

 

二、对数据库表的操作

1.创建一张表

    create table 表名(

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

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

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

);

2.查看数据库表

查看数据库表

show tables;

查看表的结构

desc 表名  

3.删除一张表

drop table 表名

4.修改表

4.1 添加一列

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

 

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

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

 

4.3 修改列的列名

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

 

4.4 删除表的列

alter table 表名 drop 列名

 

4.5 修改表名

rename table 表名 to 新表名

 

4.6 修改表的字符集

alter table 表名 character set 编码

。查看当前表的编码

Show create table 表名;

 

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

 

1.插入记录

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

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

 

1.1 插入数据中文乱码问题解决办

方式一:【不建议!

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

方式二:

set names gbk;

 

2.修改表记录

2.1 不带条件的

update 表名 set 字段名=值, 字段名=值, 字段名=值……

它会将该列的所有记录都更改

2.2 带条件的

update 表名 set字段名=值, 字段名=值, 字段名=值…… where 条件uid=xxx

 

3.删除表记录

3.1 带条件的

delete from 表名 where 条件

注意,删除后,uid不会重置!

3.2.不带条件的

delete from 表名;

3.3 说说delete与truncate的区别?

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

数据找回(start transaction;

                  delete from 表名;

                  Rollback;

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

注意:delete删除,uid不会重置!而使用truncate操作,uid会重置

(因为truncate删除了表结构,然后再创建一张一模一样的,所再次插入数据的数据的时候从1开始

 

4.查询操作

语法:

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

4.1 简单查询

1.查询所有商品

select * from product;

2. 查询商品名和商品价格

select pname,price from product;

3.查询所有商品信息使用表别名

select * from product as p;

4.查询商品名,使用列别名

select pname as p from product

5.去掉重复值(按照价格)

select distinct(price) from product;

6.将所有的商品的价格+10进行显示

select pname,price+10 from product;

 

 4.2 条件查询 

     0.查询商品名称为"左慈"的商品信息

   Select * from product where pname=左慈

 

  1. 查询价格>60元的所有商品信息(select * from product where price>60)
  2. 查询商品名称含有"士"字的商品信息

   Select * from product where pname like%士%

     3. 查询商品id在(3,6,9)范围内的所有商品信息

  Select * from product where pid in(3,6,9)

     4.查询商品名称含有"士"字并且id为6的商品信息

  Select * from product where pname like%士% and pid=6;

      5.查询id为2或者6的商品信息

  Select * from product where pname pid=2 or pid=6;

 

4.3 排序

1.查询所有的商品,按价格进行排序(升序、降序)

 Select * from product order by price asc(升序);

 Select * from product order by price desc(降序);

2.查询名称有"士"的商品信息并且按照价格降序排序

Select * from product  where pname like%士% order by price desc;

 

4.4 聚合函数(所有的聚合函数不统计Null值)

1.获得所有商品的价格的总和

Select sum(price) from product

2.获得所有商品的平均价格

Select avg(price) from product

3.获得所有商品的个数

Select count(*) from product

 

4.5 分组操作

1.根据cid字段分组,分组后统计商品的个数。

Select cid,count(*) from product group by cid;

2.根据cid分组,分组统计每组商品的平均价格,并且平均价格大于20000元。

Select cid,avg(price) from product group by cid having avg(price)>20000;

 

4.6 查询总结

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

from  要查询到表

where

group by

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

order by 它必须放到最后面

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值