• mysql 数据库


    数据库:

    数据库是指长期存储在计算机内,有组织,可共享的数据集合。数据库中的数据按照一定的数学模型组织,描述和存储,具有较小的冗余,较高的数据独立性和易扩展性,并可为多个用户共享。

    数据库管理软件:

    数据库管理系统(Database Management System)是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库,简称DBMS。它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。用户通过DBMS访问数据库中的数据,数据库管理员也通过dbms进行数据库的维护工作。它可使多个应用程序和用户用不同的方法在同时或不同时刻去建立,修改和询问数据库。大部分DBMS提供数据定义语言DDL(Data Definition Language)和数据操作语言DML(Data Manipulation Language),供用户定义数据库的模式结构与权限约束,实现对数据的追加、删除等操作。

    数据库管理系统是数据库系统的核心,是管理数据库的软件。数据库管理系统就是实现把用户意义下抽象的逻辑数据处理,转换成为计算机中具体的物理数据处理的软件。有了数据库管理系统,用户就可以在抽象意义下处理数据,而不必顾及这些数据在计算机中的布局和物理位置。

    常见的数据库管理软件:甲骨文的oracle,IBM的db2,sql server, Access,Mysql(开源,免费,跨平台).

    数据库系统:

    数据库系统DBS(Data Base System,简称DBS)通常由软件、数据库和数据管理员组成。其软件主要包括操作系统、各种宿主语言、实用程序以及数据库管理系统。数据库由数据库管理系统统一管理,数据的插入、修改和检索均要通过数据库管理系统进行。数据管理员负责创建、监控和维护整个数据库,使数据能被任何有权使用的人有效使用。

                            

    mysql 数据库:

    下载安装  :http://dev.mysql.com/downloads/mysql/

    初始化   : 打开cmd   cd E:mysql-5.7.19-win32in

            mysql -- initialize - insecure

    启动mysql:    cd E:mysql-5.7.19-win32in

             mysqld

    启动mysql客户端连接mysql服务: mysql -uroot -p   提示输入密码默认为空,直接回车

    添加环境变量:

           【右键计算机】--》【属性】--》【高级系统设置】--》【高级】--》【环境变量】--》【在第二个内容框中找到 变量名为Path 的一行,双击】 --> 【将MySQL的bin目录路径追加到变值值中,用 ; 分割】

    将mysql制作成Windows服务:

    上一步解决了一些问题,但不够彻底,因为在执行【mysqd】启动MySQL服务器时,当前终端会被hang住,那么做一下设置即可解决此问题:

    注意:--install前,必须用mysql启动命令的绝对路径

    # 制作MySQL的Windows服务,在终端执行此命令:
    "c:mysql-5.7.16-winx64inmysqld" --install
     
    # 移除MySQL的Windows服务,在终端执行此命令:
    "c:mysql-5.7.16-winx64inmysqld" --remove

    注册成服务之后,以后再启动和关闭MySQL服务时,仅需执行如下命令:

    # 启动MySQL服务
    net start mysql
     
    # 关闭MySQL服务
    net stop mysql

    设置密码:

    -- mysqladmin -uroot password '123'   #设置初始密码,初始密码为空因此-p选项没有用
    -- mysqladmin -u root -p123 password '1234' #修改root用户密码

    登录:

    -- mysql               #本地登录,默认用户root,空密码,用户为root@127.0.0.1
    -- mysql -uroot -p1234 #本地登录,指定用户名和密码,用户为root@127.0.0.1
    -- mysql -uroot -p1234 -h 192.168.31.95 #远程登录,用户为root@192.168.31.95

    破解密码:

    #1 关闭mysql
    #2 在cmd中执行:mysqld --skip-grant-tables
    #3 在cmd中执行:mysql
    #4 执行如下sql:
    update mysql.user set authentication_string=password('') where user = 'root';
    flush privileges;
    
    #5 tskill mysqld
    #6 重新启动mysql
    方法1:启动mysql时,跳过授权表
    #1. 关闭mysql,可以用tskill mysqld将其杀死
    #2. 在解压目录下,新建mysql配置文件my.ini
    #3. my.ini内容,指定
    [mysqld]
    skip-grant-tables
    
    #4.启动mysqld
    #5.在cmd里直接输入mysql登录,然后操作
    update mysql.user set authentication_string=password('') where user='root and host='localhost';
    
    flush privileges;
    
    #6.注释my.ini中的skip-grant-tables,然后启动myqsld,然后就可以以新密码登录了
    方法2配置文件

    在Windows下为mysql服务指定配置文件

    #在mysql的解压目录下,新建my.ini,然后配置
    #1. 在执行mysqld命令时,下列配置会生效,即mysql服务启动时生效
    [mysqld]
    ;skip-grant-tables#跨过注册表
    port=3306#端口号
    character_set_server=utf8#指定编码
    #解压的目录
    basedir=E:mysql-5.7.19-winx64
    #data目录
    datadir=E:my_data #在mysqld --initialize时,就会将初始数据存入此处指定的目录,在初始化之后,启动mysql时,就会去这个目录里找数据
    
    #2. 针对客户端命令的全局配置,当mysql客户端命令执行时,下列配置生效
    [client]
    port=3306
    default-character-set=utf8
    user=root
    password=123
    
    #3. 只针对mysql这个客户端的配置,2中的是全局配置,而此处的则是只针对mysql这个命令的局部配置
    [mysql]
    ;port=3306
    ;default-character-set=utf8
    user=egon
    password=4573
    
    
    #!!!如果没有[mysql],则用户在执行mysql命令时的配置以[client]为准

     初识sql语句:

    #1 操作文件夹(库)
        增
            create database db1 charset utf8;
    
        查
            show databases;
            show create database db1;
        改
            alter database db1 charset gbk; 
        删
            drop database db1;
    
    #2 操作文件(表)
        切换到文件夹下:use db1
    
        增
            create table t1(id int,name char(10))engine=innodb;
            create table t2(id int,name char(10))engine=innodb default charset utf8;
        查
            show tables;
            show create table t1;
    
            desc t1;#查看表结构
        改
            alter table t1 add age int;
            alter table t1 modify name char(12);
    
        删
            drop table t1;
    
    #3 操作文件的一行行内容(记录)
        增
            insert into db1.t1 values(1,'egon1'),(2,'egon2'),(3,'egon3');
            insert into db1.t1(name) values('egon1'),('egon2'),('egon3');
        查
            select * from t1;
            select name from t1;egon
            select name,id from t1;
        改
            update t1 set name='SB' where id=4;
            update t1 set name='SB' where name='alex';
        删
            delete from t1 where id=4;
    
    
            #对于清空表记录有两种方式,但是推荐后者
            delete from t1;
            truncate t1; #当数据量比较大的情况下,使用这种方式,删除速度快
    
    
    
        #自增id
        create table t5(id int primary key auto_increment,name char(10));
        create table t4(id int not null unique,name char(10));
    
    insert into t5(name) values
    ('egon5'),
    ('egon6'),
    ('egon7'),
    ('egon8'),
    ('egon9'),
    ('egon10'),
    ('egon11'),
    ('egon12'),
    ('egon13');
    简单的sql语句

    初识授权:

    一, 创建用户: 
    
    命令:CREATE USER 'username'@'host' IDENTIFIED BY 'password'; 
    
    说明:username - 你将创建的用户名, host - 指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost, 如果想让该用户可以从任意远程主机登陆,可以使用通配符%. password - 该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码登陆服务器. 
    
    例子: CREATE USER 'dog'@'localhost' IDENTIFIED BY '123456'; #创建本机用户
    CREATE USER 'pig'@'192.168.1.101_' IDENDIFIED BY '123456'; 
    CREATE USER 'pig'@'%' IDENTIFIED BY '123456'; 
    CREATE USER 'pig'@'%' IDENTIFIED BY ''; 
    CREATE USER 'pig'@'%'; 
    
    #insert,delele,update,select
    #级别1:对所有库,下的所有表,下的所有字段
    grant select on *.* to 'lin1'@'localhost' identified by '123';
    
    #级别2:对db1库,下的所有表,下的所有字段
    grant select on db1.* to 'lin2'@'localhost' identified by '123';
    
    #级别3:对表db1.t1,下的所有字段
    grant select on db1.t1 to 'lin3'@'localhost' identified by '123';
    
    #级别4:对表db1.t1,下的id,name字段
    grant select (id,name) on db1.t1 to 'lin4'@'localhost' identified by '123';
    grant select (id,name),update (name) on db1.t1 to 'lin5'@'localhost' identified by '123';
    
    #修改完权限后,要记得刷新权限
    flush privileges;
    
    删除账户及权限:>drop user 用户名@'%';
    
            >drop user 用户名@ localhost; 

     mysql存储引擎:

    存储引擎就是如何存储数据,如何为存储的数据建立索引和如何更新、查询等技术的实现方法。

    查看mysql的存储引擎:

    SHOW ENGINES#查看所有的存储引擎
    SHOW VARIABLES LIKE '%storage_engine%';#查看正在使用的存储引擎

    使用存储引擎:

    mysql 默认的存储引擎电话INNODB

    mysql> CREATE DATABASE db1;#建库
    
    mysql> use db1;#进库
    
     CREATE TABLE t1(id int,name varchar(20))ENGINE = INNODB;#建表,指定引擎为INNODB
    
    mysql> SHOW CREATE TABLE t1;#查看表
    
    +-------+-------------------------------------------------------------------------------------------------------------------------+
    | Table | Create Table                                                                                                            |
    +-------+-------------------------------------------------------------------------------------------------------------------------+
    | t1    | CREATE TABLE `t1` (
      `id` int(11) DEFAULT NULL,
      `name` varchar(20) DEFAULT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
    +-------+-------------------------------------------------------------------------------------------------------------------------+
    1 row in set (0.01 sec)
    创建四个表,分别使用innodb,myisam,memory,blackhole存储引擎,进行插入数据测试
    
    MariaDB [db1]> create table t1(id int)engine=innodb;
    MariaDB [db1]> create table t2(id int)engine=myisam;
    MariaDB [db1]> create table t3(id int)engine=memory;
    MariaDB [db1]> create table t4(id int)engine=blackhole;
  • 相关阅读:
    eclipse.ini
    Windows8.1硬盘安装Ubuntu14.04双系统参考教程和多硬盘的注意事项[画画]
    【HTML+CSS】(1)基本语法
    Apache Curator获得真正的
    LVM逻辑卷管理@设备、格式、摩、引导自己主动安装一个完整的章节
    这么多的技术,作为一个freshman,什么研究?
    【JUnit4.10来源分析】0导航
    难度0 大写和小写交换
    java06
    java05
  • 原文地址:https://www.cnblogs.com/shengzhongqiu/p/7486810.html
Copyright © 2020-2023  润新知