1.MySQL的部署流程大概哪几步
1 确定坏境和相关组件。
2 建立相关目录结果,/usr/lcoal/data
3 建立mysqladmin用户和dba组。cp /etc/shel/*. 添加mysqladmin的环境变量。
4 建立mysql的cnf文件。修改/etc/my.conf 和 /usr/local/mysql 权限和属主属组。权限为 755 。属主属组。mysqladmin:dba 755
5 安装mysql。制定相关 data目录和 home/目录。
6 查看mysql相关进程,删除/usr/lcal/mysql/conf文件。(my.conf 可以在执行。这样直接 cp conf /etc/my.conf)
7 添加启动项init.d
8登录mysql ,简单设置相关用户和密码
2.重置root用户密码的SQL是什么?用到了 什么函数?
1 mysql> update user set password=password(‘123456’) where user=‘root’;.
2
3.删除空账户的SQL是什么?
mysql> delete from user where user=’’;
4.数据类型有哪些?
MySQL数据类型可分为3类:数值类型、日期和时间类型、字符串(字符)类型
-
数值类型:
tinyint[(M)] [UNSIGNED] [ZEROFILL] //M(默认值) 4 非常小整数值
smallint[(M)] [UNSIGNED] [ZEROFILL] //M(默认值) 6 较小整数
mediumint[(M)] [UNSIGNED] [ZEROFILL] //M(默认值) 9 中等大小整数
int 和integer[(M)] [UNSIGNED] [ZEROFILL] //M(默认值) 11 和int相同
bigint[(M)] [UNSIGNED] [ZEROFILL] //M(默认值) 20 较大整数
示例:
int(11),int(5),如果不指定位数,INT型默认长度为11
float [(M,D)] [ZEROFILL]
double[(M,D)] [ZEROFILL] 和 real[(M,D)] [ZEROFILL] 相同
decimal[(M[,D])] [ZEROFILL] 和 numeric[(M,D)] [ZEROFILL] 相同
(M,D) 表示总共M位,D个小数位,D包含于M中。浮点类型不能是unsigned的
M :指出最大的显示尺寸。最大的合法的显示尺寸是 255 。
D :适用于浮点类型并且指出跟随在十进制小数点后的数码的数量。最大可能的值是30,但是应该不大于M-2
-
字符类型
char(M)[BINARY]
varchar(M) [BINARY]
tinyblob,tinytext // inyblob:不超过 255 个字符的二进制字符串; tinytext:短文本字符串
blob,text // blob:二进制形式的长文本数据,在分类和比较时BLOB 类型区分大小写; text:长文本数据,在分类和比较时TEXT 不区分大小写
mediumblob,mediumtext // mediumblob:二进制形式的中等长度文本数据; mediumtext :中等长度文本数据,
longblob,longtext // longblob:二进制形式的极大文本数据 ; longtext :极大文本数据
enum(‘value1’,‘value2’,…) // 1或2个字节,取决于枚举值的个数(最多65,535个值)
set(‘value1’,‘value2’,…) // 1、2、3、4或者8个字节,取决于set成员的数目(最多64个成员) -
日期类型
YEAR[(2|4)]:范围 1901/2155 格式 YYYY
DATE :范围 ‘1000-01-01’–‘9999-12-31’ 格式 YYYY-MM-DD
TIME :范围 ‘-838:59:59’到’838:59:59’ 格式 HH:MM:SS
DATETIME :范围 ‘1000-01-01 00:00:00’–‘9999-12-31 23:59:59’ 格式 YYYY-MM-DD HH:MM:SS
TIMESTAMP[(M)] :范围 1970-01-01 00:00:00/2037 年某时 格式 YYYYMMDD HHMMSS 混合日期和时间值,时间戳
5.建表的SQL语句是什么?
mysql> create database 数据库名;
6.增删改查的SQL语句是什么?
删除
drop table 表名;
插入数据:
insert into 数据库名.表名(列名) values(对应的值);
例如:
insert into user(id,name,memory,sex,do,cretime) values(1,‘小米’,10.22,‘b’,‘在打游戏’,‘2017-12-11 00:00:00’);
insert into user values(1,'小米',10.22,'b','在打游戏','2017-12-11 00:00:00');
insert into user(id, name) values(1,'小米');
查询:
select 字段 from 数据库名.表名;
例如:
select * from user;
select * from user where id=3;
*:查询所有的列
更新:
update 数据库名.表名 set 字段名称=新的值
例如:
update user set sex=‘g’ where id=1;修改id为1的数据
update user set sex='g';修改全部的行
删除:
delete from 数据库名.表名
例如:
delete from user;删除所有的数据,慎用
delete from user where id=3;删除id为3的数据
7.排序,默认是升序还是降序
SQL语言的默认排序方式是升序,ORDER BY 子句若未显式指定升序(ASC)或降序(DESC),那么就认按默认升序排序。
例如下列语句为默认按升序排序
select * from t1 order by col1;
它与下列语句等效
select * from t1 order by col1 asc;
8.分组函数哪些?
##进阶函数
/*
调用语法:select函数名(实参列表);
分组函数和单行函数的区别:
单行函数:将一个数据进行处理,返回一个值
分组函数:将虚拟表看做一个组,处理一组数据,返回一个值
常见的分组函数:
sum(字段):求该字段的所有值的和
avg(字段):求该字段的平均值
max(字段):求最大值
min(字段):求最小值
count(字段):计算该字段中的非空值的个数
特点:
1.分组函数可以搭配筛选条件使用
2.分组函数的参数可以作为字段或者表达式
3.分组函数都忽略null值
4.分组函数都支持的类型:
max、min、count支持任意类型
sum、avg仅仅支持数值类型
5.count的使用
count(*)或count(常量值):统计结果集中的行数
count(distinct字段):实现去重后的统计
6.和分组函数一同查询的字段不能是任意字段,可以是group by后面的字段
问题:
查询员工平均工资和员工号
select avg(salary),employee_id from employees
group by avg,employee_id;
9.分组语法是什么?要注意什么
1 order by【表示通过哪个或者哪些字段进行排序】
group by【表示通过哪个或者哪些字段进行分组】
重点:若一条DQL语句当中有group by 子句,那么select关键字后面只能跟参与分组的字段和分组函数。
where关键字后面不能直接使用分组函数。
分组函数必须在分组完成之后执行,而分组需要group by,而group by在where后执行。
2 一个完整的DQL语句的总结:
select
…
from
…
where
…
group by
…
having
…
order by
…
第一:以上的关键字顺序不能变,严格遵守。
第二:执行顺序:
1.from (从某张表中检索数据)
2.where (经过某条件进行过滤)
3.group by (然后分组)
4.having (分组之后补满意再过滤)
5.select (查询出来)
6.order by (排序输出)
10.having是用来过滤数据的,是不是只能跟group by后面?
having:
having和where功能都是为了完成数据的过滤
where 和having后面都添加条件
where在group by之前完成过滤
having在group by 之后完成过滤
原则:
尽量在where中过滤,无法过滤的数据,通常都是需要先分组之后再过滤,这个时候可以选择使用having。
11.限制多少行 返回的语法?
查询数据时,会返回很多条记录,用于需要的记录可能只是其中的一条或者几条,比如,实现分页功能,每页显示10条记录,每次查询就只需要查询出10条记录。
MySQL中,提供了LIMIT关键字,可以指定查询结果,从哪一条记录开始,以及一共查询多少条记录
SELECT 字段名1,字段名2,……
FROM 表名
LIMIT [OFFSET,] 记录数
参数说明
LIMIT后面,可以跟两个参数
第一个参数,OFFSET,可选参数,表示偏移量,如果不指定默认值为0
如果,偏移量为0,则从查询结果的第一条记录开始,偏移量为1,则从查询结果中的第二条记录开始,以此类推
第二个参数,记录数,表示返回查询结果的条数
查询student表,前4条记录
这里写图片描述
可以看出,执行语句中,没有指定偏移量,返回的结果从第一条记录开始,一共返回了4条记录
查询student表,grade字段值从第5位,到第8位的学生,结果按grade从高到低排序
这里写图片描述
可以看出,返回了4条记录,grade字段值是从第5位到第8位
12.where group by having order by limit 组合使用顺序对不对
mydql>select deptno,job,sum(sal)from emp /
where job=‘SALESMAN’
group by deptno,job
having sum(sal) >3000
order by sum(sal) desc
limit 1;
13.union all和union 什么区别? 使用union语法要注意什么
#.union all 不去重复和union 去重复
注意:
a.名称是第一张表决定
b.不用* 指定字段
c.对应字段类型保持一致
14.我只知道含有字母abc的,like语法怎么写
select * from A where B like ‘%S%’; S不知道什么位置
15.tar在解压后,我们要习惯做一个命令看看什么对不对?
#MD5 校验
16.昨天有个小伙伴 window链接不了 MySQL服务?那我们该怎样去校验该服务呢?
#ping mysql 端口
#ping 服务端ip
#检查server 上mysql 服务状况。