MySQL笔记

来源:互联网 发布:淘宝投诉不成立 编辑:程序博客网 时间:2024/06/15 02:25

数据定义语言

操作对象:数据库和表
关键词:create alter drop

1. 登入数据库

mysql -uroot

2. 查看所有数据库

show databases

3. 创建数据库

create database 数据库名称;

4. 删除数据库

drop database 数据库名称;

5. 切换或者进入数据库

use 数据库名称;

6. 查看当前数据库下的所有表

show tables;

7. 查看表结构

desc 表名;

8. 查看建表语句

show create table 表名;

9. 创建表

create table user(  id int primary key auto_increment,  username varchar(20),  password varchar(10));

10. 修改表

  • 修改表名:
    alter table 旧表名 rename to 新表名;
    eg:alter table user1 rename to user10;
  • 添加字段:
    alter table 表名 add 字段描述;
    eg:alter table user add password varchar(20);
  • 修改字段名:
    alter table 表名 change 旧字段名称 新字段描述;
    eg:alter table user change password pwd varchar(20);
  • 修改字段描述:
    alter table 表名 modify 字段名称 字段类型;
    eg:alter table user modify pwd int;
  • 删除字段:
    alter table 表名 drop 字段名;
    eg:alter table user drop pwd;

11. 删除表

drop table 表名;


数据操作语言

操作对象:记录(行)
关键词:insert update delete

1. 插入

  • 格式1:
    insert into 表名 values(字段值1,字段值2…,字段值n);
  • 格式2:
    insert into 表名 (字段名1,字段名2…,字段名n) values(字段值1,字段值2…,字段值n);
    eg:insert into user (username,pwd) values (‘tom’,123);

2. 修改

update 表名 set 字段名1=字段值1,字段名2=字段值2…[where 条件];
eg:update user set username=‘jack’where username=‘tom’;

3. 删除

delete from 表名 [where 条件];
eg:delete from user where username=‘jack’;


数据查询语言

关键词:select

1. 格式

select … from 表名 where 条件 group by 分组字段 having 条件 order by 排序字段 ase|desc

2. 简单查询

  • 查询所有商品:
    select * from 表名;
    eg:select * from products;
  • 查询商品名和商品价格:
    select 字段名1,字段名2 from 表名;
    eg:select pname,price from products;
  • 查询商品价格:
    eg:select price from products;
  • 查询商品价格并去除重复:
    select distinct 字段名 from 表名;
    eg:select distinct price from products;
    将所有商品价格+10元进行显示(可以在查询的结果之上进行运算,但不影响数据库中的值)
    eg:select price+10 from products;

3. 条件查询

  • 查询商品名称为十三香的商品所有信息:
    eg:select * from products where pname=‘十三香’;
  • 查询商品价格>60元的所有的商品信息:
    eg:select * from products where price>60;
  • 查询商品名称中包含“新”的商品(模糊匹配):
    匹配规则:
    1.匹配内容 %
    “新” 值为新
    “%新” 值以“新”结尾
    “新%” 值以“新”开头
    “%新%” 值包含“新”
    2.匹配个数 _
    一个下划线代表占一个位置
    字段名 like “匹配规则”;
    eg:select * from products where pname like ‘%新%’;
  • 查询价格为38,68,98的商品:
    eg:select * from products where price=38 or price=68 or price=98;
    eg:select * from products where price in(38,68,98);
  • 查询价格区间在50到60之间的商品的信息:
    eg:select * from products where price between 50 and 60;

4. 高级查询

  • 排序查询:
    1. 查询所有的商品,按价格进行排序(asc-升序,desc-降序)
      eg:select * from products order by price desc;
    2. 查询名称有“新”的商品的信息并且按价格降序排序
      eg:select * from products where pname like ‘%新%’ order by price desc;
  • 聚合函数(对一列进行计算,返回值只有一个):
    sum(),avg(),max(),min(),count();
    1. 获得所有商品的价格的总和
      eg:select sum(price) from products;
    2. 获得商品表中价格的平均数
      eg:select avg(price) from products;
      round(值,保留小数位)
      eg:select round(avg(price),2) from products;
    3. 获得商品表中有多少条记录
      eg:select count(*) from products;
  • 分组(使用group by):

    1. 根据cno字段分组,分组后统计商品的个数
      eg:select cno,count(*) from products group by cno;
    2. 根据cno分组,分组统计每组商品的总数量,并且总数量>200
      eg:select cno,sum(pnum) from products group by cno having sum(pnum)>200;

    where和having的区别:
    where是对分组前的数据进行过滤
    having是对分组后的数据进行过滤
    where后面不能使用聚合函数,having可以使用

原创粉丝点击