首页 > 数据库 >【6】MySQL数据库

【6】MySQL数据库

时间:2024-06-16 17:59:57浏览次数:30  
标签:表中 数据库 MySQL student mysql dcs select

MySQL关系型数据库

什么是数据库?
数据库是存放数据的电子仓库。以某种方式存储百万条,上亿条数据,供多个用户访问共享。

数据库分为关系型数据库和非关系数据库
【1】关系型数据库:
1)定义:依据关系模型创建的数据库,把数据保存在不同的表中,表与表存在着某些关系。
2)举例:mysql(甲骨文公司的产品),oracle(甲骨文公司的产品收费的),postgresql,db2,sql server(微软)
3)特点:
安全
保持数据的一致性
实现对表与表进行复杂的数据查询
【2】非关系型数据库:
1)定义:非关系型数据库也叫nosql数据库,全称not only sql。通常数据以对象的形式存储在数据库中,不固定结构,例如列模型,键值对模型。
2)举例:redis(键值对模型),mongodb(文档类模型),hbase(列模型)
3)特点:
效率高
容易扩展
使用更加灵活

数据库存储形式
【1】关系型数据库
关系型数据库当中有很多张表,以表的形式进行存储(类似于xlsx格式的Excel工作簿当中有很多的sheet1,sheet2,sheet3的页面)

【2】非关系型数据库

===========================================
MySQL关系型数据库
【1】在web应用方面,Mysql是最好的关系型数据库管理系统
【2】特点:
1)体积小,安装简单,维护成本低
2)开源,免费
3)使用C++编写
4)支持多系统
【3】原理:MySQL数据库中有很多库,可以是自己定义的库student库,score库,每个库里面有很多张表

=========================================
在Linux中安装MySQL数据库
【安装】
【1】yum install mysql ==》y ==》安装客户端
【2】yum install mysql-server ==》y ==》安装服务端
【3】rpm -qa|grep -i mysql ==》查看MySQL是否安装成功

Linux中安装数据库就类似于Windows中安装APP一样

【启动】
【1】service mysqld status ==》查看MySQL数据库的状态

【2】service mysqld start / restart ==》启动 / 重启 MySQL数据库
mysqld(d代表的是daemon守护进程的意思)
【3】service mysqld stop ==》停止运行MySQL数据库

【登录进入到数据库】
【1】mysql -uroot -p ==》登录进入到MySQL数据库中(第一次登录没有密码)
-uroot(u 代表 user 用户 root 用户)
-p(password 密码)

【2】MySQL> exit ==》退出MySQL数据库

【设置密码】
mysqladmin -uroot password '123456' ==》帮root用户设置密码为123456
设置完之后的登录方式:
1)mysql -uroot -p123456
2)mysql -uroot -p ==》Enter password:(输入123456,密码不显示)

数据库当中有很多表
mysql> 进入库之后一定一定要加分号 ;
【创建库】
mysql> show databases; ==》显示MySQL中所有的数据库
mysql> create database dcs1; ==》创建dcs1这个数据库
mysql> drop database dcs1; ==》删除dcs1这个数据库
mysql> use dcs1; ==》进入dcs1这个数据库
mysql> select database(); ==》显示当前所在的数据库(dcs1)

【创建表】
mysql> show tables; ==》展示当前所在数据库(dcs1)中的表
mysql> create table dcs(id int(20) primary key,score float(20) not null,name varchar(20) not null,phone bigint(20) default 153666777); ==》创建一个dcs表的约束
create table + 表名(字段名称,数据类型,约束........)
mysql> desc dcs; ==》查看dcs表的结构(desc —> description)

==========================================
mysql数据库中的数据类型:
1)数值型:int(存储整数),bigint(超过10位整数用),float(浮点,默认保存6位,Float(20,2)指小数点后面2位)
2)文本型:varchar,char(单个字符)==》插入的数据需要加 ' ' 单引号或者 " " 双引号
3)日期型:date ==》插入的数据需要加 ' ' 单引号或者 " " 双引号

mysql数据库中的约束:
1)非空约束:not null(当前字段id对应的值在表中不能为空)
2)默认值约束:default(当前字段如果没有插入指定的值,默认为153666777)
3)主键约束:primary key 简称:key(当前id这个字段对应的值是唯一的,不能重复的,比如身份证号码不能重复)
4)外键约束:foreign key 对表与表之间的约束(前三个约束是对表和字段之间的约束)
5)自增长约束:auto_increment(作用于主键上面的)

mysql> show tables; ==》展示当前所在数据库(dcs1)中的表(dcs)

【查询数据】
mysql> select * from dcs; ==》查询dcs表中所有的数据内容
mysql> select name from student; ==》只查询student表中name列的数据内容
mysql> select id,name from student; ==》查询student表中name列和id列的数据内容

【查询并筛选数据】
mysql> select * from student where sex=1; ==》查询筛选student表中性别为1的数据内容
mysql> select * from student where sex !=1; ==》查询筛选student表中性别不为1的数据内容
mysql> select * from student where sex <>1; ==》查询筛选student表中性别不为1的数据内容

mysql> select id,name from student where sex=1; ==》查询student表中所有性别为1的id列和name列
mysql> select * from student where age between 25 and 30; ==》查询student表中所有性别为1的id列和name列
mysql> select * from student where age>=25 and age<=30; ==》查询筛选表中年龄在25和30之间

mysql> select * from student where class in(1833,1835); ==》查询student表中class只为1833和1835的数据
mysql> select * from student where sex not in(0,1); ==》查询student表中sex不为0和1的数据

mysql> select * from student where name='xiaoqi' or age=31; ==》有一个满足条件即可
mysql> select * from student where name='xiaoqi' and age=31; ==》需要同时满足条件

mysql> select * from student where class is null; ==》查询class为null的数据

mysql> select * from student limit 5; ==》查询student表的前五行
mysql> select * from student limit 2,5; ==》表示查询student表中3-7行的数据(2表示从第几行开始【默认索引位最开始为0】,5表示取几行)

===========================================
mysql> select * from student where name like'xia%'; ==》查询name列中以xia开头的数据(%表示通配符)
mysql> select * from student where name like'%an%'; ==》查询name列中有包含an的数据
mysql> select * from student where name like'%qi'; ==》查询name列中以qi结尾的数据

(升序降序排列)
mysql> select * from student order by math desc; ==》按math列降序排列整张表(desc —> descend)
mysql> select * from student order by math asc; ==》按math列升序排列整张表(asc —> ascend)

(分组:和聚合函数一起使用)
聚合函数:
sum()求和
min()求最小值
max()求最大值
distinct()去重
avg()求平均数
count()统计
mysql> select class as '班级',count(
) as '人数' from student group by class; ==》统计每个班级对应的人数(as表示取别名)

============================
mysql> select class,sum(math) from student group by class having sum(math)>100; ==》查询班级数学总成绩大于100分的班级和总成绩

【重点】group by 后面通常接having使用,不能接where
mysql> select class,sum(math) as s from student group by class having sum(math)>100; ==》as s 将sum(math)取别名
mysql> select class,sum(math) s from student group by class having sum(math)>100; ==》s 直接将sum(math)取别名

==============================
(查询聚合函数的简单到复杂顺序)
mysql> select sum(math) from student; ==》求数学成绩的总分

mysql> select sum(math) from student group by class; ==》求每个班级数学成绩的总分

mysql> select class,sum(math) from student group by class; ==》求每个班级数学成绩的总分以及所对应的班级名称

=======================================
mysql> select distinct(name) from student where sex=0; ==》筛选性别为0,在此基础上对名字进行去重

【增加数据】
mysql> insert into dcs(id,score,name,phone)values(1,88.886,'xiaowang',1384222); ==》往dcs表中插入一行数据
mysql> insert into dcs(id,score,name,phone,class)values(2,0.00,'xiaohong',153666777,1),(3,99.00,'xiaoyi',19747766688,0); ==》往dcs表中同时插入两行数据
mysql> insert into dcs values(6,99,'xiaoliu',157567777); ==》不带字段直接插入一行数据
mysql> insert into dcs values(7,86,'xiaoqi',15754277),(8,79,'xiaoba',1487666778); ==》不带字段同时插入两行数据
mysql> insert into dcs(id)values(9); ==》插入单个数据
mysql> drop table dcs; ==》删除dcs整张表(包括表数据和表结构)

【六】对表数据的操作
【增加表数据】
数据库当中所有的约束都属于表结构中的内容
数据库中分
【1】DDL:数据库定义语言
==》定义库和表的命令:create database,create table,alter table,drop table,drop database
【2】DML:数据库操作语言
==》对表中数据的操作比如:增删改查
1)增加:insert into 命令
2)删除:delete from 表名
3)修改:update 表名 set
4)查询:select ... from
mysql> alter table dcs rename duoceshi; ==》改表名(将dcs改为duoceshi)
mysql> alter table dcs change id sid int(20); ==》改为其他字段(将dcs表中的id字段改为sid)
mysql> alter table dcs change class class int(20) not null; ==》改相同字段的约束

mysql> alter table dcs add class int(20) first; ==》添加一个字段(class字段在最前面)
mysql> alter table dcs add age int(20) after name; ==》添加一个字段(age字段在name字段后面)
mysql> alter table dcs add(sex1 int(20),sex2 int(20)); ==》添加两个字段(sex1和sex2)
mysql> alter table dcs drop sex1; ==》删除一个字段(dcs1)
mysql> alter table dcs drop sex2,drop age; ==》删除两个字段(sex2和age)
mysql> alter table dcs modify class int(20) after id; ==》调整字段位置(将class字段放在id字段的后面)

对于表中的一个字段你是怎么去测试的?
思路:表字段的数据类型和约束。

【删除表数据】
null只是一个空的属性,并不是一个确切的值
对表删除的三种方式
1)drop table + 表名 ==》删除整张表(包括表数据和表结构)
2)truncate +表名 ==》只删除所有的表内容,不删除表结构
3)delete from +表名 where +条件 ==》只删除表中对应条件的内容

mysql> drop table dcs; ==》删除dcs整张表(包括表数据和表结构)
mysql> truncate dcs; ==》删除dcs表内容(只删除表内容,不删除表结构)
mysql> delete from dcs where score = '100'; ==》删除dcs表中score等于100对应的行
mysql> delete from dcs where score is null; ==》删除dcs表中name为空对应的行
mysql> delete from dcs where id >5; ==》删除dcs表中id大于5的数据

===============================================
【修改表数据】
mysql> update dcs set phone=13888888888 where score=100; ==》修改dcs表中score等于100所对应的phone为13888888888

【复制备份表数据】
mysql> create table word like dcs; ==》创建新表word数据类型像dcs(只有类型一样,数据内容为空)
mysql> insert into word select * from dcs; ==》创建新表word内容像dcs
mysql> insert into word(id,score) select id,score from dcs; ==》往新表word里插入id和score内容(此时表结构已经按照dcs创建好了)

【复制备份数据库】重开一个窗口,双击ip地址
步骤如下:
【1】右窗口[root@localhost /]# mysqldump -uroot -p123456 dcs2>/dcs/dcs2.sql ==》将dcs2数据库备份到根目录下的dcs目录中并取名为dcs2.sql
【2】左窗口mysql> drop database dcs2; ==》删除dcs2数据库
【3】左窗口mysql> create database dcs2; ==》重新创建一个dcs2的数据库
【4】右窗口[root@localhost dcs]# mysql -uroot -p123456 dcs2</dcs/dcs2.sql ==》将根目录下的dcs目录中的dcs2.sql中的数据还原到数据库中并取名为dcs2(必须先在数据库中创建一个名为dcs2的库才能进行还原)

【mysql的用户权限操作】
mysql数据库中:
localhost是具有本地访问权限的用户
%是具有远程访问权限的用户
mysql> show databases; ==》显示所有的库(其中有一个mysql库)
mysql> use mysql; ==》进入到mysql库(库中有一个user表)
mysql> select * from user; ==》查询user表中的所有内容
mysql> select host,user from user; ==》查询user表里面的host和user字段

标签:表中,数据库,MySQL,student,mysql,dcs,select
From: https://www.cnblogs.com/IThyryZZ/p/18251007

相关文章

  • MYSQL基础版总结思维导图
    1.为什么char比varchar性能好存储空间利用率:CHAR类型由于是固定长度,因此在存储时不会像VARCHAR那样需要额外的空间来存储字符串的长度信息。这意味着CHAR在存储上可以更加紧凑,减少了存储空间的碎片化,从而在读取数据时可能会更快。数据对齐:由于CHAR是固定长度的,数据库系统......
  • 2021数据库期末一
    目录第1关:数据表结构修改1任务描述答案:第2关:数据记录删除任务描述答案: 第3关:数据表结构修改2任务描述答案:第4关:数据记录修改任务描述答案:第5关:数据查询一任务描述答案:第6关:数据查询二任务描述答案:第7关:数据查询三任务描述答案:第8关:数据查询四任务描述......
  • 在Linux中,新安装mysql后怎样提升mysql的安全级别?
    在Linux环境中,新安装MySQL后提高其安全级别的步骤通常包括以下几个关键方面:更改默认root密码:安装MySQL后,第一时间更改默认的root用户密码。可以使用以下命令登录MySQL并更改密码:mysql-urootALTERUSER'root'@'localhost'IDENTIFIEDBY'your_strong_password';确保yo......
  • Linux下部署MySQL5.7.35
    1.MySQL下载(1)登录到以下网站 https://downloads.mysql.com/archives/community/(2)选择需要的版本,以及操作系统,这里是RedHatEnterpriseLinux/OracleLinux5.7.35版本。(3)Mysql安装需要5个rpm包,如下图    mysql-community-common-5.7.35-1.el7.x86_64.rpm......
  • 嵌入式数据库_1.嵌入式数据库的定义及特点和分类
    1.嵌入式数据库的定义及特点1.1定义          嵌入式数据库的名称来自其独特的运行模式。这种数据库嵌入到了应用程序进程中,消除了与客户机服务器配置相关的开销。嵌入式数据库实际上是轻量级的,在运行时,它们需要较少的内存。它们是使用精简代码编写的,对于......
  • MySQL 乐观锁
    MySQL乐观锁乐观锁认为当前的情况是最好的情况,即每次去拿数据的时候都认为别人不会修改,所以不会上锁,但是在更新的时候会判断一下在此期间别人有没有去更新这个数据droptableifexistssupply_address;--创建表CREATETABLEifnotexists`supply_address`(`id`int......
  • 《软件性能测试分析与调优实践之路》第二版-手稿节选-Mysql数据库性能定位与分析
    在做MySQL数据的性能定位前,需要先知道MySQL查询时数据库内部的执行过程。只有弄清SQL的执行过程,才能对执行过程中的每一步的性能做定位分析。如图6-2-1所示。图6-2-1从图中可以看到,当查询出数据以后,会将数据先返回给执行器,此时执行器先将结果写到查询缓存里面,这样在下次查询相......
  • 1832javaERP管理系统之车间计划管理Myeclipse开发mysql数据库servlet结构java编程计算
    一、源码特点 javaerp管理系统之车间计划管理是一套完善的web设计系统,对理解JSPjava编程开发语言有帮助采用了serlvet设计,系统具有完整的源代码和数据库,系统采用web模式,系统主要采用B/S模式开发。开发环境为TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql,使用java语言开发。......
  • OCP-043之:数据库备份操作
    1RMAN备份操作1.1基本操作基本的控制和数据文件备份RMAN>CONFIGURECONTROLFILEAUTOBACKUPFORMATFORDEVICETYPEDISKTO'/tmp/backup/cs_%F';newRMANconfigurationparameters:CONFIGURECONTROLFILEAUTOBACKUPFORMATFORDEVICETYPEDISKTO'/tmp/bac......
  • Mysql
    数据库原理与应用DDL和DML练习创建一个名为students的表,包含id(主键,自增长),name(字符串类型,长度为````````20),age(整数类型)和class(字符串类型,长度为20)。CREATETABLEstudents(idINTAUTO_INCREMENTPRIMARYKEY,nameVARCHAR(20),ageINT,classVARCHAR(20));向s......