学习笔记day34

初识数据库

关于数据的存储

回忆我们之前的数据操作时怎么做的:

最初:就是随意的存到了一个文件里,数据的格式也是千差万别的

后来:了解了软件开发目录规范,它规定了数据存放的位置。

现在:在学过了网络编程之后我们想到应该让数据存到一个公共的地方,这样所有用户涉及到的数据都需要来这里查找。

数据库之MySQL

本质它就是一款基于网络通信的应用软件,任何基于网络通信的软件底层都是socket。

服务端

——基于socket通信

——收发消息

——SQL语句(是一个公共的标准)

客户端

——基于socket通信

——收发消息

——SQL语句

ps:MySQL不单单支持MySQL的客户端来操作,也支持其他编程语言直接操作(python、java、c++、php等,即使他们的语法都不一样,但只要通过SQL语句一样可以进行操作)

DBMS:数据库管理系统

关系型数据库

  数据与数据之间可以有关联和限制的,关系型数据库通常都是表结构,也就意味着你在用关系型数据库的时候,第一步就是确定表结构。(常用的关系型数据库有MySQL,oracle,sqlite,db2,sql server)

#字段有特定的类型
#存名字用字符串
#存密码用数字
#存生日用日期

非关系型数据库

  通常都是以k,v键值的形式,存储数据,常用的有(redis,mongodb(文档型数据库,非常接近关系型的非关系型数据库),memcache)

MySQL

MySQL其实可以把它看成一款支持原创操作文件的软件

库>>>文件夹

表>>>文件

记录>>>文件内一行行的数据叫做一条条的记录

表头:就是表格的第一行数据

字段:字段名+字段类型

安装MySQL

#基本流程(要明确在IT行业的基本守则,不要轻易尝试最新版本的软件)

#①下载
#在官网上下载,下载后是一个压缩包,包里其实将MySQL的服务端和客户端都下载了下来
#之后常规的解压和查看文件目录

#服务端是mysqld
#客户端是mysql
#启动mysql
#1.切换到bin目录下
#2.执行mysqld
#要注意:做前期MySQL配置的时候,终端建议你用管理员的身份运行
#windows+r启动的是普通用户
#mysql在初始登陆的时候 是没有密码的 直接回车即可
#mysql中的sql语句 是以分号结束的 不敲分号 默认你没有输入完客户端还会让你继续输入

制作环境变量:

  将启动文件所在的路径添加到系统的环境变量中

  注意:配置完之后一段要重新启动mysql服务端以及cmd终端

将mysqld制作成系统服务:
  制作系统服务 你的cmd终端一定要是管理员身份

  mysqld --install

配置文件:
  \s查看 mysql服务端简单配置
  通常情况下配置文件的后缀都是ini结尾

  mysql自带的配置文件不要修改
  但是你可以新建一个配置文件 my.ini
  mysql服务端在启动就会自动加载你的my.ini配置文件内的配置

  修改完配置文件之后需要先将服务端停止 重新启动 才能生效

  修改了配置文件一定要重启服务端

一些基本的语句

#客户端登陆
mysql -h 127.0.0.1 -P 3306 -uroot -p
#可以简写
mysql -uroot -p

#如果不输入用户名和密码 默认是访客模式登陆 所能用到的功能很少

#客户端退出登陆
exit;
quit;
#查看所有的数据库
show databases;

#查看某个进程
tasklist |findstr 名称

#杀死进程
taskkill /F /PID 进程号

管理员密码的操作

修改密码

#没有密码的情况下
        mysqladmin -uroot -p password 123
#有密码的情况下
        mysqladmin -uroot -p123 password 123456  # -p后面是原来的密码,password后面是新密码
#当命令输入错误的时候  可以用\c取消前面的命令  cancel

破解密码

#现将已经启动的服务端停掉

#1.跳过用户名和密码的验证功能 启动服务端 
    mysqld --skip-grant-tables
# 启动服务端 跳过授权表
#2.修改管理员用户对应的密码 
    update mysql.user set password=password(123) where user='root' and host='localhost'; 
#3.关闭当前服务端 重新以校验用户名密码的方式启动
#4.正常以用户名密码的方式 连接mysql服务端

 数据库的基本操作

库(类似于文件夹)

#
    create database db1;  # 新建一个库
#
    show databases;  # 查所有
    show create database db1;  # 查单个
#
    alter database db1 charset='gbk';  # 修改编码
#
    drop database db1;  # 删库

表(在创建表的时候,需要先指定库)

#指定库
    use 库名
#查看当前所在的库
    select database()
#
    create table userinfo(id int,name char);
#
    show tables;  # 查看某个库下面的所有表
    show create table userinfo;  # 查看某个创建的表
    desc userinfo;<==>describe userinfo;  # 获取表结构
#
    alter table userinfo modify name char(32);  # 修改某个属性
#
    drop table userinfo;

记录(先创建一个库或者制定一个已存在的库,切换到该库下,创建表,然后再操作记录)

create database db1;  # 创建库
create table userinfo(id int,name char(32),password int);  # 创建表

#
    insert into userinfo values(1,'jason',123);  # 插入单条数据
    insert into userinfo valuse(1,'jason',123),(2,'egon',123),(3,'tank',123);  # 插入多条数据
#
    select * from userinfo;  # 查询所有的字段信息
    select name from userinfo;  # 查询指定字段的信息
    select id,name from userinfo where id=1 or name=tank;  # 带有筛选条件的字段信息
#
    update userinfo set name='kevin' where id=1;  # 修改数据的一个字段信息
    update userinfo set name='jason',password=666 where id=1;  # 修改数据的多个字段
#
    delete from userinfo where id=1;  # 指定删符合条件的数据    
    delete from userinfo;  # 将表中的数据全部删除                   
    

猜你喜欢

转载自www.cnblogs.com/wangnanfei/p/11366063.html