Day 68

_SQL概述与SQL分类

  1. SQL的分类:
    • DDL:数据定义语言
      • CERATE \ ALTER \ DROP \ RENAME \ TRUNCATE
    • DML:数据操作语言
      • INSERT \ DELETE \ UODATE \ SELECT
    • DCL:数据控制语言
      • COMMIT \ ROLLBACK \ SAVEPOINT \ GRANT \ REVOKE

_ DDL操作数据库

  1. 查询:
    • SHOW DATABASES;
  2. 创建:
    • CREATE DATABASES;
    • CREATE DATABASES IF NOT EXISTS 数据库名称 创建数据库(判断,如果不存在则创建);
  3. 删除
    • 删除数据库
      • DROP DATABASES 数据库名称;
    • 删除数据库(判断,如果存在则删除)
      • DROP DATABASES IF EXISTS 数据库名称
  4. 使用数据库
    • 查看当前使用的数据库
      • SELECT DATABASES();
    • 使用数据库
      • USE 数据库名称;

_DDL操作表

  1. 查询表:

    • 查询当前数据库下所有表的名称
      • SHOW TABLES;
    • 查询表的结构
      • DESC 表名称
  2. 创建表

    1. CREAT TABLE 表名(
      	字段名1   数据类型1,
      	字段名2   数据类型2...
          字段名n   数据类型n
      );
      注意:最后一行末尾不能加逗号
      

_DDL操作表,删除&修改

  1. 删除表
    • DROP TABLE 表名;
  2. 删除表时判断表是否存在
    • DROP TABLE EXISTS 表名;
  3. 修改表
    • 修改表名
      • ALTER TABLE 表名 RENAME TO 新的表名;
    • 添加一列
      • ALTER TABLE 表名 ADD 列名 数据类型;
    • 修改数据类型
      • ALTER TABLE 表名 MODIFY 列名 新数据类型;
    • 修改列名和数据类型
      • ALTER TABLE 表名 CHANGE 列名 新列名 新数据类型;
    • 删除列
      • ALTER TABLE 表名 DROP 列名;

_列的别名、去重、NULL、DESC等操作

  1. #1. 去除重复行
    select distinct manager_id , employee_id ,last_name from employees ;
    # 仅仅只是没有报错,查询没有意义
    
    # 2. 空值参与运算
    # - 空值!= 0;
    # - 空值为NULL;
    select employee_id , last_name , 
    salary"月工资" , salary*(1+ifnull(commission_pct,0))*12"年工资" 
    from employees ;
    
    # 3. 着重号`
    # - 
    select * from `order` o ;
    
    # 4. 查询常数
    select '尚硅谷'employee_id, last_name , salary
    from employees e ;
    
    # 5. 显示表结构
    describe employees ;
    

_使用WHERE过滤数据

  1. # 1. 过滤数据
    # 需求:查询90号部门的员工信息
    select *
    from employees e 
    # 过滤条件:
    where department_id  = 90;
    
    # 需求:查询'King'员工的信息
    select *
    from employees e 
    where last_name  = 'King';
    

_运算符的使用

  1. # 1. 过滤数据
    # 需求:查询90号部门的员工信息
    select *
    from employees e 
    # 过滤条件:
    where department_id  = 90;
    
    # 需求:查询'King'员工的信息
    select *
    from employees e 
    where last_name  = 'King';
    
    # 算数运算符:+ - * / DIV
    select 100,100+100, 100*100 , 25.5*5/10;
    
    # 取模运算  % mod
    # 练习:查询员工Id为偶数的的员工
    select employee_id , last_name ,salary 
    from employees e 
    where employee_id %2 = 0;
    
    # 比较运算符 =  =  <=>  !=   <=  <   >   =>  
    select 1 = 2 , 1!= 2 ;
    
    select * from employees e ;
    
    # <=> 作用等同于= , <=> 适用于有NULL参与的情况,为NULL二生
    select department_id ,last_name ,commission_pct 
    from employees e 
    where commission_pct <=>null;
    
    # LEAST  \  GREATEST   排序
    select least(first_name ,last_name)  
    from employees e ;
    
    # BETWEEN ... AND
    # 查询工资在6000到8000的员工信息(包含边界)
    select *
    from employees 
    where salary between 6000 and 8000;
    # 查询工资不在6000到8000的员工信息(包含边界)
    select *
    from employees e 
    where not salary between 6000 and 8000;
    
    # 需求:查询部门为10,20,30,部门的员工信息
    select *
    from employees e 
    where department_id in (10,20,30);
    
    # 需求:查询工资不是6000,7000,8000的员工
    select *
    from employees e 
    where not salary in(6000,7000,8000);
    
    # 模糊查询
    # 需求:查询last—_name里面包含字符'a'的员工
    select last_name 
    from employees e 
    where last_name like '%a%';
    
    # _ :代表一个不确定的字符
    # 查询第3个字符时'a'的员工信息
    select last_name  
    from employees e 
    where last_name like '__a%';
    
    # 查询第2个字符是_且第3个字符时'a'的员工信息
    # 需要使用转义字符:\
    select last_name 
    from employees  
    where last_name like '_\_a%';
    
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
明日问题的输入事件与输出事件为: | Input Events | Node Output Event description Node . e0: start program event 1 e7: Welcome message 2 e1: center a valid month 6e8: print today's date 4 e2: enter an invalid month 67| e9: print tomorrow's date 6 e3: enter a valid day 69 e10: "month OK" 39 e4: enter an invalid day 69 e11: "month out of range" 41 e5: enter a valid year 71 e12: "day OK" 4 e6: enter an invalid year 71 e13: "day out of range" 4S e14: "year OK" 54 e15: "year out of range" 5( e16: "Date OK" 6C e17: "please enter a valid date" 62 e18: "enter a month" 6( e19: "enter a day" 68 e20: "enter a year" 70 c21: "Day is month, day, year" 8S 在下表中,ASF-6对应的输入事件为: 输出事件 ASF-7对应的输入事件为: 输出事件 为:_ ASF-8对应的输入事件为:_, 输出事件 为:_ ASF-9对应的输入事件为:_,输 出事件 为:_ Atomic System Function Inputs Outputs L ASF-1 start program e0 e7 | ASF-2 enter a date with an invalid month, valid day and valid year e2, e3,e5 e11,e12,e14,e17 | ASF-3 enter a date with an invalid day, valid month and validyear| e1, c4,e5 e10,e13,e14,e17 | ASE-4 enter a date wih an ivalid year, valid day and valid monh| el,e3, c6 e10,e12, el5,e17| ASF-5 enter a date with valid month, day, and year e1,e3,e5 . e10, e12, e14, e16, c21 | ASIF-6 enter a date with valid month, day and year invalid ASF-7 enter a date with valid day, month and year invalid ASF-8 enter a date with valid year, day and month invalid ASF-9 enter a date with invalid month, day, year
06-01
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值