数据库 SQLyog(DML;DQL)Day_06

- 下载完之后在终端确认是否已经安装成功

  1. 输入cd /usr/local/mysql/bin 回车
    在这里插入图片描述

  2. 输入ls回车
    在这里插入图片描述

  3. 输入/usr/local/mysql/bin/mysql -uroot -p 回车
    在这里插入图片描述

  4. 直接输入密码回车
    在这里插入图片描述

  5. 确认完成可直接使用

在这里插入图片描述

- sql语句

1. sql语句就是结构化查询语句 ==>需要学习的一些指令 便于对数据库进行操作
2.	sql 语句的分类 DDL  DML  DQL  DCL 
    DDL:主要是针对于 数据库  以及表的操作  关键字  alter  drop  create
    DML  主要是针对于 表里的数据进行操作,也就是 增加 删除 修改 insert  delete update
    DQL  主要是针对于 表里的数据进行操作 一般用于写查询语句(重点)
    DCL  主要用于修改权限  运维做的

- DDL

1.	创建一个数据库 
    语法:  create  database   数据库的库名;
2.	在创建数据库的时候给其设置编码格式 
    语法:  create  database  数据库的库名   character  set  utf8;
3.	在创建数据库的时候 判断数据库 是否存在
    语法:  create  database if not exists   数据库的库名;
4.  查看数据库的结构 
    语法:  show  create  database   数据库的库名;
5.  修改数据库的编码格式
    语法:    alter  database  数据库的库名  character  set gbk;
6.  切换到具体的某一个数据库
    语法:   use  数据库的库名 ;
7.  删库    drop  database    数据库的库名;
8.  查看所有的数据库     show  databases;

-数据库中的表

- 数据库中的数据类型

1. int  整形 
2.  double 小数
3.  char   字符串  不可以变的字符串   不管数据的多少 都会占 设置的长度  不够的使用""来代替 一般用于设置固定长度的字符型(性别 男 或者是女)
4. varchar ==>可变 的字符串  根据数据来设置其长度 
5. date 年月日
6. datetime   年月日 时分秒

在这里插入图片描述

  • 创建表
  1. 语法:
    create table 表明(
    列名1 数据类型(长度),
    列名2 数据类型(长度),
    列名3 数据类型(长度)

    );
    注意: 一定要切入到对应的数据库 use 数据库的名字

    2. 创建表结构      show   create  table  表名;
    3. 查看表结构      desc  表名;
    4.  修改标的名字     alter  table  表名   rename  to   新的表名;
    5.  查看当前库中所有的表     show  tables;
    6.  新增加一列        alter   table   表名  add   列名  数据类型(长度);
    
  • 修改表

    1. 只修改数据类型    alter   table  表名  modify  列名  数据类型(长度);
    2. 修改列名      alter  table  表名  change  原列名  新的列名 数据类型(长度);
    

可视化工具 SQLyog

- DML 语句

- 插入

 1.  增加(插入一条数据): 
 (1)  insert into 表名 (sid,sname,spwd,createTime) values (值1,值2,值3,值4)

在这里插入图片描述

(2) 不指定列名 按照顺序来进行插入(不常用 容易出现错误)
    insert   into  表名  values (插入的值1,插入的值2)
    注意: 必须所有的列都要插入值
INSERT INTO student VALUES(2,“班长”,“123456”,‘2019-01-22’):
2. 插入多条数据
语法:    insert  into 表名  value (第一组值), (第二组值)
 注意事项 :A.列名必须是表名存在的   
          B.列名的类型与插入值的类型要以一对应
          C. 如果插入的是事件类型 一定要加上单引号
INSERT INTO student VALUES(3,“花花”,“123452”,‘2019-06-21’),(4,“翠翠”,“123457”,‘2019-04-12’):

- 修改 关键字update

1. 修改一个列的语法  update 表名  set  列名 = 数据1  where 条件
UPDATE student SET sname=“大胖” WHERE sid =3
2. 修改多个列       update  表名  set 列名=数据1,列名2=数据2  where  条件
UPDATE student SET sname=“小胖”,spwd=“123456” WHERE sid =3
 3.  修改表中所有的数据       update  表名  set  列名=数据1, 列名2=数据2 
 注意事项 :A.列名必须是表名存在的   
                     B.列名的类型与插入值的类型要以一对应
                     C. 如果插入的是事件类型 一定要加上单引号
UPDATE student SET sname=“小胖”,spwd=“123456”

- 删除 关键字delete

  1. 语法 delete from 表名 where 条件
DELETE FROM student WHERE sid=2
  1. 删除所有的数据 delete from 表名 一定要慎用
DELETE FROM student

总结:增加删除修改 会对数据库的数据产生影响,查询不会对数据产生影响

- DQL 语句

  1. 查询语句的关键子是select * from
    * 表示查询所有的数据,也可以根据具体的字段来查询指定的列
#查询product表中所有记录
SELECT * FROM product
#查询product表中pid和pname字段
SELECT pid,pname FROM product
  1. 在查询的过程可以做一些相应的计算
#查询结果是表达式(运算查询):将所有商品的价格+10元进行显示
SELECT name,prrice+10 FROM product
  1. 去重复 DISTINCT
#去重复
SELECT DISTINCT price FROM product
  1. 设置别名 关键字是 as as可以给表 设置 也可以列设置 as可以省略
#设置其别名 可以给表设置 也可以给列设置 关键字as
SELECT p.pname,p.price+10 AS 商品的价格 FROM product AS p
  1. 根据条件来进行查询 关键字: where or 或者 and 并且 between and 在什么范围之类 in(20,30) 或者
#查询商品名称为“花花公子”的商品所有信息
SELECT * FROM product WHERE pname="花花公子“
  1. 模糊查询 like % 匹配所以 _匹配一个字符
#查询含有‘霸’字的所有商品
SELECT * FROM product WHERE name LIKE “%霸%”
#查询以‘香’字开头的所有商品
SELECT * FROM product WHERE pname LIKE “香%”
#查询第二个字为‘想’的所有商品
SELECT * FROM product WHERE pname LIKE “_想%”
  1. is not null is null 这里null 并不是""
#商品没有分类的商品 is null 并不等于 空字符串 一般没有插入的数据是null
SELECT * FROM product WHERE category_name IS NULL
#查询有分类的商品
SELECT * FROM product WHERE category_name IS NULL
  1. 分页查询的关键字 limit 参数1, 参数2 参数1表示数据索引 参数2表示页量
#分页查询 limit #查询出前三条数据 3表示的是页两
SELECT *FROM product LIMIT 3
#查询第一页 0 表示的是索引 从0开始 第二个表示页量
SELECT *FROM product LIMIT 0, 3
#查询第二页的数据
SELECT *FROM product LIMIT 3, 3
#查询第三页的数据 公式:索引的规律=(当前页-1)*页量
SELECT *FROM product LIMIT 6, 3
  1. 升序 与降序 order by asc 升 desc 降
#1.使用价格排序(降序) #order by desc 降序 asc升序
SELECT *FROM product ORDER BY price DESC
#若价格相同,相同价格的数据以pid降序排序
SELECT *FROM product ORDER BY price DESC, pid DESC
  1. 聚合函数 count() sum() max() min() avg()
#1. 查询商品的总条数 count(*,或者1 是列名)
SELECT COUNT(*) AS “总记录数” FROM product
SELECT COUNT(1) FROM product 这个效率高于上面的语句
  1. 分组 关键字 group by
#sum(列名)max(列名) min(列名) avg(列名)
#查看商品总价格,最大价格,最小价格,价格的平均值
SELECT SUM(price) AS 总价格,MAX(price) AS 最大值,MIN(price) AS 最小值,
AVG(price) AS 平均价格 FROM product
#查询价格大于200商品的总条数
SELECT COUNT(1) FROM product WHERE price>200
#查询分类为‘电脑办公’的所有的商品的总记录
SELECT COUNT(1) FROM product WHERE category_name=“电脑办公”
#查询分类为‘服装’所有商品的平均价格
SELECT AVG(price) FROM product WHERE category_name=“服装”
  1. 分组关键字 group by
#统计各个分类下商品的个数
SELECT COUNT(1),category_name FROM product GROUP BY category_name
  1. 过滤使用的是 having
    having 过滤 与where的区别 一个是分组前where having是在分组后
#统计各个分类商品的个数,有且只显示分类名称不为空指的数据
SELECT COUNT(1), category_name FROM product GROUP BY category_name HAVING category_name IS NOT NULL
  1. 查询语句不能随便调换位置
    在这里插入图片描述
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值