Linux mysql学习笔记
此文是我从网上学习MySQL做的亲手笔记,希望能给大家提供帮助,仅供参考!
一、安装MySQL
1、源代码安装
wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm rpm -ivh mysql-community-release-el7-5.noarch.rpm yum update yum install mysql-server
2、权限设置:
chown mysql:mysql -R /var/lib/mysql
3、初始化 MySQL:
mysqld ----user=mysql --initialize
4、启动 MySQL:
systemctl start mysqld
二、修改mysql密码
1、yum install mysql mysql-admin
2、创建mysql密码
mysqladmin -uroot password cityhosue
3、修改mysql密码
mysqladmin -uroot -pcityhouse password cityhouse1
4、进入命令行修改
SET PASSWORD FOR '用户名'@'主机' = PASSWORD(‘密码');
set password for root@localhost = password('cityre');
三、数据库操作学习
1、创建数据库
create database cityhouse;
drop database cityhouse;
2、导出数据库
mysqldump -uroot -pcityre --events mysql > 2.sql
3、导入数据库
mysql -uroot -pcityre mysql < 2.sql
4、进入数据库
use mysql;
5、查看数据表
show tables;
6、创建数据表
create table (表名)(列名 列数据类型,列名 列数据类型,····················);
create table city(xin int,qing date,dao text);
7、查看建表数据
show create table city;
8、插入数据
insert into city (xin,qing,dao) values (2018,'2018-04-21',"xinkaishi");
注意:如果数据是字符型,必须使用单引号或者双引号,如:"value"。
9、插入某一列一个数据
insert into city (qing) values ('2021-09-30');
10、插入表列
alter table (表名) add (列名) (数据类型);
alter table city add xi text;
11、更改第4列第1行的数据
update city set xi="cityhouse" where xin=2018;
12、删除表数据
delete from city where xin=2018;
13、利用order进行排序
select * from city order by xin;
14、统计排序的个数
select *, count(*) from city order by xin;
15、使用 GROUP BY 语句 将数据表按名字进行分组,
select * from city group by qing;
16、并统计每个人有多少条记录:
select *, count(*) from city group by qing;
17、查看表help_category的表数据
select * from help_category;
18、查看表help_category表help_category_id和表name两列数据
select help_category_id,name from help_category;
19、查看表parent_category_id数据是4的数据信息,大于0小于8
select parent_category_id from help_category where parent_category_id > 0 and
parent_category_id < 8;
select * from help_category where parent_category_id < 8 and parent_category_id > 0;
20、查看表parent_category数据不为4和21的数据信息
select * from help_category where parent_category_id != 4 and parent_category_id != 21;
21、查看表parent_category数据不为4和21,name为MBR的数据信息,字符串需要加引号
select * from help_category where parent_category_id != 4 and parent_category_id != 21 and name = “MBR”;
22、筛选表partent_category表中带Data的字符串
select * from help_catagory where name like '%Data%';
23、筛选表partent_category表中 不带 Data的字符串
select * from help_catagory where name not like '%Data%';
24、查看不在一个连续范围内的数据信息
select * from help_category where parent_category_id in (8,21);
25、查看在一个连续范围内的数据信息
select * from help_category where parent_category_id between 8 and 21;
26、查看表数值最大值和最小值
select max(parent_category_id) from help_category;
select min(parent_category_id) from help_category;
27、计算表的数值总和
select sum(parent_category_id) from help_category;
28、计算表的数值平均值
select avg(parent_category_id) from help_category;
29、MySQL 事务
begin·····commit,防止意外保存错误的数据
30、查看mysql表的详细参数
show columns from city;
31、更改mysql表数据类型
alter table 表明 change 列明 列明 数据类型;
alter table city change xin xin int(100);
32、清空mysql表中某一列中的数据
update 表明 set 列明=''(两个单引号);
update city set xi='';
33、删除mysql表中某列
alter table 表明 drop column 列明;
alter table city drop xi;
34、删除mysql表中某一行
delete from 表明 where 列明=字段;
delete from city where qing='2021-09-30';
35、mysql对通过文件导入导出作了限制,默认不允许
查看配置,执行mysql命令
show variables like "secure_file_priv"
导出表数据
select * from city into outfile '/var/lib/mysql-files/city.txt';
导入数据表
load data local infile '/var/lib/mysql-files/city.txt' into table city;
3、 mysql>describe user; 显示表mysql数据库中user表的列信息);
四、分享在牛网做的习题
示例一
1、题目:现在你需要查看2个用户明细设备ID数据,并将列名改为 'user_infors_example',,请你从用户信息表取出相应结果。
select device_id as user_infos_example from user_profile limit 0,2
2、题目:现在运营想要筛选出所有北京大学的学生进行用户调研,请你从用户信息表中取出满足条件的数据,结果返回设备id和学校。
select device_id,university from user_profile where university='北京大学'
3、题目:现在运营想要针对20岁及以上且23岁及以下的用户开展分析,请你取出满足条件的用户明细数据。
select device_id,gender,age from user_profile where age>=20 and age<=23
4、题目:现在运营想要查看除复旦大学以外的所有用户明细,请你取出相应数据
select device_id,gender,age,university from user_profile where university!='复旦大学'
select device_id,gender,age,university from user_profile where university not in ('复旦大学')
5、题目:现在运营想要对用户的年龄分布开展分析,在分析时想要剔除没有获取到年龄的用户,请你取出所有年龄值不为空的用户明细数据。
select device_id,gender,age,university from user_profile where age is not null
select device_id,gender,age,university from user_profile where age!=''
示例二
6、题目:现在运营想要找到男性且GPA在3.5以上的用户进行调研,请你取出相关数据。
select device_id,gender,age,university,gpa from user_profile where gender='male' and gpa>3.5
7、题目:现在运营想要找到gpa在3.5以上的山东大学用户 或 gpa在3.8以上的复旦大学同学进行用户调研,请你取出相应数据
select device_id,gender,age,university,gpa from user_profile
where (university='山东大学' and gpa>3.5) or (university='复旦大学' and gpa>3.8)
8、题目:现在运营想查看所有大学中带有北京的用户的信息,请你取出相应数据。
select device_id,age,university from user_profile where university like '北京%'
9、题目:现在运营想要看一下男性用户有多少人以及他们的平均gpa是多少,用以辅助设计相关活动,请你取出相应数据。
select count(gender) as male_num,round(avg(gpa), 1) as avg_gpa from user_profile where gender='male'
示例三
10、题目:现在运营想查看每个学校用户的平均发贴和回帖情况,寻找低活跃度学校进行重点运营,请取出平均发贴数低于5的学校或平均回帖数小于20的学校。
select university,avg(question_cnt) as avg_question_cnt,avg(answer_cnt) as avg_answer_cnt from user_profile group by university having avg_question_cnt<5 or avg_answer_cnt<20
更多推荐
所有评论(0)