欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Mysql 基础知识总结

程序员文章站 2022-09-03 19:26:40
数据库 : DB所有的数据存放的仓库每一个文件夹也是一个数据库数据库管理系统 – 软件 DBMS关系型数据库 : mysql oracle sqllite sql server db2 access非关系型数据库 : redis mongodb memcache数据库管理员 DBA管理数据库软件数据库服务器 :一台跑着一个数据库管理软件的机器表 : 文件,一张存储了数据的表数据/记录 : 表中的信息,一行就是一条记录。使用mysql --------用户相关操作查看当前用户是谁?...

数据库 : DB
所有的数据存放的仓库
每一个文件夹也是一个数据库
数据库管理系统 – 软件 DBMS
关系型数据库 : mysql oracle sqllite sql server db2 access
非关系型数据库 : redis mongodb memcache
数据库管理员 DBA
管理数据库软件
数据库服务器 :一台跑着一个数据库管理软件的机器
表 : 文件,一张存储了数据的表
数据/记录 : 表中的信息,一行就是一条记录。

使用mysql --------用户相关操作

查看当前用户是谁? select user();
给当前用户设置密码 set password = password(‘123’);
创建用户 create user ‘用户名’@‘主机的ip/主机域名’ identified by ‘密码’
授权 grant select on 数据库名.* to ‘用户名’@‘主机的ip/主机域名’ identified by ‘密码’
授权并创建用户 grant select on 数据库名.* to ‘用户名’@‘主机的ip/主机域名’
mysqld install 安装mysql服务 mysql服务就被注册到操作系统中
net start mysql 启动mysql服务
net stop mysql 关闭mysql

启动客户端连接server
mysql -uroot -p123 -h192.168.14.12(这里也可以填域名,代表这个域名也可以连接mysql)
基础的库\表\数据操作

库 - 文件夹

 创建库             **create database** 数据库名;
 切换到这个库下     use 库名
 查看所有库         show databases;

表 - 文件

 查看这个库下的所有表  show tables;
创建表                create table 表名(字段名 数据类型(长度),字段名 数据类型(长度),..);
删除表                drop table 表名;
查看表结构            desc 表名;
     describe 表名;

数据(记录) - 文件中的内容

增 : insert into 表 values (一行数据),(一行数据),(一行数据);
 删 : delete from 表 where 条件;
 改 : update 表 set 字段名=值,字段2=值2 where 条件;
 查 : select 字段 from 表;

存储引擎:-- 存储数据的方式。
常用的存储引擎 :Innodb存储引擎 mysql5.6之后的默认的存储引擎 (一般都用这个)
数据和索引存储在一起 2个文件
数据索引\表结构
好处:
数据持久化
支持事务 : 为了保证数据的完整性,将多个操作变成原子性操作 : 保持数据安全
支持行级锁 : 修改的行少的时候使用 : 修改数据频繁的操作
支持表级锁 : 批量修改多行的时候使用 : 对于大量数据的同时修改
支持外键 : 约束两张表中的关联字段不能随意的添加\删除 : 能够降低数据增删 改的出错率
Myisam存储引擎 mysql5.5之前的默认的存储引擎
数据和索引不存储在一起 3个文件
数据\索引\表结构
数据持久化
只支持表锁
Memory存储引擎
数据存储在内存中, 1个文件
# 表结构
数据断电消失
面试题(例子)

你了解mysql的存储引擎么?

你的项目用了什么存储引擎,为什么?

# innodb
# 多个用户操作的过程中对同一张表的数据同时做修改
# innodb支持行级锁,所以我们使用了这个存储引擎
# 为了适应程序未来的扩展性,扩展新功能的时候可能会用到...,涉及到要维护数据的完整性
# 项目中有一两张xx xx表,之间的外键关系是什么,一张表的修改或者删除比较频繁,怕出错所以做了外键约束

创建表的时候 数据类型

数字 : int float(7,2) --------
int 不约束长度,最多表示10位数,
float(m,n)
# m 一共多少位,
# n 小数部分多少位

例子:
create table t1(
id int, # 默认是有符号的
age tinyint unsigned # 如果需要定义无符号的使用unsigned
);

日期 : date time datetime year
date : 20190620
time :121953 ----12点19分53秒
datetime :20190620121900

# 字符串 :
    # char    定长 效率高浪费空间 255
    # 'alex'   'alex                 '  (多余字符用空格代替)
    # varchar 变长 效率低节省空间 65535

适合使用char
身份证号,手机号码, qq号,username 12-18,password 32, 银行卡号。。。
适合使用varchar
评论,朋友圈, 微博。。
# enum 和 set :
# 单选和多选
例子------
create table t8(
id int,
name char(18),
gender enum(‘male’,‘female’)
)

create table t9(
id int,
name char(18),
hobby set(‘抽烟’,‘喝酒’,‘烫头’,‘洗脚’,‘按摩’)
);
insert into t9 values (1,‘太白’,‘烫头,抽烟,喝酒,按摩’);
insert into t9 values (1,‘大壮’,‘洗脚,洗脚,洗脚,按摩,打游戏’);

约束 -----(给表做架构时可以加的约束)

# unsigned 无符号的
# not null 非空
# default  设置默认值
# unique   唯一,不能重复
    # unique(字段1,字段2,字段3) 联合唯一
 # auto_increment 自增
 只能对数字有效.自带非空约束
 至少是unique的约束之后才能使用auto_increment
    # int 必须至少unique字段,自带not null
# primary key 主键
    # not null + unique (如果不指定默认第一个非空+唯一的就是主键)
    # 一张表只能有一个主键
# foreign key 外键
Foreign key(自己的字段) references 外表(外表字段)
    # a表中有一个字段关联b表中的一个unique
    # a表中的是外键
    例子:----------
    create table t11(

id int unsigned not null,
name char(18) not null
); ------------ 无符号,非空的

create table t12(
id int unsigned not null,
name char(18) not null,
male enum(‘male’,‘female’) not null default 'male’s
); ---------只能选男或者女 ,默认不填选男

不能重复 unique 值不能重复,但是null可以写入多个
create table t13(
id1 int unique,
id2 int
)

联合唯一 unique
create table t14(
id int,
server_name char(12),
ip char(15),
port char(5),
unique(ip,port)
); -----------------ip 和端口不能都是一样的

自增
create table t20(
id int primary key auto_increment,
name char(12)
);
insert into t20(name) values(‘alex’);

外键
班级表
create table class(
cid int primary key auto_increment,
cname char(12) not null,
startd date
)
‘’’

  • 学生表
    create table stu(
    id int primary key auto_increment,
    name char(12) not null,
    gender enum(‘male’,‘female’) default ‘male’,
    class_id int,
    foreign key(class_id) references class(cid)
    )

建表

# create table 表名(
#   字段名1 类型(长度) 约束,
#   字段名1 类型(选项) 约束,
# );

本文地址:https://blog.csdn.net/weixin_48364580/article/details/108987789

相关标签: mysql 数据库