SQL语句
-- DDL
CREATE DATABASE 库名字
CREATE TABLE 表名字(
)
ALTER TABLE 表名字 ADD //增
ALTER TABLE 表名字 DROP //删
ALTER TABLE 表名字 MODIFY //修改
ALTER TABLE 表名字 RENAME TO 表名字 //修改
DROP DATABASE 名字 //删除库
DROP TABLE 表名字 //删除表
-- DML
INSERT INTO 表名字 VALUES(); //添加信息
DELETE FROM 表名字 WHERE ;//删除信息
UPDATE 表名字 SET WHERE //修改信息
-- DQL
SELECT * FROM 表名字 t1 WHERE t1.name LIKE '___' //查找名字由3个字母组成
SELECT * FROM 表名字 t1 WHERE t1.name LIKE 'j%' //查找名字由j 开头
SELECT * FROM 表名字 t1 WHERE t1.name LIKE '_a%' //第二个字母为a 的学生记录
SELECT * FROM 表名字 t1 WHERE t1.name LIKE '%a%' //查询姓名中包含字母a的记录
SELECT * FROM 表名字 [1.WHERE 2.GROUP BY 3.HAVING 4.ORDER BY 5.LIMIT]
SELECT * FROM 表1 INNER JOIN 表2 ON () INNER JOIN 表3 ON()
约束
-- 非空约束
NOT NULL
-- 唯一性约束
NOT NULL UNION
-- 默认约束
NOT NULL DEFAULT 1
-- 主键约束
PRIMARY KEY
AUTO_INCREMENT //自增
-- 外键约束 修改数据表t,将字段t_id设置为外键,外键名fk_id,与数据表tb的主键进行关联
ALTER TABLE t add CONSTRAINT fk_id FOREIGN KEY(t_id) REFERENCES tb(id);
函数
-- 字符函数
-- 字符串连接
SELECT CONCAT('JA','VA','SQL'); -- JAVASQL
-- length() 字节长度
SELECT length(name),name FROM tb_stu; --
-- 字符长度
SELECT CHAR_LENGTH('java'); -- 4
-- 去除前后空格
SELECT trim(' ja va '); -- ja va
-- 重复指定次数
SELECT repeat('java',4); -- javajavajavajava
-- 字符串替换
SELECT REPLACE('javajava','ava','jjj'); -- jjjjjjjj
-- 截取字串
SELECT substring('javaabc',1,3); -- jav
-- 数学函数
-- 绝对值
SELECT abs(-15); -- 15
-- 向上取最小整数
SELECT ceil(4.4); -- 5
-- 向下取最大整数
SELECT floor(4.4); -- 4
-- 取余数
SELECT mod(20,6); -- 2
-- 得到 0-1之间的随机值
SELECT rand(); -- 0.8403694842386706 随机
-- 有2位小数的四舍五入值
SELECT round(3.1415926,4); -- 3.1416
-- 截断,小数位保持2位
SELECT TRUNCATE(6.7894515,3); -- 6.789
-- 日期函数
-- 当前日期,当前时间,日期和时间
SELECT CURDATE(),CURTIME(),now(); -- 2023-03-22 21:09:54 2023-03-22 21:09:54
-- 指定日期是一年中的第几周
SELECT WEEK(now()); -- 12
-- 返回指定日期的年份
SELECT YEAR(now()); -- 2023
-- 返回指定时间的小时
SELECT hour(now()),hour(CURTIME()); -- 21
-- 返回date的月份名
SELECT MONTHNAME(now()); -- March
SELECT MONTH(now()); -- 3
三大范式
-
- 遵循原子性。表中字段的数据,不可以再拆分
-
- 遵循唯一性,消除部分依赖。表中任意一个主键或任意一组联合主键,可以确定除该主键外的所有的非主键值。
-
- 任一主键都可以确定所有非主键字段值的情况下,不能存在某非主键字段 A 可以获取 某非主键字段 B
表与表的关系
- 一对一 :
- 一对多 :部门和员工
- 多对多 :老师和学生