数据库基础知识
一、关于数据库的操作
- 创建数据库
- 查看数据库
- 删除数据库
- 修改数据库的编码
二、关于表的操作
- 声明表
- 创建一个表及其字段信息
- 查看表
- 查看表的字段信息
- 修改表名
- 修改表的字段
- 增加字段
- 删除字段
- 修改字段的位置
- 删除表
三、 关于约束
创建表时约束
- 单字段主键约束
- 多字段主键约束
- 唯一值约束
- 非空约束
- 默认约束
四、关于索引
在创建表的时候设置索引
索引类别 INDEX 索引名 (字段)
- 普通索引(建立索引的字段值必须唯一或者是非空)
CREATE TABLE 表名
(字段1,数据类型
字段2,数据类型
INDEX ID(字段1,字段2)
)
2.唯一性索引(建立索引的字段值必须唯一)
3.单列索引
4.多列索引
5.全文索引
6.空间索引
已经存在的表中添加索引
- 创建索引
CREATE (索引类别)INDEX 索引名 ON 表名 (字段名)
或者
ALTER TABLE 表名 ADD INDEX (索引类别) 索引名 (字段1,字段2)
- 删除索引
ALTER TABLE 表名 DROP INDEX 索引名
DROP INDEX 索引名 ON 表名
表中数据的添加、修改与删除
INSERT ,UODATE,DELETE
- 不指定字段进行添加
INSERT INTO 表名
VALUES(字段1值,字段2值,字段3值)
- 指定字段进行添加
INSERT INTO 表名(字段名1,字段名2,字段名3)
VALUES(字段1值,字段2值,字段3值)
- 修改字段中的值
UPDATE 表名
SET 字段=新值 # 设新值
WHERE 字段=条件 # 设条件
- 删除表中的数据
DELETE FROM 表名
WHERE 字段1=条件1,字段2=条件2
TRUNCATE TABLE 表名
五、表的查询
简单查询
- 查询表中所有信息
- 查询表中特定字段信息
- 查询条件设定(ORDER BY一定在GROUP BY之后)(ORDER BY,GROUP BY,LIMIT,WHERE,DITINCT,HAVING)HAVING在GROUP之后,WHERE 在GROUP之前
- 带关系运算符的查询
- 带IN关键字的查询
- 带BETWEEN AND 关键字的查询
- 带LIKE关键字的查询,% 与_
- 空值查询 ISNULL
- 带逻辑运算符的查询 AND OR
高级查询
(一)聚合函数查询
- COUNT()统计某个字段的行数,null值自动忽略
- DISTINCT 去除重复
- AVG() 求平均数
- MAX() 求某一列的最大值,可以是时间类型的数据
- MIN() 返回某一列的最小值
- SUM() 求和
SELECT COUNT(DISTINCT字段名) FROM 表名
(二)时间函数查询
- 返回当前时间
- 返回月份、年份、周几、季度
- 返回一年中的第几天、第几周’一月中的第几天
- 时间差函数 TIMESTAMPDIFF
- 时间转换函数DATE_FORMAT
- 返回小时,分钟、秒数
(三)字符串函数查询
- CONCAT(STR1,STR2) 合并
- LENGTH(STR) 长度
- POSTION(‘P’ IN ‘PYTHON’) 位置
- LOCATE(‘P’,‘PYTHON’) 位置
- LEFT(STR,LEN) 取特定长度
- RIGHT(STR,LEN) 取特定长度字符
- SUBSTRING(STR,M,N) 从发哪个位置取几个长度
- SUBSTRING_INDEX(STR,DELIM,COUNT) 从哪个位置渠道末尾
- LTRIM(STR) 去空白
- RTRIM(str) 去空白
- replace(str,str1,str2) 替换
(四)控制流函数查询
- IF(TEST,T,F)
- IFNULL(ARG1,ARG2)
- 对一个字段里的值进行复制
select * from 表名
case DEPARTMENT
when ‘技术部’ THEN 1
ELSE 0
END
(五)数学函数查询
- 绝对值函数 ABS()
- 向上取整函数 CEILING()
- 向下取整函数 FLOOR()
- 随机数 RAND()
- 取余数 MOD(除数,被除数)
- 保留几位小数 FORMAT(a,b) a为数字,,b为小数位数
- 四舍五入之后取小数 ROUND(a,b)