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:\mysql\mysql-5.7.22-winx64\bin后,执行mysqld --initialize-insecure

            默认用户名root,密码 空;

          

         

        启动服务端

                直接执行 mysqld

        启动客户端:

                 mysql

                登录mysql -u root -p

        

        show databases; 显示data下文件夹;

        create database db1;创建文件夹db1

       

    添加环境变量

    

        windows 服务;相当于后台进程

            D:\mysql\mysql-5.7.22-winx64\bin\mysqld --install  服务安装

            D:\mysql\mysql-5.7.22-winx64\bin\mysqld --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

 

posted @ 2020-03-28 10:28  前进小蜗牛  阅读(127)  评论(0编辑  收藏  举报