SQL语法
关键字
语法 | 说明 | 备注 |
---|---|---|
create | ||
SELECT |
数据类型
名称 | 说明 |
---|---|
int | 整数型 |
numeric(a,b) | 数字类型,a:总长度, b:小数点 |
char(n) | 字符、字符串类型,n:固定长度 |
varchar(n) | 字符、字符串、可变长度,n:最大长度 |
date | 日期类型 |
char 与 varchar
- 无论实际字符串多长,每个char占用的空间都是一样的
- var会根据实际字符串占用的长度存储数据,节约存储空间
比较运算符
语法 | 说明 |
---|---|
= | 等于 |
< | 小于 |
> | 大于 |
<= | 小于等于 |
>= | 大于等于 |
!=、<> | 不等于 |
逻辑运算
语法 | 说明 | 备注 |
---|---|---|
AND | 逻辑于 | |
OR | 逻辑或 | |
NOT | 逻辑非 | |
UNION(去重合并) | ||
UNION ALL(不去重合并) | ||
INTERSECT(交) | ||
MINUS(差) | ||
IN、NOT IN |
create - 创建
基础语法
create table {表名}(
{字段名} {字段类型} {字段特性}
userid int primary key; # 这是一个用户id,是一个主键
age int not null; # 这个用户的年龄,每个人都有年龄
name char(10) not null; # 长度为10个字的中文名字,每个人都有年龄
hiredate date, # 日期类型,入职时间
sal numeric(8,2) # 工资字段,最大不超过8位,同时精确到2位小数点
)
字段类型 | 说明 |
---|---|
int | |
char(n) |
字段特性 | 说明 | 备注 |
---|---|---|
primary | 指定该字段为主键 | |
not null | 该字段不可以为空 |
INSERT - 插入
基础语法:
insert into {表名} values(1, 18, "ccvb"); # 直接填入值
insert into {表名}(age, name) values(18, 'ccvb')
insert into {表名}({字段1}, {字段2}, {字段3}) values({值1}, {值2}, {值3}) # 指定的列添加数据
SELECT - 查询
基础语法:
SELECT {目标表的列名或列表达式集合}
FROM {基本表或(和)视图集合}
〔WHERE条件表达式〕
〔GROUP BY列名集合
〔HAVING组条件表达式〕〕
〔ORDER BY列名〔集合〕…〕
select * from {表名};
select {字段1},{字段2},{字段3} from {表名}; # 查询指定的列
select name, (age+10)*2 from User; # 查询名字列,同时年龄放大2倍
select name as "名字", age*2 as "年龄" from {表名} # 使用别名
select DISTINCT name, age from {表名} # 去除名字字段相同的结果
特性语句:
特性语句 | 说明 |
---|---|
as | 使用别名 |
DISTINCT | 去重 |
where |
WHERE
select name,age from {表名} where age<18; # 筛选出所有未成年
select name,age from {表名} where age=18; # 筛选出所有18岁青年
select name,age from {表名} where age!=18; # 筛选出所有非18岁姓名
select name,age from {表名} where age>16 AND age <6 # 筛选出大于16,小于6岁的数据
drop
drop table {table_name} # 删除一个表
drop table if exists {table_name} # 如果存在才删除,这样不会发生空表错误