Skip to main content

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} # 如果存在才删除,这样不会发生空表错误