MySql简单操作总结

//创建数据库
格式:
    * create database 数据库名;
    * create database 数据库名 character set 字符集;
例如:
#创建数据库数据库中数据的编码采用的是安装数据库时指定的默认编码 utf8
CREATE DATABASE webdb_1;
#创建数据库并指定数据库中数据的编码
CREATE DATABASE webdb_2 CHARACTER SET utf8;

1.
1. DDL之数据库操作:database
2. 查看数据库 show databases; 后面+数据名 是看某个数据库定义信息
3. 删除数据库 drop database 数据库名称;
4. 查看正在使用的数据库 select database();
5. 切换数据库 use 数据库名;
6. DDL之操作:table
7. 创建表
create table 表名(
字段名 类型(长度) [约束],
字段名 类型(长度) [约束],
   ...
);
类型:
    varchar(n) 字符串
    int        整形
    double     浮点
    date       时间
    timestamp  时间戳
约束:
    primary key主键,被主键修饰字段中的数据,不能重复、不能为null。

8. 例如
###创建分类表
CREATE TABLE category (
  cid INT primary key, #分类ID
  cname VARCHAR(100) #分类名称
);

删除表行 delete from 表 where pid = ?(例)

查看表  show tables;
查看表结构 desc 表名; 例如 desc sort;
删除表 drop table 表名;
修改表结构格式
      修改表添加列 alter table 表名 add 列名 类型(长度) [约束]; 
      修改表修改列的类型长度及约束 alter table 表名 modify 列名 类型(长度) 约束;
      修改表修改列名 alter table 表名 change 旧列名 新列名 类型(长度) 约束;

修改表删除列 alter table 表名 drop 列名;

2.
修改表名 rename table 表名 to 新表名名

3.
修改表的字符集 alter table 表名 character set 字符集;


2.单表查询


    
1.查询所有列的商品.       select * from product;
2.查询商品名和商品价格.    select pname,price from product;
3.别名查询.使用的关键字是as(as可以省略的,不建议). 
   3.1表别名: select * from product as p;
   3.2列别名:select pname as pn from product;
4.去掉重复值.select distinct price from product;
5.查询结果是表达式(运算查询):将所有商品的价格+10元进行显示.
   select pname,price+10 from product;
    

1. 条件查询  都要加where
2.
比较运算符
> <  <=   >=   =  <>
!=
大于、小于、大于(小于)等于、不等于
BETWEEN  ...AND...显示在某一区间的值(含头含尾)
IN(set)显示在in列表中的值,例:in(100,200)
LIKE ‘张pattern’
模糊查询,Like语句中,
%代表零个或多个任意字符,
_代表一个字符,
例如:first_name like ‘_a%’;
IS NULL  判断是否为空
逻辑运算符 
and 多个条件同时成立    &
or   多个条件任一成立      |
not  不成立,例:where not(salary>100); !

排序 order by
     通过order by语句 放置在select语句的最后。
SELECT * FROM 表名 ORDER BY 排序字段ASC|DESC;
    ASC 升序 (默认)
    DESC 降序

聚合函数 count(不为空记录行数)  sum(和) max  min avg(平均值)
1 查询商品的总条数
SELECT COUNT(*) FROM product;
2 查询价格大于200商品的总条数
SELECT COUNT(*) FROM product WHERE price > 200;
3 查询分类为'c001'的所有商品的总和
SELECT SUM(price) FROM product WHERE category_id = 'c001';
4 查询分类为'c002'所有商品的平均价格
SELECT AVG(price) FROM product WHERE category_id = 'c002';
5 查询商品的最大价格和最小价格
SELECT MAX(price) as 最贵的,MIN(price) as 最廉的 FROM product;

分组  使用 group by

SELECT 字段1,字段2… FROM 表名where 条件 GROUP BY分组字段 HAVING 分组条件;
分组操作中的having子语句,是用于在分组后对数据进行过滤的,作用类似于where条件。

*
having与where的区别:

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



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

*
*
having后面可以使用分组函数(统计函数)



where后面不可以使用分组函数。
#1 统计各个分类商品的个数
SELECT category_id ,COUNT(*) FROM product GROUP BY category_id ;
#2 统计各个分类商品的个数,且只显示个数大于1的信息
SELECT category_id ,COUNT(*) FROM product GROUP BY category_id HAVING COUNT(*) > 1;

分页查询
分页查询在项目开发中常见,由于数据量很大,显示屏长度有限,因此对数据需要采取分页显示方式。例如数据共有30条,每页显示5条,第一页显示1-5条,第二页显示6-10条。

*
格式:


SELECT 字段1,字段2... FROM 表明 LIMIT M,N
M: 整数,表示从第几条索引开始,计算方式 (当前页-1)*每页显示条数
N: 整数,表示查询多少条数据
SELECT 字段1,字段2... FROM 表明 LIMIT 0,5;--第一页
SELECT 字段1,字段2... FROM 表明 LIMIT 5,5;--第六页

  多表   (常用,隐式)
1交叉查询 (基本不会用到-得到的是两个表的乘机)
语法: select *from a,b;
2内连接查询(使用关键字 inner join  --inner 可以省略)
隐式内连接:select*from A,B where 条件;
显示内连接:select*from A inner join B on 条件;
3外链接查询(使用关键字 outer join -- outer 可以省略)
左外链接:left outer join
select*from A letf outer join B on 条件;
右外连接:right outer join
select*from A right outer join B on 条件;

子查询 (子查询用的少,一般数据比较多)
子查询:一条select 语句结果作为另一条select语法一部分(查询条件,查询结果,表等)。
select...查询字段...from ...表...where...查询条件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值