SQL基础知识
SQL 是用于访问和处理数据库的结构化查询语言。
其功能有:
从数据库中获取、查询、插入、更新、删除数据;创建数据库、新表、存储过程、视图;还可以设置表、存储过程和视图的权限。
下面介绍SQL的关键字及函数:
1.SELECT 用于从数据库中选取数据
2.DISTINCT 用于返回唯一不同的值
3.WHERE+条件 用于过滤记录,常与运算符配合使用
比较运算符:=, > ,< ,>= ,<=, !=,<> (不等于)
逻辑运算符:AND ,OR ,NOT (优先级顺序 () , NOT , AND , OR)
特殊条件: IS NULL , DETWEEN AND , IN(多值判断),LIKE(模糊查询, % 表示多个字值,_ 表示一个字符)
不带比较运算符的 WHERE 子句:
当0时转化为 false,会返回一个空集,如:
select studentNo from student where 0
当其他值是转化为true,将返回表的所有行记录。如:
select studentNo from student where 1 --或者
select studentNo from student where 'abc'
4.OEDER BY 用于对结果集按照一个列或者多个列进行排序。默认按照升序排序。如果需要降序排序可使用 desc关键字。
5.INSERT INTO向表中插入新记录
第一种无需指定要插入数据的列名,只需提供被插入的值即可:
INSERT INTO table_name
VALUES (value1,value2,value3,...);
第二种形式需要指定列名及被插入的值:
INSERT INTO table_name (column1,column2,column3,...)
VALUES (value1,value2,value3,...);
6.UPDATE 更新表中的记录
UPDATE table_name
SET column1=value1,column2=value2,...
WHERE some_column=some_value;
7.DELETE 删除表中的记录
删除表中所有的行,无撤销操作,需要格外小心。删除表后表结构、属性、索引将保持不变。
DELETE FROM table_name;
DELETE * FROM table_name;
8.TOP 用于规定要返回的记录的数目
SELECT TOP number|percent column_name(s)
FROM table_name;
9.别名
–列的 SQL 别名语法
SELECT column_name AS alias_name
FROM table_name;
表的 SQL 别名语法
SELECT column_name(s)
FROM table_name AS alias_name;
10.JOIN 连接
INNER JOIN:如果表中有至少一个匹配,则返回行
LEFT JOIN:即使右表中没有匹配,也从左表返回所有的行
RIGHT JOIN:即使左表中没有匹配,也从右表返回所有的行
FULL JOIN:只要其中一个表中存在匹配,则返回行
11. UNION 合并两个或多个 SELECT 语句的结果。(UNION 内部的每个 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每个 SELECT 语句中的列的顺序必须相同)
SELECT column_name(s) FROM table1
UNION SELECT column_name(s) FROM table2;
如果允许重复的值,则使用 UNION ALL
SELECT column_name(s) FROM table1
UNION ALL
SELECT column_name(s) FROM table2;
12.SELECT INTO 语句从一个表复制数据,然后把数据插入到另一个新表中。
SELECT column_name(s)
INTO newtable [IN externaldb]
FROM table1;
13.INSERT INTO SELECT 语句从一个表复制数据,然后把数据插入到一个已存在的表中。目标表中任何已存在的行都不会受影响。
INSERT INTO table2
(column_name(s))
SELECT column_name(s)
FROM table1;
14.约束
创建约束ADD 删除约束DROP
NOT NULL - 指示某列不能存储 NULL 空值。
UNIQUE - 保证某列的每行必须有唯一的值。
PRIMARY KEY - NOT NULL 和 UNIQUE 的结合。确保某列(或两个列多个列的结合)有唯一标识,有助于更容易更快速地找到表中的一个特定的记录。
FOREIGN KEY - 保证一个表中的数据匹配另一个表中的值的参照完整性。
CHECK - 保证列中的值符合指定的条件。
DEFAULT - 规定没有给列赋值时的默认值。
15.日期
数据类型 | 格式 |
---|---|
DATE | YYYY-MM-DD |
DATETIME | YYYY-MM-DD HH:MM:SS |
TIMESTAMP | YYYY-MM-DD HH:MM:SS |
YEAR | YYYY 或 YY |
16.通用数据类型
数据类型 | 描述 |
---|---|
CHARACTER(n) | 字符/字符串。固定长度 n |
VARCHAR(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) 或 NUMERIC(p,s) | 精确数值,精度 p,小数点后位数 s。例如:decimal(5,2) 是一个小数点前有 3 位数小数点后有 2 位数的数字 |
FLOAT( p) | 近似数值,尾数精度 p。一个采用以 10 为基数的指数计数法的浮点数。该类型的 size 参数由一个指定最小精度的单一数字组成 |
REAL | 近似数值,尾数精度 7 |
FLOAT | 近似数值,尾数精度 16 |
DOUBLE PRECISION | 近似数值,尾数精度 16 |
DATE | 存储年、月、日的值 |
TIME | 存储小时、分、秒的值 |
TIMESTAMP | 存储年、月、日、小时、分、秒的值 |
INTERVAL | 由一些整数字段组成,代表一段时间,取决于区间的类型 |
ARRAY | 元素的固定长度的有序集合 |
MULTISET | 元素的可变长度的无序集合 |
XML | 存储 XML 数据 |
17.函数
函数 | 功能 |
---|---|
AVG() | 返回数值列的平均值 |
COUNT() | 返回匹配指定条件的行数 |
FIRST()或LAST() | 返回指定的列中第一个或最后一个记录的值 |
MAX()或MIN() | 返回指定列的最大或最小值 |
SUM() | 返回数值列的总数 |
GROUP BY | 结合聚合函数,根据一个或多个列对结果集进行分组 |
HAVING | 增加 HAVING 子句原因是,WHERE 关键字无法与聚合函数一起使用。HAVING 子句可以筛选分组后的各组数据 |
UCASE() 或LCASE() | 把字段的值转换为大写或小写 |
MID() | 从文本字段中提取字符 SELECT MID(column_name,start[,length]) FROM table_name; |
LEN() | 返回文本字段中值的长度 |
ROUND() | 用于把数值字段舍入为指定的小数位数 SELECT ROUND(column_name,decimals) FROM table_name; column_name要舍入的字段,decimals要返回的小数位数。 |
NOW() | 返回当前系统的日期和时间 |
FORMAT() | 用于对字段的显示进行格式化 SELECT FORMAT(column_name,format) FROM table_name; |
更多推荐
SQL基础知识
发布评论