day56-2 MySQL数据库的基本使用

news/2024/7/19 12:29:57 标签: 运维, 操作系统, 爬虫

目录

  • 数据库基本概念
    • 数据库是什么
    • 为什么要使用数据库
    • 数据库的分类:
    • 数据库重要概念
  • 数据库的基本使用
    • 登录数据库
    • MySQL5.6管理员密码的设置
    • 初步使用
      • 库的操作
      • 表的操作
      • 字段的操作

数据库基本概念

数据库是什么

存储数据的仓库

  1. 列表,字典...等等 都是内存中的,
    • 缺点:断电丢失
    • 优点:速度快
  2. 文件储存
    • 缺点:速度慢
    • 优点:可以实现永久保存

==数据库的本质就是一套基于CS结构的 客户端和服务器程序,最终的数据存储在服务端的磁盘中==

为什么要使用数据库

直接使用文件存储带来的问题

  1. 速度慢
  2. 我们的程序将来可能会分布在不同的机器上,

单台机器的性能肯定有上限,如果一台机器不能够满足,你可以用多个机器共同完成任务

分布式: 每个服务器提供不同的服务,有时候某个业务流程可能会涉及到多个服务器,降低耦合

  • 优点:耦合度低,易维护
  • 缺点:通讯繁琐,容灾性没有集群好

集群:所有服务器提供的服务是一模一样的

  • 优点:容灾性强,易扩展,可插拔

问题:数据如果分布在不同的机器上,如果访问?

​ 通过网络访问

  1. 用户权限管理
  2. 多个客户端并发访问时,数据要保证安全

数据库的分类:

1.关系型数据库

  • 数据之间可以存在关联关系,数据库会帮我们维护这种关系
  • 通常存储介质都是磁盘
  • 常见的关系型数据库:
    • mysql:学习的重点,是目前最流行的关系型数据库,因为其免费开源,性能也不错,目前已被oracle收购,更是适用于中小型企业
    • sqlserver:由微软推出,但是由于其只能运行在windows平台所以发展不怎么样
    • oracle(sun):目前最强大的关系型数据库,主要是在集群和用户管理上,非常适合大型企业,本身的体量也很大。
    • db2:IBM的产品,主要面向企业级用户,不差钱的用户,捆绑硬件销售

2.非关系型数据库

  • 没有能力帮我们维护数据之间的关系
  • 通常存储介质都是内存
  • 常见的非关系型数据库
    • mongoDB(爬虫学)
    • redis(路飞学城学)
    • memcache(不学)

数据库重要概念

数据(Column):文件中的某个字符串

记录(Row):文件中的某一行

表(Table):某个文件

库(DataBase):文件夹

DBMS:数据库管理系统(指的就是数据库软件)

数据库服务器:运行DBMS的计算机

数据库的基本使用

登录数据库

cmd中输入mysql -uroot -p再输入密码即可

常见的参数:

  • -h 主机名称,如果是本机,可以忽略
  • -P 指定端口 默认是3306 可以不写
  • -u 指定用户名
  • -p 指定密码(尽量不用明文密码)

MySQL5.6管理员密码的设置

1.知道密码

  • 登录到mysql后执行更新语句来修改

    update mysql.user set password = password("123") where host="localhost" and user="root";

    一定要再使用

    flush privileges来进行刷新,不然不会立刻生效

  • mysqladmin小工具

    • 一个帮你管理mysql的工具
    • mysqladmin -uroot -p123 password 321

2 不知道原始密码

  • 删除权限相关的文件(不推荐)

  • 跳过授权表

    • 手动启动mysqld,指定参数

    mysqld -skip-grant-tables

    • 这样客户端登录就可以不输入密码直接进入了,进入之后再修改密码就可以了(记得重启mysqld)

初步使用

数据放在文件中,也就是表,而表必须存在于库中也就是文件夹

第一步应该创建数据库, 创建表

库的操作

  • mysql语句需要加;执行
# 切换数据库
use 数据库名称   可以不加分号

# 查看所有数据库
show databases;

# 查看数据库的详细创建信息
show create databases 数据库名称;

# 查看当前所在的库
select database();

# 创建新的数据库
create database 数据库名称;
create database 数据库名称 charset utf8
create database 数据库名称 character set utf8    # 不要用utf-8,因为-有特殊含义

# 删除数据库
drop database 数据库名称;

# 修改数据库编码,可以进入到数据库文件夹中修改db.opt
# 第一行是编码,第二行是校对规则
alter database 数据库名称 character set utf8;

# 修改数据库名称,可以直接去修改对应的文件夹名称(MAC进不去文件夹)

数据库名称的命名规范:

  1. 大小写不敏感
  2. 不要使用关键字(即使可以用) 例如:create select
  3. 不能使用纯数字
  4. 可以下划线,但没必要
  5. 具有一定的意义,看得懂

表的操作

# 创建表
create table 表名称(列名称 列的数据类型(int, text等),列名称2 类型2,...)
# 指定编码
create table 表名称(列名称 列的数据类型(int, text等),列名称2 类型2,...) charset gbk

# 查看当前库下所有表
show tables;

# 查看表结构
desc 表名称;
# 查看表的创建语句
show create table 表名称;

# 删除表
drop table 表名称;
# 清空表数据(重建表)
truncate table 表名称;

# 修改表名
rename table 旧表名 to 新表名;

# 修改编码
alter table 表名 charset 新的编码格式;

字段的操作

# 修改表结构
# 添加字段
alter table 表名 add 列名称 数据类型;
# 删除字段
alter table 表名 drop 列名称;
# 修改数据类型
alter table 表名 modify 列名称 新的数据类型;
# 修改列名
alter table 表名 change 旧的列名称 新的列名称 新的数据类型;

转载于:https://www.cnblogs.com/lucky75/p/11167460.html


http://www.niftyadmin.cn/n/1412627.html

相关文章

scala学习手记38 - 方法命名约定和for表达式

方法命名约定 之前在学习《运算符重载》一节时曾经说过一个方法命名约定:方法的第一个字符决定了方法的优先级。现在再说另一个命名约定:如果方法以冒号(:)结尾,则调用目标是运算符后面的实例。 比如下面这个例子&…

预防按钮的多次点击【恶意刷新】

今日在CSDN论坛上评论到这样的标题时,想到了该怎么解决预防"提交"按钮的多次点击的问题【prevent multiple clicks of a submit button in ASP.NET】,如果要是记录到数据库那不是很好的办法,该怎么办呢?想来想去我以前做…

适合程序员的简历模板

转载自:https://blog.csdn.net/wem603947175/article/details/82083717 这个链接里序号是8,23,34,37的,这几个都挺适合程序员。 链接:https://pan.baidu.com/s/1o8rCjwA#list/path%2F 密码:5dky 需要其他的可以点击下面的链接 h…

strom的使用01

1.strom的安装和测试 1.1 搭建zookeeper集群 参考hadoop2.0初识1.3中的1.4配置zookeeper集群和自动故障转移 1.2 安装storm依赖的软件 sudo yum install gcc-c sudo yum install uuid-devel sudo yum install libuuid-devel sudo yum install libtool sudo yum install git 1.2…

asp.net2.0导出pdf文件完美解决方案

PDF简介:PDF (Portable Document Format)文件格式是Adobe公司开发的电子文件格式。这种文件格式与操作系统平台无关,也就是说,PDF文件不管是在Windows,Unix还 是在苹果公司的Mac OS操作系统中都是通用的。这…

\r,\n,\r\n的区别

代码: 1: string s1 "已经习惯了回车和换行一次搞定\n,敲一个回车键,即是回"; 2: 3: Console.WriteLine(s1); 4: s1 "已经习惯了回车和换行一次搞定\r,敲一个回车键&…

模拟退火算法与遗传算法介绍

周志华教授《机器学习》书神经网络一章曾提到如何避免达到局部极小而得到全局最小是机器学习的一个难点。在这里他提到了如下四种解决方式: 1、以不同参数初始化网络进行训练 2、使用模拟退火算法 3、使用随机梯度下降(在计算梯度时引入随机因素&#x…

控制窗口的大小800×600,居中于屏幕

QUOTE:怎么样才能把本窗口中的所有按纽&#xff0c;地址栏&#xff0c;壮态栏等隐藏&#xff1f;还有就是控制窗口的大小800600&#xff0c;居中于屏幕。这些都是在页面加载是完成哦&#xff0c;怎么做呢&#xff1f;我只能这样做到<SCRIPT LANGUAGE"JavaScript"&…