MySql数据库——并非仅仅增删查改
MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),使用最常用的数据库管理语言——结构化查询语言(SQL)进行数据库管理。
MySql命令行所需命令
登录时:mysql -h 127.0.0.1 -u用户名 -p密码
命令行查看表结构: desc tabel;
导入数据库(关键字): source
显示数据库、表:show database/table
MySql的语言类型
MySql语言分为五种类型,分别为:
- DQL语言 数据查询语言,执行查询语句
- DML语言 数据操作语言,执行非查询语句
- DDL语言 数据定义语言,对表结构进行增删改
- TCL语言 事务控制语言,负责提交、回滚事务
- DCL语言 数据控制语言,如授权和撤销授权
DDL语言、TCL语言和DCL语言详解
- DDL语言
CREATE、ALERT和DROP为关键字,分别是创建、更改和删除表结构 - TCL语言
START TRANSACTION、COMMIT和ROLLBACK为关键字,分别为开启事务、提交事务和事务回滚 - DCL语言
grant授权、revoke撤销权限
MySql基础语句
增删查改:
- INSERT INTO 表名 (字段) VALUES(字段值,用","隔开);
- DELETE FROM 表名 WHERE 条件;
- SELECT * FROM 表名;
- UPDATE 表名 SET 字段=字段值… WHERE 条件;
条件语句:
为字段起别名:关键字为as,可省略。
select wname as name from t_wife;
在区间内查询:BETWEEN AND
between 100 and 150 -- 范围为[100,150]
between 'A' and 'D' -- 范围为[A,D)
在字段数值符合集合内的行查询关键字为in。
SELECT * FROM STUDENT WHERE ID IN (1004,1005...);
模糊搜索:
SELECT * FROM STUDENT WHERE NAME LIKE 'A%';-- A为开头字母,%为通配符
SELECT * FROM STUDENT WHERE NAME LIKE '%A%';-- 名字包含A
SELECT * FROM STUDENT WHERE NAME LIKE '%A';-- A为结尾字母
判断为空/非空:
SELECT * FROM STUDENT WHERE TEL IS NULL; --判断为空 sql语句中 =NULL 无效
SELECT * FROM STUDENT WHERE TEL IS NOT NULL;
排序:
SELECT * FROM STUDENT ORDER BY ID; -- 学生按照学号递增顺序排列
SELECT * FROM STUDENT ORDER BY ID DESC; -- 学生按照学号递减顺序排列
MySql中的函数:
函数分为单行函数和多行函数。
单行函数: 字符函数 A.转换大小写 lower转化为小写,upper转换为大写。 B.字符串拼接函数 CONCAT,可以多个字符拼接。 C.字符串截取 SUBSTR D.获取字符串长度 length E.左对齐右对齐,用定义好的符号填充 LPAD左 RPAD右 F.清除字符串两端空白 trim G.替换 replace 数值函数 A.ROUND四舍五入 B.TRUNCATE截断 C.MOD 求余 D.向上/向下取整 CEIL向上 FLOOR向下 日期函数 A.获取当前时间:NOW(),SYSDATE() ;两种都可以 B.获取系统日期:CURDATE() C.增加日期类型数:DATE_ADD(date,inteval expr type),比如增加一个月。 D.减少日期类型数:DATE_SUB E.获取起始时间和结束时间的天数:DATEDIFF F.将字符串装换为指定格式的日期:STR_TO_DATE G.将日期转换为字符串:DATE_FORMAT 转换函数 将任意类型表达式转化为任意类型数值:CAST 通用函数 对null进行替换操作:ifnull(字段,替换的字符串) 字符串拼接:concat(字符串1,字符串2) 多行函数: max,min,avg,count; group by分组; having 对分组后的数据进行过滤; 联合去重:DISTINCT,写在select后;必须使用列名。