8.MySQL链接,单表
一、数据库介绍
1、什么是数据库?
定义:数据库是存放数据的电子仓库。
2、是以某种方式存储百万条,上亿条数据,提供多个用户访问共享。
3、每个数据有一个或多个api用于创建,访问,管理和复制所保存的数据。
4、系统中很多动态数据都存储在数据库中,需要通过访问数据库才能显示;
二、数据库的类型
1、关系型数据库
定义:数据库中表与表之间存在某种关系,数据存储在不同的表中
常见的关系型数据库:
(1)db2 IBM 公司
(2)oracle oracle 公司
(3)mysql oracle公司收购 (我们学习的mysql)
(4)sql server
特点:
a、安全
b、保持数据的一致性
c、实现对表与表进行复杂的数据查询
2、非关系型数据库
定义:通常数据是以对象的形式存储在数据库中
常见的非关系性数据库:
1、hbase (列模型)
2、redis (键值对存储)
3、mongodb (文档类型)
特点:
a、效率高
b、容易扩展
c、使用更加灵活
=========================
三、mysql介绍定
1、mysql的定义
mysql是关系型数据库管理系统,我们常说的xxx数据库就是指xx数据库管理系统。
2、mysq数据库是有瑞典mysql db公司开发,目前属于oracle 公司,
3、在web应用方面(bs架构上),mysql是最好的关系型数据管理系统
4、特点:
a.体积小
b.开源,免费
c、使用c++编写
d、支持多系统
e、支持多引擎
f、msyql与其他工具组合可以搭建免费的网站系统
lamp=linux+apache+mysql+php
lnmp=linux+nginx+mysql+php
5、mysql的应用结构:
(1)单点数据库:使用于小规模应用(我们现在学的)
(2)复制:适用于中小规模的应用
(3)数据库集群,适合大规模的应用
比如:mgr集群,三主三从,一主三从;
6、数据库中术语:
(1)数据库
(2)数据表
(3)列
(4)行
(5)值
(6)字段名
(7)字符类型
(8)冗余
(9)主键
(10)外键
(11)视图
(12)索引
(13)单表
(14)多表
(15)存储
数据库之搭建
1、rpm -qa|grep 服务名称
案例:rpm -qa|grep mysql
2、将所有msyql的包删除干净
删除方法:
(1)yum remove mysql * 删除linux中的数据库
(2)yum erase 包名 ,删除linux中的数据库
(3)rpm -e --nodeps 包名 删除linux中的数据库
(3)mysql的安装
a.安装客户端
yum install mysql
b.安装服务端
yum install mysql-server
安装好以后,查看有三个mysql安装包
rpm -qa|grep mysql
(4)启动mysql
service mysqld start 开启数据库(我们使用数据要保持数据库开启)
service mysqld status 查看数据库的状态
service mysqld stop 关闭数据库
service mysqld restart 重启数据库
(5)mysqladmin -u root password '123456' 设置数据库密码
(6)进入数据库操作界面
mysql -u root -p 敲回车 输入密码
(7)show databases 显示所有的数据库
(8)授权
grant all privileges on . to root@'%' identified by "123456";
grant 授
all privileges 所有的权限
on
-
第一个星表示所有库
-
第二型表示所有的表
to
root 用户
@
% 表示所有用户
identified by 设置密码
(9)刷新权限
flush privileges;
(10)create database 数据库名
案例:
create database hz017;
(11)show databases ;查看所有的数据库
(12)use 库名
案例:use hz017
(13)退出:
ctrl+z,或ctrl+c或qiut
====================================
linux:
linux操作界面
mysql:数据库操作界面
一、进入数据库操作界面
1、mysql -u root -p 敲回车 ,输入密码 ,进入数据库操作界面
2、show databases 查看所有的数据(如果没有数据库:创建数据库 create database 库名称)
3、use 数据库名 使用数据库
4、show tables 显示库中的所有表
5、建表语句(在建表时的语句后面添加:DEFAULT charset=utf8;,可在数据中输入中文字符)
格式: create table 表名(字段名1 字符类型(字符长度),字段名2 字符类型(字符长度));
案例:create table aa(id int(10),name varchar(20));
6、查看表结构:
desc 表名
案例:
7、在navicat 中=点击库名点击查询新建查询===在新建查询中输入sql语句
8、插入数据:
(1)插入方式一:
格式:INSERT INTO 表名 VALUES(值1,值2);
案例:INSERT INTO aa VALUES(1,"aa");
(2)插入方式二:(插入部分字段)
格式:INSERT into 表名(字段名) VALUES(字段值)
案例:INSERT into aa(id) VALUES("4")
(3)插入的中文字符变成?号
解决方案:
在建表时的语句后面添加:
DEFAULT charset=utf8;
案例:create table cc(cid int(5),cname char(20))DEFAULT charset=utf8;
9、删除表格
drop table 表名
案例:drop table yy ;
==============================
二、数据类型
1、数值类型
int 存储类型(整数)
float 浮点数(带小数点)
2、字符类型(输入数据时加入引号'')
char
varchar
3、时间类型
date
time
datetime
year
注意字符的长度:
int(20)
varchar(20)
======================================
约束:
约束用于对表中字段进行限制,保证表中数据的正确性和唯一性
1、primary key 主键约束
非空,唯一,用于唯一标识的记录,类似身份证。
一个表中只用一个主键
2、not null 非空约束
3、 unique 唯一索引
保证字段值具有唯一性,并且能为空,一个表中可以有多个唯一索引
4、default 默认值约束
定义:默认给字段指定默认值
5、auto_increment 自增长约束(一般都是和主键同时使用)
作用:在整数类型,字段默认值从1开始自增
(1)一般和主键约束一起使用,主要针对id
(2)每插入一条数据,就是在字段上自动+1,
=========================================
1、新建表
表结构的操作:
2、add 添加字段
格式:ALTER TABLE 表名 add 字段名 字符类型(字符长度);
案例:ALTER TABLE student2 add dcs int(20);
3、change 修改字段
格式:ALTER TABLE 表名 change 旧字段名 新字段名 字符类型(字符长度);
案例:ALTER table student2 change dcs hzdcs int(19);
4、 drop 删除字段
格式:ALTER table 表名 drop 字段名 ;
案例:ALTER table student2 drop hzdcs ;
5、rename 修改表名
6、modify after 字段的调换
格式:ALTER table 表格 MODIFY 变动的字段 字段类型(字段长度) after 指定字段 ;
案例:ALTER table hz MODIFY math int(10) after id ;
7、first 添加字段到第一位
格式:alter table 表名 add 表字段 字符类型(字符长度) first ;
案例:alter table hz add no int(20) first ;
=========================================
数据库汇中:增、删、改、查
一、查询语句:
(1)查询一个表中的所有数据
格式:select * from 表名 ; * 表示所有的字段
案例:select * from hz ;
(2)查询部分字段(多个字段用,分割)
格式:select 字段1,字段2 from hz ;
案例:select id,name from hz ;
(3)查询字段可以通过as 取别名
格式:
案例1( as写,):
select id as " 编号",name as "姓名" from hz ;
案例2(可以省略 as不写):
select id " 编号",name "姓名" from hz ;
(4)指定条件查询内容:
where +条件
条件1:
比较运算:>,<,=,!=,<>,>=,<=
条件2:
and ,or ,between ....and ,in , is not null
案例1:= 等于
select id ,name from hz where id=1;
案例2:> 大于
select id ,name from hz where id>1;
案例3:<小于
select id ,name from hz where id<2;
案例4:<=小于等于
select id ,name from hz where id<=2;
(5)
案例5:>=大于等于
select id ,name from hz where id>=2;
(6)!=不等于
案例6:select id ,name from hz where id != 2;
(7)<>不等于
select id ,name from hz where id <> 2;
================================
(8)and 同时满足条件
案例8; and 是同时满足多个条件
select id ,name,math from hz where id > 2 and math>90;
(9)or 只要满足其中一个条件 就显示
select id ,name,math from hz where id > 6 or math>90;
(10)between 。。。and 在什么范围之间
案例:select * from hz where id BETWEEN 3 and 6 ;
备注:包含了本身,
(11)in 在一组数据中选择(在数据汇总匹配)
案例:select * from hz where id in (1,3,8)
(12)not in 不在一组数据中选
案例:select * from hz where id NOT in (1,3,8)
(13)is null 为空的数据
select * from hz where class is null;
(14)is not null 不为空的数据
select * from hz where class is not null;
==========================================
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!