SQL基础查询以及运算符的使用

关于SQL的注意事项以及基本查询

SQL的分类:

  • DDL:数据定义语言 CREATE ALTER DROP RENAME
  • DML:数据操作语言 INSERT DELETE UPDATE SELECT(重中之重)
  • DCL:数据控制语言 COMMIT ROLLBACK SAVEPOINT GRANT REVOKE
    USE dbtest;
    SELECT * FROM emp
    INSERT INTO emp VALUES(1002,'TOM')
    语句写分号,如果只执行一条语句可以不写,执行两条以上要写
    字符串,日期时间类型的变量需要使用一对’’
    在这里插入图片描述
    SHOW CREATE TABLE kss_note
    在这里插入图片描述

SQL大小写规范:

  • MYSQL在windows环境下是大小写不敏感的(windows本身就对这个不敏感)
  • MYSQL在Linux环境下是大小写敏感的
  • 推荐使用统一规范:数据库名,表名,表别名,字段名,字段别名都小写,SQL关键字,函数名,绑定变量都大写

导入现有的数据表和表的数据:

  • 方式1:source文件的全路径名
    需要命令行才能执行source D:\系统默认\桌面\atguigudb.sql
    在这里插入图片描述
    在这里插入图片描述
  • 方式2:基于具体的图形化界面的工具可以导入数据
    执行sql脚本
    在这里插入图片描述

最基本的SELECT语句:

SELECT 1+1,3*2 FROM DUAL; dual:伪表
在这里插入图片描述

  • 表示表中的所有的字段(或列)
    SELECT * FROM employees;
    列的别名:
    as:全称:alias,可以省略。
    列的别名可以使用一对""引起来,不要使用’‘。
    SELECT employee_id emp_id,last_name AS lname,department_id "dept_id" FROM employees;
    查询到的东西叫做结果集
    在这里插入图片描述
    去掉重复行:
    SELECT DISTINCT department_id FROM employees;
    在这里插入图片描述
    错误的书写:SELECT salary,DISTINCT department_id FROM employees;
    整体不重复,没有实际意义:SELECT DISTINCT department_id,salary FROM employees;
    在这里插入图片描述
    空值:
    null不等同于0,’',‘null’,空值参与运算结果也为null。
    实际解决方案引入IFNULL,select salary "月工资",salary*(1+ifnull(commission_pct,0))*12 "年工资",commission_pct from employees;
    在这里插入图片描述
    着重号:``
    如果出现了字段名,表名和关键字重名了,那么就需要着重号。
select * from `order`;

在这里插入图片描述
查询常数:
select 'yykk',123,employee_id,last_name from employees;
在这里插入图片描述
显示表结构:
显示表中字段的详细信息
describe employees;
在这里插入图片描述
过滤条件where:
SELECT * FROM employees WHERE last_name = 'king';
windows情况下不区分大小写
在这里插入图片描述

运算符的使用

算术运算符

+ - * / div % mod
在java语言中,结果是1001.
在SQL中,+没有连接eider作用就表示加法运算,会将字符串转化为数值(隐式转化)。
select 100 +'1' from dual;
在这里插入图片描述
SELECT 100 +'a' FROM DUAL;
将’a’当作0来处理
在这里插入图片描述
SELECT 100 +NULL FROM DUAL;
在这里插入图片描述
SELECT 100/2,100/3,100 DIV 0 FROM DUAL;
除以就默认是浮点型,分母如果为0结果为null
在这里插入图片描述
SELECT 100 DIV 2,100 DIV 3 FROM DUAL;
在这里插入图片描述
取模运算: % mod
SELECT 12%3,12%5,12 MOD -5,-12 MOD 5,-12 % 5,-12 % -5 FROM DUAL;
结果的正负号只于被模数有关。比如-12
在这里插入图片描述

比较运算符

= <=> <> != < <= > >=
select 1=2,1!=2,1='1',1='a',0='a' from dual;
'a’转化数值不成功,隐式转化为0
在这里插入图片描述
SELECT 'a' = 'b','a' = 'a' FROM DUAL;
两边都是字符串,按照ASCII的比较规则进行比较
在这里插入图片描述
只要有null参与判断结果就为null。
在这里插入图片描述
安全等于 <=>,和=的唯一区别就是可以用NULL进行判断。
select 1 <=> null,null <=> null from dual;
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
IS NULL等价于<=> NULL
IS NOT NULL就是不为空的情况下
select least('g','a'),greatest('a','b') from dual;
在这里插入图片描述
LEAST GRTEAST
SELECT LEAST(first_name,last_name) FROM employees;
并不是比较字符串长度,而是逐个比较字符大小直到比较出结果
在这里插入图片描述
SELECT LEAST(LENGTH(first_name),LENGTH(last_name)) FROM employees;
在这里插入图片描述
BETWEEN …条件1 AND …条件2
条件1和条件2不能交换
SELECT employee_id,salary FROM employees WHERE salary BETWEEN 6000 AND 8000;
在这里插入图片描述
不在6000到8000之内
SELECT employee_id,salary FROM employees WHERE salary NOT BETWEEN 6000 AND 8000;
in not in
select last_name,salary,department_id from employees where department_id in(10,20,30);
在这里插入图片描述
相反not in表示不在括号内离散的数字的情况。
模糊查询 LIKE:
SELECT last_name FROM employees WHERE last_name LIKE '%a%';
在这里插入图片描述
_ :代笔一个不确定的字符
SELECT last_name FROM employees WHERE last_name LIKE '_a%';
在这里插入图片描述
在这里插入图片描述

使用转义字符
在这里插入图片描述

逻辑运算符和位运算符

在这里插入图片描述
XOR :追求的“异”字,两边一真一假就要
select last_name,salary,department_id from employees where department_id = 50 XOR SALARY >6000;
注意AND优先级高于OR
位运算符: & | ^ ~ >> <<
在这里插入图片描述
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

龙崎流河

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值