培训班DAY04 数据库基础

数据库

1. 什么是数据库?

存储数据的仓库, 叫做数据库。英文单词:database 简称:db。

2. 数据库的分类

  • 关系型数据库: MySQL, Oracle, SqlServer, 华为高斯 …
  • 非关系型数据库(缓存、秒杀、搜索引擎 …): Redis, MangoDB, ES

3. SQL:

中文名字: 结构化查询语言

4. 启动数据库

5. 测试一下数据库

  1. 查看当前数据库的版本:

    select version();
    
  2. 查看系统当前时间:

    select now();
    

一. 数据库相关

  1. 查看当前数据库系统中有哪些数据库?

    show databases;
    
  2. 新建数据库:

    create database 数据库名 default charset utf8;
    

    例子: 新建数据库 mydb0517

    create database mydb0517 default charset utf8;
    
  3. 删除数据库:

    drop database 数据库名;
    

    例子: 删除数据库 mydb0517

    drop database mydb0517;
    
  4. 设置当前数据库:

    use 数据库名;
    

    例子: 将 mydb0517 设置为当前数据库

    use mydb0517;
    

二. 表相关

  1. 创建表
    • 常用的数据类型: int (整型), varchar (字符型), date (日期)
    • 格式:
      create table 表名(
          字段名 数据类型(长度),
          字段名 数据类型(长度),
          字段名 数据类型(长度),
          ...
          字段名 数据类型(长度)
      );
      
    例子: 新建表 hero,字段: id, name, job(职位), money(薪水)
    create table hero(
        id int,
        name varchar(50),
        job varchar(50),
        money float
    );
    
# 查看当前数据库的版本
```sql
select version();

查看系统当前时间

select now();

表相关

例 新建表 hero 字段: id, name, job(职位), money(薪水)

create table hero(
   id int,  
   name varchar(10),
   job varchar(10), 
   money int
);

三. 插入数据

格式:

insert into 表名(字段列表) values(值列表);

插入数据例子:

insert into hero(id, name, job, money) values (1, '诸葛亮', '法师', 18888);
insert into hero(id, name, job, money) values (2, '周瑜', '法师', 13888);
insert into hero(id, name, job, money) values (3, '刘备', '战士', 8888);
insert into hero(id, name, job, money) values (4, '孙尚香', '射手', 6888);
insert into hero(id, name, job, money) values (5, '黄忠', '射手', 6888);
insert into hero(id, name) values (6, '赵云');

四. 查询数据

1. 查询全部记录

格式:

select 字段列表 from 表名;
  1. 查询 hero 表中的全部记录
select id, name, job, money from hero;
select * from hero;
  1. 给字段起别名 as 可以省略
select id 编号, name 姓名, job 职位, money 薪水 from hero;
select id as 编号, name as 姓名, job as 职位, money as 薪水 from hero;
  1. 查看 hero 表中的全部记录以及他们的年薪情况
select id, name, job, money, money * 12 年薪 from hero;

2. 查询部分记录

  1. 查询 hero 表中员工的姓名和工资
select name, money from hero;
  1. 查询 hero 表中员工的姓名、工资和年薪情况
select name, money, money * 12 from hero;
  1. 查询 hero 表中员工的姓名和职位
select name, job from hero;
  1. 扩展: concat(): 字符的拼接
select concat(name, "的职业是", job) from hero;

3. 根据条件进行查询 where 查询条件

  1. 查询刘备的相关信息
select id, name, job, money from hero where name = '刘备';
  1. 查询所有职业是法师的员工记录
select id, name, job, money from hero where job = '法师';
select * from hero where job = '法师';
  1. 查询刘备的职业
select job from hero where name = '刘备';
  1. 查询工资高于10000的员工记录
select id, name, job, money from hero where money > 10000;
  1. 查询不是法师的员工记录
select id, name, job, money from hero where job != '法师';
select id, name, job, money from hero where job <> '法师';
select id, name, job, money from hero where not job = '法师';
  1. 查询工资在10000到20000之间的员工信息

    • 方法1:
    select id, name, job, money from hero where money >= 10000 and money <= 20000;
    
    • 方法2: between ... and ...
    select id, name, job, money from hero where money between 10000 and 20000;
    
  2. 查询没有职位的员工的姓名

    select name from hero where job is null;
    
  3. 查询有职位的员工的姓名

    select name from hero where job is not null;
    

练习

  1. emp

    create table emp(             
       id int,
       name varchar(10),
       sal int,
       deptId int
    );
    
  2. dept

    create table dept(    
        id int,
        name varchar(10),
        loc varchar(10)    
    );
    
  3. 插入 dept

    insert into dept(id, name, loc) values (1, '神仙部', '天庭');
    insert into dept(id, name, loc) values (2, '妖怪部', '盘丝洞');
    
  4. 插入 emp

    insert into emp(id, name, sal, deptId) values (1, '悟空', 5000, 1);
    insert into emp(id, name, sal, deptId) values (2, '八戒', 2000, 1);
    insert into emp(id, name, sal, deptId) values (3, '蜘蛛精', 8000, 2);
    insert into emp(id, name, sal, deptId) values (4, '白骨精', 9000, 2);
    

查询练习

  1. 查询工资低于6000的员工

    select name, sal from emp where sal < 6000;
    
  2. 查询工资在2000和5000之间的员工

    select * from emp where sal >= 2000 and sal <= 5000;
    select * from emp where sal between 2000 and 5000;
    
  3. 查询悟空的年薪

    select sal * 12 from emp where name = '悟空';
    
  4. 查询 deptId 为 2 且工资高于8000的员工

    select * from emp where deptId = 2 and sal > 8000;
    
  5. 查询 deptId 不是 1 的员工

    select * from emp where deptId != 1;
    select * from emp where deptId <> 1;
    select * from emp where not deptId = 1;
    
  6. 查询妖怪部的地点

    select loc from dept where name = '妖怪部'; 
    
  7. 查询 deptId 为 2 的所有员工

    select * from emp where deptId = 2;
    

数据库练习

一. 新建表练习

  1. 在数据库中创建员工表 emp 字段: id, name, sal, deptId(部门 id)
    建表语句如下:

    create table emp(             
       id int,
       name varchar(10),
       sal int,
       deptId int
    );
    
  2. 创建部门表 dept 字段: id, name, loc(部门地址)

    create table dept(    
        id int,
        name varchar(10),
        loc varchar(10)    
    );
    

二. 添加记录练习

  1. 部门表(dept)插入如下记录

    idnameloc
    1神仙部天庭
    2妖怪部盘丝洞
    insert into dept(id, name, loc) values (1, '神仙部', '天庭');
    insert into dept(id, name, loc) values (2, '妖怪部', '盘丝洞');
    
  2. 员工表(emp)插入如下记录

    idnamesaldeptId
    1悟空50001
    2八戒20001
    3蜘蛛精80002
    4白骨精90002
    insert into emp(id, name, sal, deptId) values (1, '悟空', 5000, 1);
    insert into emp(id, name, sal, deptId) values (2, '八戒', 2000, 1);
    insert into emp(id, name, sal, deptId) values (3, '蜘蛛精', 8000, 2);
    insert into emp(id, name, sal, deptId) values (4, '白骨精', 9000, 2);
    

三. 条件查询

  1. 查询工资6000以下的员工姓名和工资

    select name, sal from emp where sal < 6000;
    
  2. 查询工资在2000~5000的员工的记录

    select * from emp where sal >= 2000 and sal <= 5000;
    select * from emp where sal between 2000 and 5000;
    
  3. 查询悟空的年薪

    select sal * 12 as 年薪 from emp where name = '悟空';
    
  4. 查询2号部门工资高于8000的员工记录

    select * from emp where deptId = 2 and sal > 8000;
    
  5. 查询不是1号部门的员工记录

    select * from emp where deptId != 1;
    select * from emp where deptId <> 1;
    select * from emp where not deptId = 1;
    
  6. 查询妖怪部的地址信息

    select loc from dept where name = '妖怪部'; 
    
  7. 查询2号部门的员工信息

    select * from emp where deptId = 2;
    
  • 24
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值