SQL 入门
常用命令
CREATE DATABASE test; # 创建数据库
CREATE TABLE t1(id int,body varchar(100)); # 创建表(记得使用\c命令切换数据库)
CREATE USER test WITH PASSWORD 'Test#1357'; # 创建用户
ALTER USER test WITH PASSWORD 'Test#2468'; # 修改密码
ALTER USER test createdb; # 指定用户添加指定角色
GRANT ALL PRIVILEGES ON DATABASE test TO test; # 赋予指定账户指定数据库所有权限
REVOKE ALL PRIVILEGES ON DATABASE test TO test; # 移除指定账户指定数据库所有权限
INSERT INTO table_name [(column1, c2, ...)] VALUES (v1, v2, ...); # 在表中插入新数据(在列1,列2插入v1,v2)
SELECT */column_name FROM table_name # 查询数据
SELECT DISTINCT column_name FROM table_name # 显示结果时去除重复值
SELECT 列名称 FROM 标名称 WHERE 列 运算符 值; # 条件过滤
操作符
操作符 | 描述 |
---|---|
= | |
<>/!= | 不等于 |
> | |
< | |
>= | |
<= | |
IN | 多选 |
NOT BEWTEEN… AND | ( , )/[ , ]/[ , ) |
LIKE/NOT LIKE | 某种搜索模式 |
AND | |
OR | |
AS | 指定表别名’’/列别名"" |
JOIN | 多表关联(匹配) |
UNION/UNION ALL | 合并 select 结果集 |
NOT NULL | 非空 |
VIEW | 是结果集的可视化的表 |
SELECT * FROM table_name ORDER BY c1,c2 DESC/LASTNAME/ID_P; # 结果按 降序/字母顺序/数字顺序 排列
UPDATE 表名称 SET 列名称 = 新value WHERE 列名称 = sth.; # 更新数据
DELETE FROM 表名称 WHERE 列名称 = sth.; # 删除某行数据
DELETE FROM table_name; # 删除所有行(表的结构属性索引完整)
TRUNCATE TABLE 表名称 # 删除表内数据
DROP TABLE 表名称 # 删除表
常用函数
语法:
SELECT function(列) FROM 表;
AVG
返回字段的平均值,不包括 null
COUNT
COUNT(*) # 返回表的记录数
COUNT(DISTINCT 列名) # 返回列的总数(除去重复的)
COUNT(列名) # 返回列的值的总数
SUM
求和
GROUP BY
结合统计函数 COUNT,根据某些列对结果集进行分组
HAVING
WHERE 不能和 COUNT 一起使用,所以在统计函数前加上 HAVING
select lastname,count(city) from persons
where city = 'xx'
group by lastname
having count(city) > 1;
UCASE/UPPER & LCASE/LOWER
把字段的值转换为大写/小写
LEN/LENGTH
返回字段的值的长度
ROUND(列名, 精度)
字段舍入为指定的小树位数
NOW/SYSDATE
获取当前日期时间