zoukankan      html  css  js  c++  java
  • MySql -安装&基本sql语句

    主要内容:

    • 1.数据库概述
    • 2.MySql 的安装和管理
    • 3.基本的mysql语句

    1.数据库概述

    (1)数据的定义(Data)

    • 描述事物的符号记录称为数据
    • 描述事物的符号既可以是数字,也可以是文字、图片,图像、声音、语言等,数据由多种表现形式,它们都可以经过数字化后存入计算机
    • 在计算机中描述一个事物,就需要抽取这一事物的典型特征,组成一条记录,就相当于文件里的一行内容

    另外:

       单纯的单纯的一条记录并没有任何意义,如果我们按逗号作为分隔,依次定义各个字段的意思,相当于定义表的标题

    id name gender eduction
    1 eheheh male 高中

    (2)数据库的定义 (DataBase,简称DB)

    • 数据库即存放数据的仓库,只不过这个仓库是在计算机存储设备上,而且数据是按一定的格式存放的
    • 过去人们将数据存放在文件柜里,现在数据量庞大,已经不再适用
    • 数据库是长期存放在计算机内、有组织、可共享的数据集合
    • 数据库中的数据按一定的数据模型组织、描述和储存,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种 用户共享

    (3)数据管理系统(DataBase Management System)

    • 在了解了Data与DB的概念后,如何科学地组织和存储数据,如何高效获取和维护数据成了关键
    • 这就用到了一个系统软件---数据库管理系统
    • 如MySQL、Oracle、SQLite、Access、MS SQL Server
    • mysql主要用于大型门户,例如搜狗、新浪等,它主要的优势就是开放源代码,因为开放源代码这个数据库是免费的,他现在是甲骨文公司的产品。
    • oracle主要用于银行、铁路、飞机场等。该数据库功能强大,软件费用高。也是甲骨文公司的产品。
    • sql server是微软公司的产品,主要应用于大中型企业,如联想、方正等

    (4)数据库服务器,数据管理系统,数据库,表与记录的关系(重点理解)

    • 记录:1 xxx 324245234 22(多个字段的信息组成一条记录,即文件中的一行内容)
    • :student,scholl,class_list(即文件)
    • 数据库:oldboy_stu(即文件夹)
    • 数据库管理系统:如mysql(是一个软件)
    • 数据库服务器:一台计算机(对内存要求比较高)

    (5)小结

    • 数据库服务器:运行数据库管理软件
    • 数据库管理软件:管理数据库
    • 数据库:即文件夹,用来组织文件/表
    • 表:即文件,用来存放多行内容/多条记录

    2.MySql 的安装和管理

    2.1MySql 的安装

    (1)MySql 的介绍(mysql就是一个基于socket编写的C/S架构的软件)

    MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下公司。MySQL 最流行的关系型数据库管理系统,在 WEB 应用方面MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。

    MySQL是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

    • Mysql是开源的,所以你不需要支付额外的费用。
    • Mysql支持大型的数据库。可以处理拥有上千万条记录的大型数据库。
    • MySQL使用标准的SQL数据语言形式。
    • Mysql可以允许于多个系统上,并且支持多种语言。这些编程语言包括C、C++、Python、Java、Perl、PHP、Eiffel、Ruby和Tcl等。
    • Mysql对PHP有很好的支持,PHP是目前最流行的Web开发语言。
    • MySQL支持大型数据库,支持5000万条记录的数据仓库,32位系统表文件最大可支持4GB,64位系统支持最大的表文件为8TB。
    • Mysql是可以定制的,采用了GPL协议,你可以修改源码来开发自己的Mysql系统。

    由于其社区版的性能卓越,搭配Apache和PHP以及python 可组成良好的开发环境。

    (2)应用环境

    与其他的大型数据库例如 OracleDB2SQL Server等相比,MySQL自有它的不足之处,但是这丝毫也没有减少它受欢迎的程度。对于一般的个人使用者和中小型企业来说,MySQL提供的功能已经绰绰有余,而且由于 MySQL是开放源码软件,因此可以大大降低总体拥有成本。

    由于这四个软件都是免费或开放源码软件(FLOSS),因此使用这种方式不用花一分钱(除开人工成本)就可以建立起一个稳定、免费的网站系统,被业界称为“LAMP“或“LNMP”组合。
     
    (3)数据库管理软件的分类
    分两大类:
      关系型:如sqllite,db2,oracle,access,sql server,MySQL,注意:sql语句通用
      非关系型:mongodb,redis,memcache
    
    总结两句话:
        关系型数据库需要有表结构
        非关系型数据库是key-value存储的,没有表结构
    
    
    所以,现在我们使用关系型数据库管理系统(RDBMS)来存储和管理的大数据量。所谓的关系型数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。
    RDBMS即关系数据库管理系统(Relational Database Management System)的特点:
    
    
    1.数据以表格的形式出现
    
    
    2.每行为各种记录名称
    
    
    3.每列为记录名称所对应的数据域
    
    
    4.许多的行和列组成一张表单
    
    
    5.若干的表单组成database
    
    
    RDBMS 术语
    在我们开始学习MySQL 数据库前,让我们先了解下RDBMS的一些术语:
    
    
    数据库: 数据库是一些关联表的集合。.
    
    
    数据表: 表是数据的矩阵。在一个数据库中的表看起来像一个简单的电子表格。
    
    
    列: 一列(数据元素) 包含了相同的数据, 例如邮政编码的数据。
    
    
    行:一行(=元组,或记录)是一组相关的数据,例如一条用户订阅的数据。
    
    
    冗余:存储两倍数据,冗余降低了性能,但提高了数据的安全性。
    
    
    主键:主键是唯一的。一个数据表中只能包含一个主键。你可以使用主键来查询数据。
    
    
    外键:外键用于关联两个表。
    
    
    复合键:复合键(组合键)将多个列作为一个索引键,一般用于复合索引。
    
    
    索引:使用索引可快速访问数据库表中的特定信息。索引是对数据库表中一列或多列的值进行排序的一种结构。类似于书籍的目录。
    
    
    参照完整性: 参照的完整性要求关系中不允许引用不存在的实体。与实体完整性是关系模型必须满足的完整性约束条件,目的是保证数据的一致性。
    管理软件的分类

    (4)MySql的安装

    • 下载: 官网下载相应的版本,解压到要安装的指定目录
    • 添加环境变量:我的电脑右击属性->高级系统设置->环境变量->系统变量->在path中添加MySql的bin目录
    • 初始化: mysqld --initialize-insecure
    • 启动mysql服务 (mysqld)
    • 启动mysql客户端并连接mysql的服务端(新开一个cmd窗口)
    • 将MySql服务制作成Windows服务
    注意:--install前,必须用mysql启动命令的绝对路径
    # 制作MySQL的Windows服务,在终端执行此命令:
    "c:mysql-5.6.40-winx64inmysqld" --install
    
    # 移除MySQL的Windows服务,在终端执行此命令:
    "c:mysql-5.6.40-winx64inmysqld" --remove
    
    
    注册成服务之后,以后再启动和关闭MySQL服务时,仅需执行如下命令:
    # 启动MySQL服务
    net start mysql
    
    # 关闭MySQL服务
    net stop mysql
    制作服务

    2.2 MySql 的基本管理

    (1)windows 下登录设置密码

    • 打开终端,输入mysql
    • 输入mysql提供的函数:select user(); #查看当前登录的账号 (当前登录的默认账号为ODBC@localhost

    当要切换到root账号管理

    • 进入mysql:执行命令 mysql -uroot -p 进入mysql
    • 查看当前用户:此时当前用户为 root(同样通过select user();查看),管理员用户为root(拥有最高的权限,管理员账号),密码为空,此时为无你吗登录,因此需要设置密码 
    • 设置密码
      #输入命令设置密码
      mysqladmin -uroot -p password "密码"
    • 再次登录账号: 再次登录账号时,需要输入密码,不输入密码会有Error的错误提示,当输入密码进入mysql时,检查当前登录账号:同样为root.
    • 修改密码:
      #当要修改密码时,注意此时如果已经进入到了mysql需要exit退出
      输入myaqladmin  -uroot - p " old pwd" password "new pwd"

      修改完成后用新密码进行登录 同是使用select user()查看当前等登录用户.

    • 破解密码(或者忘记密码)
      #1.以管理员的身份打开cmd(必须是管理员身份)
       #2.停掉当前的mysql服务
      
      C:WINDOWSsystem32> net stop mysql
      MySQL 服务正在停止.
      MySQL 服务已成功停止。
      
      # 3.执行如下命令 跳过授权方式
      C:WINDOWSsystem32>mysqld --skip-grant-tables
      2018-06-09 17:12:38 0 [Warning] Insecure configuration for --secure-file-priv: Current value does not restrict location of generated files. Consider setting it to a valid, non-empty path.
      2018-06-09 17:12:38 0 [Note] mysqld (mysqld 5.6.40) starting as process 6052 ...4.
      
      # 4.此时另起一个cmd窗口,输入mysql - uroot - p 进行查看 发现可以不输入密码直接登录,此时为管理员用户root
      
      #5.此时可以任意的更密码
      #6.刷新权限,执行命令
      flush privileges
      #7.退出mysql 执行命令exit
      #8.让用户去加载权限,一管理员身份进入cmd,执行命令查看当前mysql进程
      tasklist |findstr mysql  
      #9.杀死当前进程,执行如下命令
      taskkill /F /PID  xxxx
      
      #10.再次执行,查看到此时的 用户为 root@localhost
      net start mysql  

    (2)统一字符编码 

    • 进入mysql客户端执行 s
      #此时的collection 默认编码不是utf-8
      collection:
      Server characterset :
      Db: characterset :
      Client: characterset :
      Connr:characterset :
    • 在mysql解压路径下创建 my.ini的配置文件
    • 将如下代码赋值粘贴到my.ini 文件中
      [mysqld]
      # 设置mysql的安装目录 **后面的路径一定是安装sql的目录(自己电脑的)**
      basedir=F:MYSQLmysql56
      # 设置mysql数据库的数据的存放目录,必须是data
      datadir=F:MYSQLmysql56data
      sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
      # mysql端口
      port=3306
      # 字符集
      [mysqld]
      character-set-server=utf8
      collation-server=utf8_general_ci
      [client]
      default-character-set=utf8
      [mysql]
      default-character-set=utf8
    • 以管理员身份重启服务,执行如下命令
      C:Windowssystem32>net stop MySQL
      MySQL 服务正在停止..
      MySQL 服务已成功停止。
      
      C:Windowssystem32>net start MySQL
      MySQL 服务正在启动 .
      MySQL 服务已经启动成功。
    • 再次在cmd中进入mysql时输入s发现此时的characterset已经全部被修改为utf-8

     3.基本的mysql语句

    (1)操作文件夹(库)

    • #进入mysql时输入下面指令,可以查看到所有的数据库
      show databases
      #use + 对应的数据库名字,进入对应的数据库
      #另外还可以使用下面指令来查看创建的库
      show create database db1
    • #输入如下指令,新增文件夹(库),db1为库的名字,后面可以跟编码格式,此时默认为utf-8
      create database db1 ;
    • #在mysql下输入如下指令
      alter database db1;
    • #输入如下指令删除库
      drop database db1;

    (2) 操作文件(表)

    • 切换文件加
      #切换文件夹
      use db1;
      #查看当前所在的文件夹
      select database();
    • #输入如下指令新增文件, 其中  t1为创建的文件名(表头字段) 
      # id好比一个变量,sql中是一个强类型语言,定义字段时候回强制规定规则
      create table t1(id int,name char);
    • #查看当前的这张t1表
      show create table t1;
      
      #查看所有的表
      show tables;
      
      #查看表的详细信息
      describe t1;
      desc t1;
    • #modify  修改的意思
      alter table t1 modify name ;
      
      #改变name为答谢的NAME
      alter table t1 change name NAME;
    • #删除表
      drop table t1;

    (3)操作文件内容(记录)

    • #插入一条数据
      insert t1(id name) values(1,"alex");
    • #查找时指令
      select id from db1.t1;
      select id,name from db1.t1;
      select * from db1.t1:
    • #修改的指令
      update db1.t1 set  name ="hehe";
      update db1.t1 set name ="alex" where id =2
    • #删除的指令
      delete from t1;
      delete from t1 where id  =2;
  • 相关阅读:
    HDU 5912 Fraction (模拟)
    CodeForces 722C Destroying Array (并查集)
    CodeForces 722B Verse Pattern (水题)
    CodeForces 722A Broken Clock (水题)
    CodeForces 723D Lakes in Berland (dfs搜索)
    CodeForces 723C Polycarp at the Radio (题意题+暴力)
    CodeForces 723B Text Document Analysis (水题模拟)
    CodeForces 723A The New Year: Meeting Friends (水题)
    hdu 1258
    hdu 2266 dfs+1258
  • 原文地址:https://www.cnblogs.com/wcx666/p/9990637.html
Copyright © 2011-2022 走看看