SQL(CREATE、SELECT、DISTINCT、IN BETWEEN、NULL、ORDER BY DESC、模糊查询、几个函数max() count() lower() ..)

CREAT 

CREATE TABLE students(
	sid INT PRIMARY KEY,
	sname VARCHAR(20) NOT NULL,
	sex VARCHAR(5) DEFAULT	'男',
	age INT CHECK	(age >= 10 AND age <= 100),
	idcard VARCHAR(255) UNIQUE
);

INSERT INTO students(sid,sname) 
VALUES (20160101,'bbb');

INSERT INTO students 
VALUES (20160102,'YY','男',20,'370304****');

外键、多个列当主键

CREATE TABLE sailors(
	sid VARCHAR(20) PRIMARY KEY,
	sname VARCHAR(20),
	rating INT,
	age REAL
);


CREATE TABLE boats(
	bid VARCHAR(20) PRIMARY KEY,
	bname VARCHAR(20),
	color VARCHAR(20)
);

CREATE TABLE reverses(
	sid VARCHAR(20), 
	bid VARCHAR(20), 
	day TIMESTAMP,
	
	CONSTRAINT fk_sid FOREIGN KEY (sid) REFERENCES sailors(sid),
	CONSTRAINT fk_bid FOREIGN KEY (bid) REFERENCES boats(bid),
	CONSTRAINT pk PRIMARY KEY (sid,bid)
);




SELECT

AS

SELECT * 
FROM emp;

SELECT empno, sal AS '月薪', sal * 12 AS '年薪' 
FROM emp;

DISTINCT 

-- 10 10 20 20 30 
-- 只输出10 20 30,会过滤掉重复的,输出不同的
SELECT DISTINCT deptno 
FROM emp;


-- 第n行与第n+1行不同
-- A B
-- A C
-- A D
-- B D 
SELECT DISTINCT deptno, sal
FROM emp;

-- 错误写法!!!
-- 写错了N次!!!一定要注意!!!!!!
-- !!!!
SELECT  deptno, DISTINCT sal
FROM emp;

BETWEEN 

SELECT sal
FROM emp
WHERE sal >= 10 AND sal <= 1200;
 
SELECT sal
FROM emp
WHERE sal BETWEEN 10 AND 1200;

 
SELECT *
FROM emp
WHERE sal NOT BETWEEN 10 AND 1200;

IN

SELECT empno,ename,sal
FROM emp
WHERE sal = 1600 OR sal = 1250 OR sal = 3000;

SELECT empno,ename,sal
FROM emp
WHERE sal IN (1600,1250,3000);

SELECT empno,ename,sal
FROM emp
WHERE sal != 1600 AND sal != 1250 AND sal != 3000;

SELECT empno,ename,sal
FROM emp
WHERE sal NOT IN (1600,1250,3000);

NULL

SELECT *
FROM emp
WHERE comm is NULL;

SELECT *
FROM emp
WHERE comm is NOT NULL;

ORDER BY

order by a, b           -- a和b都是升序
order by a, b desc      -- a升序b降序
order by a desc, b      -- a降序b升序
order by a desc, b desc -- a和b都是降序


 

-- 默认从低到高
SELECT *
FROM emp
ORDER BY sal;

SELECT *
FROM emp
ORDER BY deptno, sal;

-- 从高到低 descent
SELECT *
FROM emp
ORDER BY deptno, sal DESC;
-- desc之作用前面的一个,deptno是按照升序排列的,如果no 相同,sal按照降序排列

SELECT *
FROM emp
ORDER BY deptno DESC, sal;
--- deptno 降序排列, 如果no相通,sal升序

模糊查询

聚合函数

-- 变大小写, 最终返回 14行
SELECT LOWER(ename)
FROM emp;

SELECT UPPER(ename)
FROM emp;

-- 最终返回 1行 (其实就是一个数)
SELECT MAX(sal)
FROM emp;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值