• MySql数据库学习积累


    MYSQL

        梗概

        scrapy  爬虫;

    2018.06.06

       

        socket 插座,端

            服务端

            客户端

        DBMS  database manager system 数据库管理系统

       

        关系型数据库: 【约束】 sqlserver db2 mysql access oracle

       

        非关系型数据库:MongoDB 、redis

    1、:mysql安装   

        技能

            安装 mysql

            服务端:mysqld.exe

            客户端:mysql.exe

            

            初始化:

                服务端:

                 --initialize-insecure

                 cmd中cd 路径至D:mysqlmysql-5.7.22-winx64in后,执行mysqld --initialize-insecure

                默认用户名root,密码 空;

              

             

            启动服务端

                    直接执行 mysqld

            启动客户端:

                     mysql

                    登录mysql -u root -p

            

            show databases; 显示data下文件夹;

            create database db1;创建文件夹db1

           

        添加环境变量

        

            windows 服务;相当于后台进程

                D:mysqlmysql-5.7.22-winx64inmysqld --install  服务安装

                D:mysqlmysql-5.7.22-winx64inmysqld --remove   服务移除

               

                net start MySQL   服务启动

                net stop  MySQL   服务停止

    2、关于连接

            文件夹【数据库】

                文件【表】

                    数据行【行】

                    数据行

                    数据行

            连接:

                默认用户:root

                创建用户:

                      create user 'alex'@'192.168.1.1' identified by '123123';

                      create user 'alex'@'192.168.1.%' identified by '123123';

                      create user 'alex'@'%' identified by '123123';

                 授权:

                      权限、人

                      grant select,insert,update    on db1.t1  to 'alex'@'%'; --查、插入、更新权限

                      grant all privileges  on db1.*  to 'alex'@'%';      --所有权限

                   

                      revoke all privileges  on db1.*  to 'alex'@'%';     --移除权限

                use mysql 进入文件

               

           

                show databases;

               

                use 数据库名称;

                show tables;

                select * from 表名;

               

    3、学习SQL语句规则

            操作文件夹

                create database db2;  创建

                 create database db2 default charset utf8;  字符编码utf8

                show databases;       查看

                drop database db1;    删除

                      

            操作文件

                use db2;

                show tables;

                create table t1(id int,name char(10) ) default charset =utf8;

                 create table t3(id int auto_increment primary key,name char(10) ) default charset =utf8;

               

                create table t1(

                        列名 类型 null,

                        列名 类型 not null,

                        列名 类型 not null default 1,

                         列名 类型 not null auto_increment primary_key,

                        id int,

                        name char(10)

                        ) engine=innodb default charset =utf8;

                                                      

                   # innodb 支持事务 原子性操作

                   # myisam 支持全局索引、存储速度相对快;

                   

                   # auto_increment  表示 自增;

                   # primary key 表示约束(不能重复且不能为空); 加速查找

                   

                 create table t1(

                       

                         Id  int not null auto_increment primary_key,

                        name char(10)

                        ) engine=innodb default charset =utf8;

                  清空表

                        delete from t1;

                        truncate table t1;

                  删除表 

                        drop table t1;

              

                       

            操作文件中内容  

        

                 插入数据  

                    insert into t1(id,name) values(1,'陈飞');

                 查看数据:

                    select * from t1;

                更新数据

                     update

                 删除数据

                    delete

                

               

                   

                   

             数据类型

            

                tinyint

                int

                bigint

               

                float

                double     

               

                decimal  指定精度小数

               

                char     自动填充位数

                varchar   不填充;

           

               时间

                date

                time

                datetime

               

        外键:节省空间、约束

            create table userinfo(

                uid bigint auto_increment primary key,

                name varchar(32),

                department_id int,

                constraint fk_user_depart foreign key ("department_id",) references department('id')

             )engnie=innodb default charset=utf8;

            

           

            create table department(

                id bigint auto_increment primary key,

                title char(15)

             )engnie=innodb default charset=utf8;

               

        http://www.cnblogs.com/wupeiqi/articles/5729934.html

    第二讲:

        1、回顾内容

            一张表只能有一个主键;

            一个主键可以有两列合起来做主键。

          

            create table t1(

                nid int(11) not null auto_increment,

                Pid int(11) not null,

                num int(11) null,

                primary key (nid,pid)         

             )engnie=innodb default charset=utf8;  

       

       

       

            create tabel t2(

                id int auto_increment primary key,

                name char(10),

                id1 int,

                id2 int,

                constraint fk_t1_t2 foreign key (id1,id2) references t1 (nid,pid)

            )engnie=innodb default charset=utf8;

        数据行

            insert into tb1(name,age) values('chen',18);

           

            delete from tb1;

            truncate tabel tb1;

           

            delete from tb1 where id > 10;

           

            update tb1 set name='root' where id > 10;

           

            select * from tb1;

            select * from tb1 where id > 10;

           

    create table t10(

                nid int(11) not null auto_increment,

                Pid int(11) not null,

                num int(11) null,

                primary key (nid,pid)         

             )engnie=innoDB auto_increment=4 efault charset=utf8;  

    alter table t10  set auto_increment = 2;

    disc t10;

    show create table t10;

    show create table t10 G;

           

    alter table t10  set auto_increment = 2;

           

    自增 步长

       

       

    SQL语句数据行操作补充

        增

            insert into tb11(name,age) values('chenfei',12);

            insert into tb11(name,age) values('zhangfei',12),('root',18);

           

            insert into tb12(name,age)  select name,age from tb11;

           

            create tb11(

                id int auto_increment primay key,

                name varchar(32),

                age int

            )engine=innoDB default charset=utf8;

           

        删

            delete from tb12;

            delete from tb12 where id !=2;

           

        改

            update tb12 set name='alex' where id>12 and name='xx'

            update tb12 set name='alex',age= 134 where id>12 and name='xx'

        查

            select * from tb12;

            select id,name from tb12;

            select id,name from tb12 where id> 12;

           

            as  别名;

            条件:

                where  in, not in, between and,

            通配符:

                a%

           

            select * from tb12  limit  10;  取前10行;

            select * from tb12  limit  10 offset 20;  取前10行;

           

            offset 从。。。开始;

            limit  取。。。行数;

           

            排序

                order by id

                select * from tb12  order by id  desc;  降序;

                select * from tb12  order by id  asc;   升序;

              取最后10条;

                select * from tb12  order by id  desc limit  10;

           

        分组:

            group by

        

            select count(id),part_id from userinfo5 group by part_id;

           

    Day 59;

       

       

    MYSQL基础入门

               关系型数据库: 【约束】 sqlserver db2 mysql access oracle

       

    数据库概念介绍

    互联网的瓶颈:数据库、存储

    数据库种类介绍及关系型数据库原理

    数据库:

    存放数据的仓库,这个仓库按照一定的数据结构来组织、存储的。

           我们可以通过数据库提高的多种方法来管理数据库里的数据。

    数据库种类

           层次式数据库、网络式数据数据库、

          

    关系型数据库、非关系型数据库(NOSQL数据库)

    关系型数据库介绍

           模型把复杂的数据结构归结为简单的二元关系。(即二维表格形式)

           在关系数据库中,对数据的操作几乎都建立在一个或多个关系表格上,通过对这些关联表格的分类、合并、连接或选取等运算来实现数据的管理。

    典型产品:MYSQL、oracle

                         MYSQL产品2008年被sun公司收购,oracle收购sun公司;

    工具:access Power Builder

          什么是关系型数据库特点:

    1、  类似于excel的二维表;

    2、  使用结构化查询语言进行存储;

    3、  代办作品:oracle 、mysql

           典型产品:

    Oracle 数据库

    市占率数一数二。

                         太笨重、太贵、扩展困难。

                         主要应用范围:传统大企业、大公司、政府、金融、证券;

    Mysql数据库

                  中小型数据库;

                  体积小、速度快、成本低、开发源代码;

                  主要应用于:互联网领域、大中型网站、游戏公司、电商平台、BAT都在用

    MariaDB数据库

                  Mysql数据的一个分支;

                  Mysql被oracle收购后,诞生的;

                  累计性行业、

    SQL Server数据库

                  微软平台下的数据库;

                  主要应用范围:  微软平台下的开发应用;

                 

    Access数据库

           微型数据库

           入门级桌面数据库;

           应用范围: 早期留言板、校友录

    其他 db2、

    非关系型数据库(NoSQL)

           需求背景:web2.0网站的兴起,用户为主题;

           Google的bigtable,

    amazon的dynamo

           Facebook的cassandra

           Apache的HBase

           Redis mongodb 典型产品

     

           Key-value数据

                  面向列数据库

                  面向文档数据库(Document-Oriented

                         典型产品:MongoDB,CouchDB

                  面向图形(g)数据库

     

    非关系型数据库种类

    Memcached数据库

                         纯内存缓存软件,一旦重启所有数据丢失

    Memcachedb 数据库

                         新浪再用    

    Redis(key-value)数据库

           数据都是缓存在内存中,区别是redis会周期性的吧更新数据写入磁盘。

    MongoDB数据库

           非关系数据库中比较丰富的一个产品;

    Cassandra

     

     

    MySQL数据库

    介绍:

           中小型数据库;

           体积小、速度快、成本低、开发源代码;

           主要应用于:互联网领域、大中型网站、游戏公司、电商平台、BAT都在用

           SQL:结构化查询语言

          

           绝大多数使用linux操作系统的大中小互联网网站都在使用MySQL作为其后端的数据库存储。

          

           体积小、品牌口碑效应、LAMP、LEMP流行架构;

          

          

    版本:

    商业版

           组织管理、测试严格;

           收费     

    社区版

           成熟产品,社区版、商业版性能差异不大;

           免费

    这两个版本有分别分4个版本:

           Alpha:内部版本,不对外公开。

           Beta 版:测试版。

           RC   版: 候选版,发布前的最后一个小版本;

           GA   版: 正式发布版本;

    产品路线

           5.1版本后,规划了3条产品线。

          

          

    安装方式

    rum/rpm安装:

    大的门户把源码根据企业要求制成rpm,搭建yum仓库;

    二进制方式免编译安装

    gmake install

    gmake是GNU Make的缩写。
    Linux系统环境下的make就是GNU Make,之所以有gmake,是因为在别的平台上,make一般被占用,GNU make只好叫gmake了。
    比如在安装二进制文件进行编译时要使用make命令,但如果在Solaris或其他非GNU系统中运行,必须使用GNU make,而不是使用系统自带的make版本,这时要用gmake代替make进行编译。

    Mysql多实例介绍

           开启不同的服务端口。

           问题:

                   某实例并发高或执行慢查询时,其他实例会受到影响;

           应用场景:

                   资金紧张

                   门户网站应用

                        

           耦合性太高。

    Navicat使用;

          

            备份:数据表结构+数据;

            备份:数据表结构

    --临时表

           select num from (select num,course_id from score where num>60) as B;

    注释

           Char  定长;

           Varchar 不定长

           数字:整数、小数、

           字符串

           时间

           主键;复合主键:多列组合唯一。

           索引: 

    主键索引

    唯一索引

           外键: 一对多; 一对一;

                         多对多

          

           数据行:

                  增、删、改、查、

               查    in  not in     between and

                                Limit

                                Group by             having

                                Order by

                                Like

                                Join on

                                临时表

     

     

    数据字典提取语句

    select TABLE_SCHEMA,TABLE_NAME,COLUMN_NAME,COLUMN_TYPE,COLUMN_COMMENT from information_schema.columns where TABLE_SCHEMA='haolei'

     

    在新建查询中写入如下查询

    select TABLE_SCHEMA,TABLE_NAME,COLUMN_NAME,COLUMN_TYPE,COLUMN_COMMENT from information_schema.columns where TABLE_SCHEMA='数据库名'

    点击运行,也可以右键——>运行当前语句

     

    10.10.10.1

     

    MYSQL如何设置大小写敏感

    2017年06月05日 13:53:51 chpllp 阅读数:12428

    1、linux下mysql安装完后是默认:区分表名的大小写,不区分列名的大小写; 
    2、用root帐号登录后,在/etc/my.cnf 中的[mysqld]后添加添加lower_case_table_names=1,重启MYSQL服务,这时已设置成功:不区分表名的大小写; 
    lower_case_table_names参数详解: 
    lower_case_table_names = 0 
    其中 0:区分大小写,1:不区分大小写 
    MySQL在Linux下数据库名、表名、列名、别名大小写规则是这样的: 
       1、数据库名与表名是严格区分大小写的; 
       2、表的别名是严格区分大小写的; 
       3、列名与列的别名在所有的情况下均是忽略大小写的; 
       4、变量名也是严格区分大小写的; 

    linux下MySQL停止和重启

    一、启动方式
    1、使用linux命令service 启动:
    service mysqld start
    2、使用 mysqld 脚本启动:
    /etc/inint.d/mysqld start
    3、使用 safe_mysqld 启动:
    safe_mysqld&

    二、停止
    1、使用 service 启动:
    service mysqld stop
    2、使用 mysqld 脚本启动:
    /etc/inint.d/mysqld stop
    3、 mysqladmin shutdown

    三、重启
    1、使用 service 启动:
    service mysqld restart
    2、使用 mysqld 脚本启动:
    /etc/inint.d/mysqld restart

    备注:查看mysql端口是否已经使用,使用netstat -anp 命令查看服务器端口使用情况。

     

                 

    End

     

  • 相关阅读:
    树状数组
    LCA最近公共祖先
    ordered_set
    马拉车算法
    数论
    图论
    其他
    线段树
    序列自动机
    优先队列
  • 原文地址:https://www.cnblogs.com/chenfei2928/p/12586105.html
Copyright © 2020-2023  润新知