Mysql
1.查看表的创建信息
-- \G换行
show create table 表名称\G
2.MySQL的编码设置:
2.1查看编码命令
show variables like 'character_%';
show variables like 'collation_%';
2.2修改mysql的数据目录下的my.ini配置文件
[mysql] --大概在63行左右,在其下添加 ...
default-character-set=utf8 #默认字符集
[mysqld] -- 大概在76行左右,在其下添加 ...
character-set-server=utf8
collation-server=utf8_general_ci
2.3:重启服务
2.4:查看编码命令
show variables like 'character_%';
show variables like 'collation_%';
3.root用户密码忘记,重置的操作
1: 通过任务管理器或者服务管理,关掉mysqld(服务进程)
2: 通过命令行+特殊参数开启mysqld mysqld -- defaults-file="D:\ProgramFiles\mysql\MySQLServer5.7Data\my.ini" --skip-grant-tables
3: 此时,mysqld服务进程已经打开。并且不需要权限检查
4: mysql -uroot 无密码登陆服务器。另启动一
个客户端进行
5: 修改权限表
1) use mysql;
2)update user set authentication_string=password('新密码') where user='root' and Host='localhost';
3)flush privileges;
6: 通过任务管理器,关掉mysqld服务进程。
7: 再次通过服务管理,打开mysql服务。
8: 即可用修改后的新密码登陆。
4.运算符
4.1安全等于运算符(<=>)
安全等于运算符(<=>)与等于运算符(=)的作用是相似的,
唯一的区别 是‘<=>’可以用来对NULL进行判断。
在两个操作数均为NULL时,其返回值为1,而不为NULL;/*当一个操作数为NULL时,其返回值为0,而不为NULL。*/
SELECT'' <=> NULL,NULL <=> NULL FROM cg_dazl;
-- '' <=> NULL 值为0 ,NULL <=> NULL值为1
4.2.IS NULL 和 IS NOT NULL
空运算符(IS NULL或者ISNULL)判断一个值是否为NULL,如果--为NULL则返回1,否则返回0。
非空运算符(IS NOT NULL)判断一个值是否不为NULL,如果--不为NULL则返回1,否则返回0。
4.3最小值运算符LEAST
SELECT LEAST (1,0,2), LEAST('b','a','c'), LEAST(1,NULL,2);
4.4最大值运算符GREATEST
SELECT GREATEST(1,0,2), GREATEST('b','a','c'), GREATEST(1,NULL,2);
4.5NOT IN
NOT IN运算符 NOT IN运算符用于判断给定的值是否不是IN列表中的一个值,
如果不是IN列表中的一个值,则返回1,否则返回0。
4.6正则表达式
5.odrerby排序 与
排序
--多列排序,第一列值相同,才会对第二列排序
SELECT last_name, department_id, salary FROM employees ORDER BY department_id, salary DESC;
--默认排序规则ASC
分页
limit 从哪条开始查询,要查询的条数
--前10条记录: SELECT * FROM 表名 LIMIT 0,10;
--第11至20条记录: SELECT * FROM 表名 LIMIT 10,10;
--第21至30条记录: SELECT * FROM 表名 LIMIT 20,10;
6.函数
6.1数值函数
6.2角度与弧度互换函数
函数 | 用法 |
---|---|
RADIANS(x) | 将角度转化为弧度,其中,参数x为角度值 |
DEGREES(x) | 将弧度转化为角度,其中,参数x为弧度值 |
6..3 三角函数
6.4 指数与对数
6.5 进制间的转换
6.6字符串函数
6.7日期和时间函数
6.8日期与时间戳的转换
6.9 获取月份、星期、星期数、天数等函数*
6.10日期的操作函数
函数 | 用法 |
---|---|
EXTRACT(type FROM date) | 返回指定日期中特定的部分,type指定返回的值 |
6.11时间和秒钟转换的函数
6.12计算日期和时间的函数
6.13日期的格式化与解析
6.14Mysql信息相关的函数
函数 | 用法 |
---|---|
VERSION() | 返回当前MySQL的版本号 |
CONNECTION_ID() | 返回当前MySQL服务器的连接数 |
DATABASE(),SCHEMA() | 返回MySQL命令行当前所在的数据库 |
USER(),CURRENT_USER()、SYSTEM_USER(),SESSION_USER() | 返回当前连接MySQL的用户名,返回结果格式为 “主机名@用户名” |
CHARSET(value) | 返回字符串value自变量的字符集 |
COLLATION(value) | 返回字符串value的比较规则 |
7.GROUP BY
7.1GROUP BY中使用WITH ROLLUP
--使用 WITH ROLLUP 关键字之后,在所有查询出的分组记录之后增加一条记录,
--该记录计算查询出的所有记录的总和,即统计记录数量。
SELECT department_id,AVG(salary) FROM employees WHERE department_id > 80
GROUP BY department_id WITH ROLLUP;
当使用ROLLUP时,不能同时使用ORDER BY子句进行结果排序,即ROLLUP和ORDER BY是互相排斥的。
8.唯一约束
--1.建表时添加唯一约束
CREATE TABLE USER(
id INT NOT NULL,
NAME VARCHAR(25),
PASSWORD VARCHAR(16),
-- 使用表级约束语法
CONSTRAINT uk_name_pwd UNIQUE(NAME,PASSWORD)
);
--2.建表后添加唯一约束
alter table 表名称 add unique key(字段列表);
-- 查看表的索引
通过 show index from 表名称;
9.视图
--查看视图的结构
DESC / DESCRIBE 视图名称;
-- 查看视图信息(显示数据表的存储引擎、版本、数据行数和数据大小等)
SHOW TABLE STATUS LIKE '视图名称'\G
--查看视图的详细定义信息
SHOW CREATE VIEW 视图名称;
9.2视图不可更新的原则
--不可更新的视图
1.在定义视图的时候指定了“ALGORITHM = TEMPTABLE”,视图将不支持INSERT和DELETE操作;
2.视图中不包含基表中所有被定义为非空又未指定默认值的列,视图将不支持INSERT操作;
3.在定义视图的SELECT语句中使用了 JOIN联合查询 ,视图将不支持INSERT和DELETE操作;
4.在定义视图的SELECT语句后的字段列表中使用了 数学表达式 或 子查询 ,视图将不支持INSERT,也不支持UPDATE使用了数学表达式、子查询的字段值;
5.在定义视图的SELECT语句后的字段列表中使用 DISTINCT 、 聚合函数 、 GROUP BY 、 HAVING 、 UNION 等,视图将不支持INSERT、UPDATE、DELETE;
6.在定义视图的SELECT语句中包含了子查询,而子查询中引用了FROM后面的表,视图将不支持 INSERT、UPDATE、DELETE;
7.视图定义基于一个 不可更新视图 ;
8.常量视图。
9.3修改视图
1.使用CREATE OR REPLACE VIEW 子句修改视图
2.ALTER VIEW 视图名称 AS 查询语句
9.4删除视图
DROP VIEW IF EXISTS 视图名称;