###sql

-- root用户
-- 创建用户
CREATE USER xxx@'%' IDENTIFIED BY'1234'


-- 权限仓库
GRANT ALL ON warehouse.* TO xxx@'%'

SHOW GRANTS

USE warehouse

SELECT DATABASE()

SHOW TABLES

/*
  脚本中有创建的语句,但是不会执行,需要手动创建数据
*/

-- 查看信息
SELECT * FROM warehouse.s_list
SELECT * FROM warehouse.s_people
SELECT * FROM warehouse.s_supplier
SELECT * FROM warehouse.s_warehouse

-- 查看表结构
DESC warehouse.s_list
DESC warehouse.s_people
DESC warehouse.s_supplier
DESC warehouse.s_warehouse

/*
  投影查询---排序
    解释:对查询到的数据进行排序
    语法:select 字段信息 from 表名 order by 排序字段 desc/asc从大到小/从小到大
    默认按照自然顺序从小到大  asc(升序),desc(降序)
    
    排序规则:
      order by 后加一个字段名,获取的信息会以该字段进行排序
      order by 字段1,字段2等多个字段联合排序
*/

-- 希望获取仓库信息并且按照面积进行排序
SELECT w_id,w_city,w_area FROM s_warehouse ORDER BY w_area

-- 获取每一个人的工资,进行排序
SELECT * FROM s_people ORDER BY p_wages

-- 工资大于1230 工资减去100,工资小于等于 加500
SELECT s_id,p_wages,IF(p_wages>1230,p_wages-100,p_wages+500)chsal,s_id FROM s_people

-- 时间降序显示订单信息
SELECT * FROM s_list ORDER BY l_date DESC

/*
  选择查询
    解释:根据具体的需求获得精确的数据,对投影获取的数据进行筛选和过滤
    语法:
      普通条件查询:select 字段列表/表达式/函数 from 表名 where 条件表达式
      分组条件查询:
*/

/*
  普通条件的选择查询;
    解释:当where 后面的条件满足的时候,获取对应字段信息
    
    表达式:
      条件运算符
    =                   等于
    !=或<>             不等于
    >                   大于
    <                   小于
    <=                  小于等于
    >=                  大于等于
    is null或is not null为空或不为空
    between  and        两者之间
    in                  在……范围内
    like                匹配信息
    regexp              正则表达式
      
      逻辑运算符
    and                 并且
    or                  或者
    !                  非
*/


INSERT  INTO w_wwarehouse(w_id,w_city,w_area) VALUES 
('WH5','广州',560)

-- 获取地址在北京的仓库信息
DESC w_supplier
SELECT s_id,s_name,s_add FROM w_supplier WHERE s_add='北京'
SELECT s_id,s_name,s_add FROM w_supplier WHERE s_add!='北京'-- 不等于

-- 获取面积不是500的仓库信息
SELECT w_id,w_city,w_area FROM w_wwarehouse WHERE w_area>500

-- 获取仓库面积大于等于300的仓库信息
SELECT w_id,w_city,w_area FROM w_wwarehouse WHERE w_area>=300

INSERT  INTO w_people(w_id,p_id,p_wages) VALUES 
('WH2','E1',1220),
('WH1','E3',1210),
('WH2','E4',1250),
('WH3','E5',1230);


-- 获取工资1300到200之间的员工信息
SELECT w_id,p_id,p_wages FROM w_people WHERE p_wages BETWEEN 200 AND 1300
SELECT w_id,p_id,p_wages FROM w_people WHERE p_wages>=200 AND p_wages<=1300


-- 编号在s2,s3,s6,s8,s9的供应商信息
SELECT s_id,s_name,s_add FROM w_supplier 
  WHERE s_id='s2 ' OR s_id='S3' OR s_id='S6'
-- IN 表达式 字段 in(值1,值2,值3)只要字段存在就满足条件,不在就是 not in
SELECT s_id,s_name,s_add FROM w_supplier WHERE s_id IN('s2','S3','S6','S8')
SELECT s_id,s_name,s_add FROM w_supplier WHERE s_id NOT IN('s2','S3','S6','S8')


-- 查询供应商名字中带电子的供应商信息
-- like 模糊匹配,有两个匹配符号:%(0个或多个任意字符)  _(匹配一个任意字符)
  -- 语法:字段 like '匹配表达式'
SELECT s_id,s_name,s_add FROM w_supplier WHERE s_name LIKE '%电子%'
SELECT s_id,s_name,s_add FROM w_supplier WHERE s_name NOT LIKE '%电子%'


-- 查询供应商名字的第一个字是华的供应商信息
SELECT s_id,s_name,s_add FROM w_supplier WHERE s_name LIKE '华%'


-- 查询供应商名字的第二个字是华的供应商信息
SELECT s_id,s_name,s_add FROM w_supplier WHERE s_name LIKE '_华%'


/*
  选择查询----正则表达式
    解释:匹配信息
    语法:
    where 字段 regexp‘正则表达式’
    正则约束:
      ^匹配开始字符,以……开始 例如:'^A'以A开头
      $匹配结束字段,以……结束 例如:'A$'表示以A结束
      .匹配一个字符, 例如:'A.B'表示A和B中间有一个字符
      *匹配0个或多个字符,例如'A*'表示以A开头任意字符串
      +匹配一个或多个,例如'A+'表示A后面有一个或多个字符
      字符串 匹配信息,只要信息里需要包含字符串
      [字符集合]匹配的是字符集合中任意字符,只要信息中包含就满足条件
      [^字符集合]匹配不包含字符集合的信息
      字符串{n,}匹配信息中至少包含字符串n次
      字符串{n,m}匹配的是信息中至少包含字符串n次,最多包含字符串m次
*/


-- 对供应商进行匹配
SELECT s_id,s_name,s_add FROM w_supplier


-- 包含电子
SELECT s_id,s_name,s_add FROM w_supplier WHERE s_name REGEXP'电子'
SELECT s_id,s_name,s_add FROM w_supplier WHERE s_name REGEXP'.华'


-- 添加信息
INSERT INTO w_wwarehouse(w_id,w_city,w_area)VALUES('WH6','武汉',NULL)


-- 查询面积为不为空的仓库信息
SELECT * FROM w_wwarehouse WHERE w_area IS NOT NULL


-- 检索职工关系中的所有信息
SELECT w_id,p_id,p_wages FROM w_people


-- 检索供应商关系中的所有信息
SELECT w_id,w_city,w_area FROM w_wwarehouse


DELETE FROM w_list
SELECT * FROM w_list
INSERT  INTO w_list(p_id,s_id,l_id,l_date) VALUES 
('E3','S4','OR79','2001-06-23'),
('E1','S4','OR73','2001-07-28'),
('E3','S7','OR67','2001-05-25'),
('E5','S6','OR76','2001-05-26'),
('E6','S6','OR77','2001-06-13'),
('E1','S2','OR80','2001-08-29'),
('E3','S3','OR90','2001-09-01'),
('E3','S3','OR91','2001-07-13');


-- 5.检索六月之后的所有订单
SELECT l_date ,DATE_FORMAT(l_date,"%m/%d/%y")AS l_date FROM w_list
SELECT p_id,s_id,l_date FROM w_list WHERE MONTH(l_date)>6


-- 6.检索面积大于400的仓库
SELECT * FROM w_wwarehouse WHERE w_area >400;


-- 7.检索哪些职工的工资多于1210
SELECT w_id,p_id,p_wages FROM w_people WHERE p_wages>=1210


-- 8.检索仓库是“WH1”或“WH2”并且面积大于400的城市
SELECT w_id,w_city,w_area FROM w_wwarehouse WHERE w_id IN ('WH1','WH2')AND w_area>400


-- 9.找出仓库面积在400到600的仓库
SELECT w_id,w_city,w_area FROM w_wwarehouse WHERE w_area>=400 AND w_area<=600


-- 10.找出名中包含 “厂”的所有供应商的名
SELECT s_id,s_name,s_add FROM w_supplier WHERE s_name REGEXP'厂'

-- 11.找出不在西安的供应商
SELECT s_id,s_name,s_add FROM w_supplier WHERE s_add!='西安'

-- 12.找出不在北京的仓库
SELECT w_id,w_city,w_area FROM w_wwarehouse WHERE w_city!='北京'

-- 13.按工资降序排列出所有职工的信息
SELECT * FROM w_people ORDER BY p_wages DESC

-- 14.先按仓库号升序排列,再按工资降序排列
SELECT * FROM w_people ORDER BY w_id,p_wages DESC


 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值