首页 > 数据库 >Linux环境下的Mysql数据库入门-基于Centos系统

Linux环境下的Mysql数据库入门-基于Centos系统

时间:2024-08-26 10:16:08浏览次数:4  
标签:Centos Linux class student Mysql test where id select

关系型数据库:
oracle ===》收钱,大型的公司
msyql ===》开源的 免费的
sql server ===>微软

非关系型数据库:
hbase ===>大数据‘
Redis
mangdb

下载mysql:
yum install mysql
yum install mysql-server
rpm -qa |grep -i mysql ===》查看数据库有没有安装好
service mysqld restart ===>重启数据库 ===>mysql后面的d代表是一个守护进程daemon
service mysqld start ====》启动数据库
service mysqld stop ===>关闭数据库

mysql -uroot -p ====》u是用户 -p 是密码
exit ===》等同于ctrl+c 退出数据库界面
mysqladmin -uroot password "123456" ===》修改数据库密码为123456

数据库sql
show databases; ====》查看所有的库
create database dcs46; ===》创建一个仓库叫做dcs46
drop database dcs46; ===》删除dcs46这个库
use dcs46; ===》进入dcs46这个库
select database(); ===》查看当前在那个库
create table test(id int(20) primary key auto_increment,score float(20,2) not null
,name varchar(10),phone bigint(20) default 15377894561,time date);
上面建表的语句解释
创建一个叫做test的表,表里面有id字段 score字段,name字段 phone字段 time字段

desc test; ===》查看表结构

mysql> desc test;
+-------+-------------+------+-----+-------------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+-------------+----------------+
| id | int(20) | NO | PRI | NULL | auto_increment |
| score | float(20,2) | NO | | NULL | |
| name | varchar(10) | YES | | NULL | |
| phone | bigint(20) | YES | | 15377894561 | |
| time | date | YES | | NULL | |
+-------+-------------+------+-----+-------------+----------------+

Field ==》字段
Type ===>数据类型
Null ===》是否可以为空
Key ===》primary key 主键
Default ===》默认值
Extra ==》额外的备注

数据库中常用的数据类型:
数值型:
int ===》整数 最大的存储值为:2147483647
bigint ====>可以存储超过2147483647这个数字
float ===》浮点型

文本型:【varchar类型和char类型存的数据需要加上双引号或单引号】
varchar ===>存字符串(不管是中文还是英文 都占2个字节 空格也是一个字符)
char ====》存字符串(英文占1个字节,中文占2两个字节 空格不算字符只能算占位符)

日期型:【日期型的数据也需要加上单引号或者双引号】
date ===>"2024-08-23"

数据库中的约束有哪些?
not null ===>非空约束
primary key ===>主键约束,里面的数据不能重复必须是唯一的
default ====>默认值约束 不填写就用默认值
auto_increment ===>自增长约束 1 ====》1+1 前面四个约束是对表数据的约束
foreign key ===>外键约束 对表和表之间的约束

对表结构的操作:alter table +表名
show tables; ===》查看当前库下有哪些表
alter table test1 rename dcs111; ===》将test1这个表的名字改为dcs111
alter table test change id sid int(10); ===>将test表中的id字段改为sid 并去掉自增长
alter table test change sid id int(10) auto_increment; ===>将test表中的sid字段改为id 并加上自增长
alter table test add class int(10); ===》加上一个class字段(默认放在最后面)
alter table test add sex int(10) first; =》加上一个sex字段放在最前面
alter table test add sex1 int(10) after id;
=》添加一个sex1字段放在id字段后面
alter table test modify class int(10) after id; ==》将已经存在的class字段移动到id字段后面
alter table test add(age1 int(10),age2 int(10)); ==》同时添加两个字段
alter table test drop sex1,drop age1,drop age2; ===》删除字段
drop table test; ==》删除test表

插入数据:
insert into 表
insert into test(id,score,name,phone,time)values(1,88.88,"zhangsan",17326056700,"2024-08-24");
insert into test values(2,98.02,"lisi",17326056800,'2024-08-25'); =》第二种插入数据的方式
insert into test(id,score,name,phone,time)values(3,78.00,"zhaoliu",17326056900,"2024-08-23"),(4,66.66,'xiaozhou',17326056400,"2024-01-02");
===》批量插入数据
insert into test(score,name,time)values(88.88,"zhangsan","2024-08-24"); ===》给指定字段插入数据

0不等于null ,null指的是一个空的属性,0代表的是一个值
面试题:给你一张表里面的一个字段怎么测试?
数据类型
约束类型
存储值的边界值

删除:delete from +表名
delete from test; ===》删除表中数据
delete from test where id=10; ==》删除指定数据,删除id为10的这条数据
truncate test; ====》快速删除表中数据
drop table test ===》删除test这张表

truncate,delete from,drop的区别
truncate:快速删除表中所有的数据,适用于删除大量的数据
delete from ===》根据条件删除数据,如果不接where会删除表中所有的数据,但是执行的速度没有truncate快
drop ====>删除表和表结构

修改表中数据:update
update student set math=81 where id=10; ===》修改id字段为10 的这个人的分数为81

查的sql:
1.不等于
select * from student where id<>2; ===>查询id不等于2的所有信息
select * from student where id!=2; ===>查询id不等于2的所有信息
2.同时满足多个条件,至少满足一个条件
select * from student where age>24 and age<31; ===》查询年龄大于24.小于31岁的信息
select * from student where age=28 or age=27; ===》查询年龄等于28或者年龄等于27的信息
3.包含和不包含
select * from student where class in (1833,1835); ==》查询班级为1833或1835的信息
select * from student where class not in (1833,1835); ==》查询班级不是1833或1835的信息
4.在.....之间 between的值包含自身
select * from student where age between 24 and 31; ==》查询年龄在24-31之间的信息
5.为空 不为空
select * from student where class is null; ==》查询班级为空的
select * from student where class is not null; ==》查询班级不为空的
6.查询指定行数
select * from student limit 5; ===》查询前五行的内容 等同于 limit 0,5
select * from student limit 2,5; ===》查询3-7行的数据 3-1=2 7-2=5
7.模糊匹配
select * from student where name like "xi%"; ===>查询姓名以xi开头的信息
select * from student where name like "%qi"; ==》查询姓名以qi结尾的信息
select * from student where name like "%ao%";-
=》姓名中带有ao的信息
select * from student where name like "xiaoli_"; ===》_表示一个字符
8.排序
select * from student order by math; ===》order by 默认是升序排序
select * from student order by math desc; ===》desc是降序排序
select * from student order by math asc; =====》acs是升序排序

9.分组 group by +字段 ==> 分组函数 group by
select count(),class from student group by class; ====>求每个班级的人数
select count(
) as "班级",class as "人数" from student group by class; ===》给查询出来的字段取别名
select count(*) a,class b from student group by class; ===》给查询出来的字段取别名

select * from (select max(math)a from student )b where a>90;

常用的聚合函数:
count(*) 统计
sum(math) 求和
avg(math) 求平均
max(math) 求最大值
min(math) 求最小值
distinct(math) 去重

注意点:group by
1.分组函数 group by 只能和聚合函数一起使用,还有分组的字段
2.where后面可以接group by 但是group by后面不能接where
3.group by 前面加where是为了先过滤在分组,where条件中不能包含聚合函数 统计,求和.....
4.where后面接group by 是为了先过滤在分组,having是跟group by连在一起用的,放在group by的后面,此时having的作用是先分组在过滤

1.求出每个班级数学成绩大于80分的人数
select class,count(*) from student where math>80 group by class;

2.求出每个班级性别为1的数学总成绩
select class,sum(math) from student where sex=1 group by class;

3.求出每个班数学总成绩大于200的班级和成绩信息
select class,sum(math) from student group by class having sum(math)>200;

标签:Centos,Linux,class,student,Mysql,test,where,id,select
From: https://www.cnblogs.com/jasonspace/p/18380162

相关文章

  • 解读GaussDB(for MySQL)表级恢复,看线程数及分块分行策略如何提升恢复性能?
    本文分享自华为云社区《【华为云MySQL技术专栏】GaussDB(forMySQL)表级恢复中mydumper、myloader的应用与性能优化》,作者:GaussDB数据库。 背景介绍表级时间点恢复技术为“误删表”场景提供了一种快速且精确的恢复方案。通过将指定时间点的数据恢复到临时实例,再把用户所需的......
  • mysqldump的使用详解
    一、mysqldump简介mysqldump 是 MySQL 自带的逻辑备份工具。它的备份原理是通过协议连接到 MySQL 数据库,将需要备份的数据查询出来,将查询出的数据转换成对应的insert 语句,当我们需要还原这些数据时,只要执行这些 insert 语句,即可将对应的数据还原。二、备份命令2.1命......
  • Redis入门篇 - CentOS 7下载、安装Redis实操演示
    文章记录了在CentOS7上,通过源码的形式,下载安装Redis的操作过程进入要安装Redis的目录cd/usr/local下载源码压缩包wgethttps://download.redis.io/redis-stable.tar.gz#不同版本可能地址不同下载完成后,使用ll命令检查,可以看到下载的压缩包:下载完成后,解压......
  • MySQL高可用架构之MHA
    简介:MHA(Master HighAvailability)目前在MySQL高可用方面是一个相对成熟的解决方案,它由日本DeNA公司youshimaton(现就职于Facebook公司)开发,是一套优秀的作为MySQL高可用性环境下故障切换和主从提升的高可用软件。在MySQL故障切换过程中,MHA能做到在0~30秒之内自动完成数据库的故障......
  • MySQL索引类型
    一、简介MySQL目前主要有以下几种索引类型:1.普通索引2.唯一索引3.主键索引4.组合索引5.全文索引二、语句CREATETABLEtable_name[col_namedatatype][unique|fulltext][index|key][index_name](col_name[length])[asc|desc]1.unique|fulltext为可选参数,分别表示唯一索引......
  • MySQL 创建数据库用户并授权
    登录MySQL服务器:首先,你需要以具有足够权限的用户(通常是root用户)登录到MySQL服务器。mysql-uroot-p创建新用户:使用CREATEUSER语句创建新用户,并设置密码。CREATEUSER'newuser'@'localhost'IDENTIFIEDBY'password';这里newuser是新用户的用户名,password是......
  • mysql查看binlog日志
      业内目前推荐使用的是row模式,准确性高,虽然说文件大,但是现在有SSD和万兆光纤网络,这些磁盘IO和网络IO都是可以接受的。 那么,大家一定想问,为什么不推荐使用mixed模式,理由如下假设master有两条记录,而slave只有一条记录。master的数据为+----+------------------------------......
  • 600条最强 Linux 命令总结(珍藏版)
    一、基本命令uname-m显示机器的处理器架构uname-r显示正在使用的内核版本dmidecode-q显示硬件系统部件(SMBIOS/DMI)hdparm-i/dev/hda罗列一个磁盘的架构特性hdparm-tT/dev/sda在磁盘上执行测试性读取操作系统信息arch显示机器的处理器架构uname-m显示机......
  • Centos7(最小化安装)系统源代码安装mysql5.7.44版本
    官网下载mysql源代码安装包步骤(旧档案-版本下载方式)-CSDN博客下载cmake操作步骤-CSDN博客下载ncurses操作步骤-CSDN博客下载bison操作步骤-CSDN博客下载boost操作步骤-CSDN博客安装之前由于是最小化安装centos7安装一些开发环境和工具包文章使用国内阿里源cd/etc/yum.r......
  • Linux 进程 | 进程优先级&进程的环境变量
    文章目录进程概念4、进程优先级4.1基本概念4.2查看系统进程4.2.1ps-l4.2.2PRI&NI4.3用top命令更改已存在进程的nice:5、环境变量5.1常见环境变量5.2查看环境变量5.3测试PATH配置环境变量5.4代码中获取环境变量5.4代码中获取环境变量进程概念4、进程优先级4......