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
获取当前日期时间