MYSQL总结
增
INSERT INTO 表名(列名...) values(值...)
删
DELETE FROM 表名 WHERE 筛选条件
改
UPDATE 表名 SET 列名=要修改的值 WHERE 筛选条件
查
SELECT * FROM 表名 WHERE 筛选条件
查询中的关键字( 指令 )
GROUP BY 分组
ORDER BY 排序
ASC 升序
DESC 降序
WHERE 添加条件
HAVING 分组后执行的筛选条件
AND 和 OR 或
IS NULL 是空
IS NOT NULL 不是空
AS 起个名称
BETWEEN AND 在...和...之间
LIMIT 将数据分页显示
limit 分页查询
SELECT COUNT(*) FROM student ##总数据22条/2=11页
第1页
- 0 索引
- 2 条
SELECT * FROM student LIMIT 0,3 #(当前页-1)*显示的条数
第2页
SELECT * FROM student LIMIT 0,2
分组查询
SELECT * FROM 表名 WHERE 筛选条件
GROUP BY 列名
HAVING 筛选条件
ORDER BY 排序
模糊查询
LIKE(值_) 一个字符
LIKE(值%) 多个字符
WHERE 列名 IN ('值'...) 在什么什么里面
BETWEEN 值 AND 值 在...和...之间
表的数据修改
表是用来存储数据的——表存在库——库存在硬盘里\
修改表名
ALTER TABLE 表名 RENAME [TO] 新表名;
ALTER TABLE niuma RENAME result
添加字段
ALTER TABLE 表名 ADD 字段名 数据类型 [属性];
ALTER TABLE result ADD eid INT(4)
修改字段
ALTER TABLE 表名 CHANGE 原字段名 新字段名 数据类型 [属性];
ALTER TABLE result CHANGE eid xid INT(5) NOT NULL
删除字段
ALTER TABLE 表名 DROP 字段名;
ALTER TABLE result DROP xid
聚合函数
COUNT() 统计个数
SUM() 求和
MAX() 最大值
MIN() 最小值
AVG() 平均值
日期属性
获取当前日期
SELECT CURDATE()
查询当前时间
SELECT NOW()
查询当前时间是当年的第几周
SELECT WEEK(NOW());
求年龄
SELECT DATEDIFF(NOW(),'2002-04-15') / 365
求今年年份
SELECT YEAR(NOW())
求今年月份
SELECT MONTH(NOW())
向上取整
SELECT CEIL(2.1)
计算日期加时间
SELECT ADDDATE(NOW(),5)
向下取整
SELECT FLOOR(2.6)
返回随机数
SELECT RAND(1)
子查询
执行顺序
先执行小括号里面的查询(子查询)再执行括号外边的查询(父查询)
查询比李斯文年龄大的
SELECT * FROM 表名 WHERE 列名 <(
SELECT 列名 FROM 表名 WHERE 筛选条件
AND 筛选条件
)
Exists 使用
如果exists有结果那么父查询执行,如果没结果,父查询不执行
SELECT * FROM 表名 WHERE EXISTS(SELECT * FROM 表名 WHERE 筛选条件)
建表属性
PRIMARY KEY 主键
AUTO_INCREMENT 自增
DEFAULT 默认值
COMMENT 备注
UNIQUE 唯一
NOT NULL 不能为空
主外键
主键
一个表只有一个主键且唯一 不能为空
外键
一个表中可以有多个外键 可以重复 可以为空 为关系键
主外键
一张表对另一张表的引用 先有主表(包括主键)再有外表(外键) 主键在多个外键中使用
事务
begin 开始事务
commit 提交事务
rollback 回滚
视图
CREATE VIEW 视图名称 AS SELECT 列名 FROM 表名 WHERE 筛选条件
创建普通索引
CREATE INDEX 名称
ON 表名(列名)
删除索引
DROP INDEX 索引名称
ON 表名
查看索引
SHOW INDEX FROM 表名
用户
创建一个用户
CREATE USER 账号名 IDENTIFIED BY 密码
给用户权限
GRANT 权限 ON 数据库.数据表 TO '用户' @ '主机名'
给查询权限
GRANT SELECT ON 数据库.数据表 TO '用户' @ '主机名'
给增加,删除权限
GRANT INSERT,DELETE ON 数据库.数据表 TO '用户' @ '主机名'
给用户所有权限
GRANT ALL ON *.* TO '用户' @ '主机名'
删除用户权限
REVOKE 权限 ON 数据库.数据表 FROM '用户' @ '主机名'
修改用户密码
SET PASSWORD FOR '用户'@'主机名'=PASSWORD('123456')