SQL语法

SQL语言


SQL的数据类型

数据类型 描述
CHARACTER(n) 字符/字符串。固定长度 n。
VARCHAR(n) 或 CHARACTER VARYING(n) 字符/字符串。可变长度。最大长度 n。
BINARY(n) 二进制串。固定长度 n。
BOOLEAN 存储 TRUE 或 FALSE 值
VARBINARY(n) 或 BINARY VARYING(n) 二进制串。可变长度。最大长度 n。
INTEGER(p) 整数值(没有小数点)。精度 p。
SMALLINT 整数值(没有小数点)。精度 5。
INTEGER 整数值(没有小数点)。精度 10。
BIGINT 整数值(没有小数点)。精度 19。
DECIMAL(p,s) 精确数值,精度 p,小数点后位数 s。例如:decimal(5,2) 是一个小数点前有 3 位数,小数点后有 2 位数的数字。
NUMERIC(p,s) 精确数值,精度 p,小数点后位数 s。(与 DECIMAL 相同)
FLOAT(p) 近似数值,尾数精度 p。一个采用以 10 为基数的指数计数法的浮点数。该类型的 size 参数由一个指定最小精度的单一数字组成。
REAL 近似数值,尾数精度 7。
FLOAT 近似数值,尾数精度 16。
DOUBLE PRECISION 近似数值,尾数精度 16。
DATE 存储年、月、日的值。
TIME 存储小时、分、秒的值。
TIMESTAMP 存储年、月、日、小时、分、秒的值。
INTERVAL 由一些整数字段组成,代表一段时间,取决于区间的类型。
ARRAY 元素的固定长度的有序集合
MULTISET 元素的可变长度的无序集合
XML 存储 XML 数据

模式

1.定义

create schema 模式名 authorization 用户名;

2.删除

drop schema 模式名 cascade;

CASCADE 和RESTRICT 必须⼆选⼀

CASCADE是(级联): 删除模式的同时也把该模式的所有数据库对象删除.

RESTRICT(限制) :如果该模式下有下属对象,⽐如表视图 就拒绝这个删除语句的执行


1.定义

create table test1(
    id int primary key,
    name varchar(255),
    age int
);

image-20210922145121769

2.删除

drop table 表名 cascade;

CASCADE如果表有外键,视图 触发器,也会强行删除;

RESTRICT相反

3.修改

alter table test1 add email varchar(255);

image-20210922145752418


索引

数据量比较大的时候, 查询耗时间⻓, 建⽴索引可以有效减少消耗时间 索引可以建⽴在⼀列或者多列上

1.建立

create unique index 索引名 on 表名(字段);

CLUSTER: 聚簇索引,物理顺序与索引的逻辑顺序相同

UNIQUE: 唯⼀索引

2.修改

alter index 旧索引名 rename to 新索引名;

3.删除

drop index 索引名;

查询

1.查询所有 & 查询部分列

#查 询 所 有
select *
from 表名;

image-20210922153759452

#查 询 部 分 列
select id,name
from 表名;

image-20210922154009532

2.别名

select id 标签,name 姓名
from 表名;

image-20210922154415001

#也可以给表起别名
select t1.id,t1.`name` # "`"在tab键上
from test1 t1;

3.结果去重

image-20210922161201797

select distinct course 开设课程
from test1;

image-20210922161225856

4.查询结果加条件

image-20210922162914861

样例一:course表

image-20210922165259179

样例二:user表

image-20210922174150081

比较

#样例一
select *
from course
where price > 10;

image-20210922165421988

确定范围

#样例一
select *
from course
where price between 18 and 30;

image-20210922170539683

确定集合

#样例一
select *
from course
where price in(5,20);

image-20210922171013383

字符匹配

#样例一
select *
from course
# % 省略多个字符
where title like '%1';

image-20210922171731732

#样例一
select *
from course
# 一个'_'省略一个字符
where title like 'java_';

image-20210922172151981

空值

select *
from user
where password is not null;

image-20210922174215583

多重条件

select *
from user
where name is not null and password is not null;

image-20210922174428517

posted @ 2021-09-22 15:48  Cornfield_Chase  阅读(79)  评论(0)    收藏  举报