-- 创建部门表(dept:部门,dname:名称,location:位置)
create table dept(
deptno int primary key,
dname varchar(9)
location varchar(10)
);
-- 创建员工表
create table employee(
empno int primary key,
name int char(10) not null,
deptno int,
manager int,
hiredate date,
salaryh
);
-- 创建经理表
create table managers(
empno int primary key,
title varchar (16)
);
/*
int 整数类型
char(n) 字符/字符串,固定长度为n
varchar(n) 字符/字符串,可变长度,最大为n
numeric(a,b) 精确数值,总位数为a,小数点后位数b
date 储存年、月、日的值
*/
-- 插入
insert into 表名 values(字段1的值,字段2的值,字段3的值,...)
insert into 表名(字段1,字段2,字段3,...) values(字段1的值,字段2的值,字段3的值,...)
-- 主键
每个表只能定义一个主键。
主键值必须唯一标识表中的每一记录,且不能为null,即表中不可能存在有相同主键值的两条记录。
一个字段名只能在联合主键字段中出现一次。
联合主键不能包括不必要的多余字段。当把联合主键的某一字段删除后,剩下的字段不能唯一代表一条记录。
-- 查询数据
select * from '表名';
select 字段1,字段2 from 表名;
-- 去重复值
select distinct 字段名 from 表名;
-- 条件过滤
select 字段名 from 表名 where 字段 运算符 值;
/*
运算符
= 等于
<>或!= 不等于
> 大于
< 小于
>= 大于等于
<= 小于等于
BETWEEN 在某个范围内
LIKE 搜索匹配的字符串模式
*/
-- and和or 运算符
select 字段名 from 表名 where 字段n 运算符 值n and|or 字段m 运算符 值m;
-- LIKE 搜索匹配的字符串
select 字段名 from 表名 where like 字符串;
-- in 匹配多个值(可加not)
select 字段名 from 表名 where 字段名 in (值1,值2,...);
-- between 指定范围(可加not)
select 字段名 from 表名 where 字段名 between 值1 and 值2;
-- 排序
select 字段名 from 表名 order by 字段1,字段2,... asc|desc;
-- 更新数据
update 表名 set 字段1=值1,字段2=值2,... where 子句;
省略where子句,表中所有的记录都将更新。
-- 删除记录
delete from 表名 where 子句;
省略where子句,表中所有记录都将删除。
-- index 索引
create index 索引名 on 表名(字段1,字段2,..)
提高访问数据的速度。
-- view 视图
create view 视图名 as select语句;
-- null值
null值代表遗漏的未知数据,是未知的或不适用的值的占位符。
是否为null要用is null 或 is not null进行判断。
-- 表的别名
别名只在当前SQL语句中生效,更具有可读性
- 字段名长或可读性差时
- 涉及多个表,而且多个表中有相同的字段名时
- 代表查询函数的结果
select 字段名 as 别名 from 表名 as 别名;
as 可省略。
-- join连接
内连接(inner join):列出两个表中都存在的记录
左连接(left join):即使没有匹配也列出左表中的所有记录
右连接(right join):即使没有匹配也列出右表中的所有记录
select 字段名 from 表1 join 表2 on 子句;
SubQuery子查询
也称嵌套查询,子查询用于为主查询返回其所需数据,或者对检索数据进行进一步的限制。
select 字段1,字段2,...from 表名 where 字段名 操作符(子查询);
count函数
count(*)统计表中的记录总数
count(1)统计有数据的为1
count(字段名)统计指定字段不为null的记录数。
max&min函数
max(字段名)返回所选字段的最大值
min(字段名)返回所选字段的最小值
avg&sum函数
avg(字段名)返回所选字段的平均值
sum(字段名)返回所选字段的合计值
group by分组
group by 用于结合统计函数,根据一个或多个列的结果集进行分组。
select 字段名,统计函数 from 表名 where 子句 group by 字段名;
having过滤分组
用于对group by子句产生的组进行过滤
select 字段名,统计函数 from 表名 where子句 group by 字段名 having 统计函数 运算符 值;
标签:varchar,--,SQL,笔记,int,字段,表名,主键 From: https://www.cnblogs.com/qingfengguihe/p/16852972.html