MySQL数据库操作基础

1.MySQL 是什么?
    1)软件(Software):工具(解决问题)
    2)数据库管理系统(DBMS)
    3)关系型(Relation)数据库管理系统(RDBMS):类似Oracle
     扩展:db-engines(db引擎网站)-----了解一些非关系型数据库(key-value,Document等等)
     网站:www.mysql.com
         www.oracle.com  
         db-engines.com/en/ranking

2.MySQL 应用特点
    1)简单
    2)高效
    3)可靠
    4)...        

3.MySQL 应用场景
       1)WEB站点系统(如:www.mysql.com...)
    2)日志处理系统(输入+存储+处理+输出) MySQL支持一种引擎---MyISM(不支持事务)
    3)数据仓储系统(主从复制架构)
    4)嵌入式系统(MySQL的伸缩性非常强)
         
4.MySQL 基本网络框架
    1)Client
    2)Server
    3)TCP/IP        

5.MySQL 的登录与退出
    1)登录(控制台) 
        mysql -u root -p
         其中root用户为本机最高权限(u 和root之间可以不需要空格) 
    2)退出  quit 或者 exit        
            \c 结束当前命令        

6.MySQL 基本指令的应用
     登录以后可以:
        1)查看登录用户:select user();
            (了解)访问:mysql -u tedu -h 192.168.100.101 -p
        2)显示当前系统mysql端口号:show variables like 'port';
            variables /ˈveərɪəbl/
        
        3)查看mysql的状态信息:status
        4)显示当前系统的存储引擎:show variables like '%storage_engine%';
          显示所有表的编码格式:show variables like '%character%';
          为character_set_server设置指定的字符编码:set character_set_server=utf8;
        5)显示mysql中支持的存储引擎:show engines;
        6)查看系统函数相关的帮助:help functions; 或者使用 ? functions;
        7)查看当前系统的时间日期:select now();
        8)连接字符:select concat('My','S','QL');
        9)忘记指命或这某个单词的拼写,可以使用帮助,如(显示存储引擎): ? show; 指令之后查看帮助即可
    
面试题:
    1)MySQL中的存储引擎是什么?
        存储引擎:是mysql中负责存储及管理数据的一个服务.
    2)MySQL中的存储引擎有哪些类型,有什么不同?
        我了解的有InnoDB,MyISAM.
        InnoDB:支持事务,一般要保证数据安全(例如完整性,一致性)
        MyISAM:不支持事务,一般用于做日志存储(一般要求的是效率)
    3)MySQL默认端口号?
        3306,Oracle的是1521
        
7.MySQL 中SQL基本应用(DML,DDL,DCL) ------  DML:操作;  DDL:定义;   DCL:控制
    (1)MySQL数据库相关操作?(创建/查看/使用/删除数据库)
        1)查看当前用户下所有的库:show databases;
        2)查看当前正在使用的数据库select database();
        3)打开/使用test数据库:use test;
        4)创建tedu数据库:create database tedu;
                    或者create database if not exists tedu;不存在就创建tedu数据库
                    或者create database if not exists tedu character set 'utf8'; 指定字符集
                    
        5)查看创建数据库的语法: ? create database;  
        6)查看tedu数据库的格式:show create database tedu;
        7)删除tedu数据库:drop database tedu;
                    或者drop database if exixts tedu;存在就删除tedu数据库
        
    (2)数据中表的操作?
        1)查看当前数据库中有哪些表(前提是要先打开数据库):show tables;
        2)建pet表:
            create table pet (
                id int primary key auto_increment,name varchar(100) not null, //primary key:主键  auto_increment:自增长(默认从1开始)----(oracle中用序列sequence)    
                createdTime datetime not null
            )engine=InnoDB;
        3)显示pet表结构:desc pet;
        4)显示pet表的创建语句:show create table pet;
        5)删除表(语法参考 ? drop table)             
            删除pet表:    drop table pet;
                    或者    drop table if exits pet;表存在就删除    
                          
      (3)表中数据的操作:
              1)插入数据:
                      insert into pet(id,name,createdTime) values (null,'A',now());
                      insert into pet values(null,'B',now());
                      insert into pet(name,createdTime)values('C',now());
                      insert into pet values(null,'D',now()),(null,'E',now());
           
               2)修改表中数据(update):
                       update pet set name='AA' where id=1;
               
               3)删除表中数据(delete):-------(delete是删除表中数据,drop是删除整个表)
                       delete from pet where id=6;
            
            4)查询表中数据(重点掌握mysql中分页查询)
                        select * from pet;  查询pet表中所有数据
                        select username,password from sys_users; 查看sys_users表中指定字段(如:username,password)
                      select * from pet limit 2; 查询pet表中前两行数据
                      select * from pet limit 2,4; 查询从第2条数据之后开始,依次显示4条数据(得到结果为:第3,4,5,6行的记录)
                      select * from pet limit 2 offset 4; 从第5条数据开始显示开始,依次显示2条数据出来(得到结果为:5,6)
                  注:limit n,m 表示从第n条数据之后开始查找,依次查出m条数据
                     limit n ofset m 表示从m条数据开始显示,依次显示n条数据出来.
                      
                  a)现有10条记录,每页最多显示3条,总共有多少页?(Java代码)
                      int rowCount = 10;(从数据库中获取)
                      int pageSize = 3;(业务中定义)
                      int pageCount = rowCount/pageSize;
                      if(rowCount%pageSize != 0){
                          pageCount++;
                      }
                      
                  b)获取第3页的数据?(通过SQL语句实现)
                      select * from pet limit 6,3; //6是通过(3-1)*3得出的结果(要显示的页数-1)*每页几条数据
                
                c)对查询结果按照id倒序排序?
                    select * from pet order by id desc limit 6,3;
                    在mysql中例如有limit子句,那么此语句肯定是最后.                       
                                    
8.MySQL 中source指令应用
    1)登录mysql
    2)执行文件:source d:/ttmswork/day01/test.sql ------window系统
              source //home/soft01/test.sql ----------linux系统
      说明:使用source指令的时候,可能会出现乱码,解决方案:
              a)假如文件是utf8编码:
                  step01:设置客户端的编码为utf8: 执行语句:set names utf8;
                step02:执行source指令,重新导入
                当客户端查询显示还是乱码时,可以先执行set names gbk;
                然后再执行查询操作.
    
    
Tmocat中端口占用解决方案:
    在Tmocat文件夹目录下面的lib文件中启动终端,输入指令:
        ./shutdown.sh
        若提示权限不够,输入指令:
        chmod + *.sh;即可

 

posted @ 2018-05-13 18:46  demon09  阅读(207)  评论(0编辑  收藏  举报