MySQL的基本使用

本文介绍了数据库的基本概念,包括数据存储的进化、数据库的定义,重点讲述了关系数据库管理系统(RDBMS)的重要性。特别提到了MySQL,它的特性、安装过程以及数据完整性方面的内容,如数据类型和约束。此外,还涵盖了数据库和数据表的操作,如增删改查等基本操作。
摘要由CSDN通过智能技术生成

在这里插入图片描述

一、数据库简介

1、数据存储

传统记录数据的缺点:
①不易保存②备份困难③查找不便
现代化手段:
①文件:使用简单、但对于较大数据不太方便、性能差、不易扩展
②数据库:持久化存储、读写速度极高、保证数据的有效性、对程序支持性非常好、容易扩展。

2、数据库

数据库就是一种特殊的文件,其中存储着需要的数据。数据库是“按照数据结构来组织、存储和管理数据的仓库”。是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。
在数据库中列被称为字段,行被称为记录,如果能够唯一标记某个字段:那么这就是主键。
若一个数据库里面的n张表之间相互存在关联,那么这个数据库就是关系型数据库,如MySQL数据库。

3、RDBMS

RDBMS全称Relational Database Management Systenm,中文译为“关系数据库管理系统”,它是 SQL 语言以及所有现代数据库系统(例如 SQL Server、DB2、Oracle、MySQL 和 Microsoft Access)的基础。
当前主要使用两种类型的数据库:关系型数据库、非关系型数据库。所谓的关系型数据库RDBMS,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。
关系型数据库的主要产品:

oracle:在以前的大型项目中使用,银行、电信等项目。
mysql:web时代使用最广泛的关系型数据库
ms sql server:在微软的项目中使用
sqlite:轻量级数据库,主要应用在移动平台

4、MySQL简介

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,后来被Sun公司收购,后来Sun又被Oracle公司收购,目前隶属于Oracle旗下产品。
特点:
·使用c和c++编写,并使用了多种编译器进行调试,保证代码的可移植性
·支持多种操作系统
·为多种变成提供了API
·支持多线程,充分利用CPU资源
·优化的SQL查询算法,有效地提高查询速度
·提供多语言支持,常见的编码如GB2312\BIG5\UTF-8
·提供多种数据库连接途径
·提供用于管理、检查、优化数据库操作的管理工具
·大型数据库,可以处理拥有上千万条记录的大型数据库
·支持多种存储引擎
·MySQL如那件采用双授权政策,它分为社区版与商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MySQL作为网站数据库
·MySQL使用标准的SQL数据语言形式
·MySQL是可以定制的,采取了GPL协议,你可以修改源码来开发自己的MySQL系统
·在线DDL更改功能
·复制全局事务标识
·复制无崩溃从机
·复制多线程从机

5、MySQL数据库的安装

服务器安装

安装服务器端:Ubuntu在终端中输入如下命令,回车后,然后按照提示输入

sudo apt-get install mysql-server

当前使用的ubuntu镜像中已经安装好了MySQL服务端,无需再安装。服务器用于接收客户端的请求、执行SQL语句、管理数据库。服务器端一般以服务方式管理,名称为MySQL。

# 启动服务
sudo service mysql start
# 查看进程中是否存在MySQL服务
ps ajx|grep mysql
# 停止服务
sudo server mysql stop
# 重启服务
sudo service mysql restart

配置

配置文件目录为:

/etc/mysql/mysql.cnf

具体配置自行百度

6、数据完整性(类型、约束 )

一个数据库就是一个完整的业务单元,可以包含多张表,数据被存储在表中。在表中为了更加准确的存储数据,保证数据的正确有效,可以在建表的时候,为表添加一些强制性的验证,包括数据字段的类型、约束。

数据类型

可以通过查看帮助文档查阅所有支持的数据类型。使用数据类型的原则:
够用就行,尽量使用取值范围小的,而不用大的,这样可以更多的节省存储空间。
常见的数据类型如下
①整数:int,bit
②小数:decimal
③字符串:varchar,char
④日期时间:date,time,datetime
⑤枚举类型(enum)
:对于图片、音频、视频等文件,不存储在数据库中,而是上传到某个服务器上,然后在表中存储这个文件的存储路径即可。

约束

主键primary key:物理上存储的顺序
非空not null:此字段不允许为空
唯一unique:此字段的值不允许重复
默认default:当不填写此值时会使用默认值,如果填写时以填写值为准
外值foreign key:对关系字段进行约束,当为关系字段填写值时,会到关联的表中查询此值是否存在,如果存在,则填写成功,如果不存在则填写失败抛出异常

7、数据库的操作

-- 连接数据库
mysql -u用户名 -p密码

-- 退出数据库
quit/exit/ctil+d

-- sql语句不区分大小写,以分号;结束
-- 查看所有数据库
show databases;

-- 显示时间
select now()
-- 查看数据库版本
select version();

-- 创建数据库
-- create database 数据库名 charset=utf8;
create database jhh; 
--创建数据库时如果不指定编码方式,默认的编码方式是拉丁文,如果想要改成中文,就在创建时加上charset=utf8
create database jhh charset=utf8;

-- 查看创建数据库的语句
-- show create database ……
show create database jhh; 

-- 删除数据库
-- drop database 数据库名;
drop database jhh; 

-- 查看当前使用的数据库
select database();
-- 使用指定数据库
use jhh;

8、数据表操作

创建数据表之前先通过use进入一个数据库,用show查看想要创建的表是否已经存在。
show tables;

-- 创建数据表
-- create table 数据表名字(
字段 类型 约束, 
字段 类型 约束);
-- 创建一个students表(id、name、age、high、gender、cls_id)
create table students(
	id int unsigned primary key not null auto_increment,
	name varchar(30),
	age tinyint unsigned,
	high decimal(5,2),
	gender enum("男","女","中性","保密") default "保密",
	cla_id int unsigned
	)

-- 查看数据表结构
desc students

-- 查看数据表的创建语句
show ceate table 表名;

9、数据的增删改查

同样,在对数据表增删改查之前先通过use进入一个数据库。
修改表结构:
对字段的增删改:

-- 添加字段
-- alter table 表名 add 字段名 类型;
alter table students add birthday datatime;

-- 修改字段数据类型、约束
-- alter table 表名 modify 字段名 类型及约束;
alter table students modify birthday tata;

-- 修改字段名
-- alter table 表明 change 原名 新名 类型及约束;
alter table students change birthday birth data;

-- 删除字段
--alter table 表名 drop 字段名;
alter table students drop high;

--删除表
--drop table 数据表;
drop table students;

增删改查:
增加:

全列插入
--insert into 表名 values(......)
--主键字段可以用0、null、default来占位
如:向classes表中插入一个班级
insert into classes values (0, "菜鸟班")
如:向studdents表插入一个学生的信息
insert into students values(0,"小李飞刀",20,“女”,1,“2000.1.1”)
注:枚举中的下标从1开始,在插入数据时可用下标代替。

部分插入
--insert into 表名(列名1,列名2....) values(值1,值2....)
insert into students (name,gender) values ("孙悟空",1);

多行插入
insert into students (name,gender) values ("猪八戒",1),("沙和尚",1);

修改:

--update 表名 set 列名1=值1,列名2=值2... where 条件;
update students set gender=1,age=9 where id=3;

删除:

物理删除:
--delete from 表名 where 条件
delete from students;
delete from students where name="沙和尚";
逻辑删除:
--用一个字段来表示这个信息是否已经不能再使用了
--给students表添加一个is_delete字段 bit 类型
alter table students add is_delete bit default 0;

查询:

--查询所有列
select * from 表名;
select * from students

--指定条件查询
select * from students where name="孙悟空";

--指定列查询
select 列名1,列名2... from 表名;
select name,gender from students;

--可以使用as为列或表指定别名
--select 字段名 as 别名, 字段名 as 别名 from 数据表 where ....;
select name as 姓名, gender as 性别 from students;

--字段的顺序
select id as 编号, gender as 性别, name as 姓名 from students;

关于其他查询我会在下一篇文章中发布.

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值