SQL基础
整数
整数字节 | 字节数 | 无符号取值范围 | 有符号取值范围 |
---|---|---|---|
TINYINT | 1 | 0~255 | -128~127 |
SMALLINT | 2 | 0~65535 | -32768~32768 |
MEDIUMINT | 3 | 0~16777215 | -8388608~8388608 |
INT | 4 | ||
INTEGER | 4 | ||
BIGINT | 8 |
浮点
整数字节 | 字节数 | 无符号取值范围 | 有符号取值范围 |
---|---|---|---|
FLOAT | 4 | ||
DOUBLE | 8 |
时间与日期
整数字节 | 字节数 | 取值范围 | 零值 |
---|---|---|---|
YEAR | 1 | 0000 | |
DATE | 4 | 0000:00:00 | |
TIME 3 | 00:00:00 | ||
DATETIME | 8 | 0000-00-00 00:00:00 | |
TIMESTAMP | 4 | 00000000 |
字符串类型
- CHAR和VARCHAR
- TEXT
- ENUM
- SET
二进制类型
整数字节 | 字节数 | |
---|---|---|
YEBINARY(M) | 字节M | |
VARYEBINARY(M) | 可变字节M | |
BIT(M) | M位二进制数据(64) |
- 创建数据库
CREARE DATABASE db_students.........创建db_student数据库
- 删除数据库
DROP DATABASE db_student..........删除db_student数据库
表
关系数据库是由一个或者多个表构成的
- 创建表
//语法
CREATE TABLE <表名>
( <列名> <数据类型> [完整性约束条件],
<列名> <数据类型> [完整性约束条件],
)
//例子
CREATE TABLE example
( id INT,
name VARCHAR(20),
sex BOOLEAN
);
完整性约束
设置表的主键
- 单子段主键:
属性名 数据类型 PRIMARY KEY…………. stu_id INT PRIMARY KEY
标识该属性为该表的主键,可以唯一的标识对于的元组 - 多字段主键
PRIMARY KEY(属性名1, 属性名2, …, 属性名n)
主键由多个属性组合而成,属性设置完后统一设置主键
设置表的外键
- 若字段sno是表A的属性,且依赖于表B的主键。那么表B为父表,表A为子表。
sno为表A的外键
NOT NULL
表的非空约束
UNIQUE
表的唯一约束
修改表
ALTER TABLE student_info ADD stu_entrance DATE
删除表
DROP TABLE tbale_name
查看表
DESCRIBE 表名;
SHOW CREATE TABKE 表明
存储引擎
SHOW ENGINES;
索引
- BTREE索引+HASH索引
- 分类:
- 普通索引
- 唯一性索引
- 全文索引
- 单列索引
- 多列索引
- 空间索引
触发器
SQL语法
SELECT
SELECT .... FROM....;
SELECT * FROM....;
SELECT.....FROM.....WHERE....
IN
是否在集合zhong
SELECT * FROM employee WHERE d_id IN(1001,1004);
BTWEEN AND
SELECT * FROM emplyee WHERE age BETWEEN 15 AND 25;
LIKE
SELECT * FROM emplyee WHERE name LIKE 'Aric'
AND OR
DISTINCT
不重复
SELECT DISTINCT 属性名
SELECT DISTINCT d_id FROM employee
排序
ORDER BY 属性名
ORDER BY age;
分组
语句用于结合合计函数,根据一个或多个列对结果集进行分组。
单调使用只可以显示分组的一条记录
这里写代码片
limit
限制记录数
集合函数查询
COUNT 函数
- 统计记录的条数
SELECT COUNT(*) FROM employee
SUM
- 某字段的和
SELECT num, SUM(score) FROM grade WHERE num=1001
连接查询
左连接
查询出表1所指的表中的所有记录,而表2所指的表中,只能查询匹配结果
SELECT num,name,employee.d_id,d_name,function
FROM employee LEFT JOIN department
ON employee.d_id=department.d_id
右连接
查询出表2所指的表中的所有记录,而表1所指的表中,只能查询匹配结果
算术运算符
- 加减乘除
比较运算符
- IS NULL / IS NOT NULL
- BTWEEN AND
- IN
- LIKE
- REGEXP
逻辑运算符
- && AND
- || OR