MYSQL数据库总结

134 阅读3分钟

MYSQL总结

INSERT INTO 表名(列名...) values(值...)

DELETE FROM 表名 WHERE 筛选条件

UPDATE 表名 SET 列名=要修改的值 WHERE 筛选条件

SELECT * FROM 表名 WHERE 筛选条件

查询中的关键字( 指令 )

GROUP BY 分组
ORDER BY 排序
ASC 升序
DESC 降序
WHERE 添加条件
HAVING 分组后执行的筛选条件
ANDORIS 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'值'...)  在什么什么里面
BETWEENAND 值   在...和...之间 

表的数据修改

表是用来存储数据的——表存在库——库存在硬盘里\

修改表名

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')