zoukankan      html  css  js  c++  java
  • 一、初识MySQL数据库 二、搭建MySQL数据库(重点) 三、使用MySQL数据库 四、认识MySQL数据库的数据类型 五、操作MySQL数据库的数据(重点)

     一、初识MySQL数据库
    ###<1>数据库概述
        1. 数据库
            长期存储在计算机内的,由组织的可共享的数据集合
            存储数据的仓库
            文件        

        2. 数据库管理系统
            操作和管理数据库的软件
            软件

        3. 数据库的类型
            关系型:把复杂的数据结构归结为简单的二元关系(二维表的形式)
            非关系型:NoSQL,Not Only SQL
                键值存储数据库:Redis
                文档存储数据库:MongDB,json/xml
                列存储数据库:HBase

        4. 主流的关系型数据库
            Oracle:Oracle
                收费
                
            SQLServer:微软
                开放性差            
            
            DB2:IBM
                收费
            
        5. 关系型数据的特点    
            由多张表和表之间的关系组成数据集合。(表的形式)
            表由行和列组成
            表的列:column ,字段,属性
            表的行:row ,记录
    ![](2.png)

    ###<2>MySQL概述
        1. MySQL发展历程
            瑞典MySQLAB 公司研发的开源的关系型数据管理系统
            反对软件专利 copyright,copyleft
            08被sun公司收购,09sun被Oracle

        2. 版本
            企业版:
                商业的公司维护
                收费,收取的服务费
                
            社区版:
                开源社区维护
                免费

        3. 特点
            开源的关系型数据管理系统
            短小精悍,速度快,总体拥有成本较低
            被广泛的应用于中小型网站中
            是LAMP流行网站架构的组成部分
            
    # 二、搭建MySQL数据库
    ###<1>安装的方式
            MSI安装:Windows Installer微软格式的安装包
            ZIP安装:绿色版压缩包
                    
    ###<2>注意事项(以前安装过MySQL数据库,卸载干净)
        卸载MySQL数据库的步骤:
            1. 关闭MySQL服务
            2. 卸载MySQL数据库软件
            3. 删除残留的数据
                源安装位置            
                C://programData下的MySQL
                注册表:xxxmachine/system/001~002~set/services/eventlog/application/mysql

    ###<3>安装MySQL数据库
        MSI安装    
        编码
        
    # 三、使用MySQL数据库软件
    ###<1>在DOS下启动MySQL服务
            net start mysql
            net stop mysql

    ###<2>登陆数据库
            命令:mysql - 参数

            参数:
                -u 用户名
                -p 密码
                -P 指定端口号
                -V 查看数据库的版本
                -h 指定数据库的服务器地址
                    
            例如:
                //登陆数据库,指定端口号和主机地址
                mysql -uroot -proot -P3306 -h127.0.0.1
                
                //登陆数据库,使用默认的端口和主机地址
                mysql -uroot -proot
            
                //密码不可见的方式登陆数据库
                mysql -uroot -p回车 
                密码(不可见的)

                //通过MySQL Command Line Client登陆MySQL数据库

                //远程登陆MySQL数据库
                mysql -uroot -proot -P3306 -h111.231.15.33
                
    ###<3>退出
            方式一:exit
            方式二:quit
            方式三:q
            方式四:ctrl+c

        
    ###<4>修改密码
            1. 停止MySQL服务
            2. 在dos输入:mysqld --skip-grant-tables
            3. 开启新的dos窗口,登陆mysql数据库(不需要密码)
            4. 更改密码
                use mysql (DB数据库,文件)
                update user set password=password('123') where user='root';
            5. 关闭dos窗口,结束mysqld进程
            6. 重启MySQL服务

    # 四、数据类型
        MySQL支持多种数据类型:数值型,字符型,日期型

        常用的数据类型:
            1. 整型
                int[(M)]:存储整数
                例如:存储学生的年纪

                stutAge int :   18
                stutAge int unsigned : 18
                stutAge int(5)  zerofill: 00018    100000   

            总结:设置了zerofill属性的情况下,数据不足M位会在左侧补零;
                 超出的M位,则不受影响。
                 M只是一个预期值,和存储数据的范围没有关系。

            2. 浮点型
                float[(M,D)]:存储小数
                例如:存储工资
                
                salary float(6,2):存储的数据位数最多6位,其中有2位小数
                                  9999.99,整数超出了范围直接报错,小数超出范围四舍五入操作
                        
                salary float:    没有限定                    

            3. 字符型
                char(): 固定长度的字符串类型,存储5,'5    '
                    会造成存储空间的浪费,速度快

                varchar():变长的字符串类型,存储5,'5'
                    不存在存储空间的浪费,速度慢
                        
                text:大数据量的字符    

                blob:大数据量的字节
                
            4. 日期类型
                year:存储年份
                time:时间类型,存储时间。hh:mm:ss
                date:日期类型,存储日期。yyyy-MM-dd
                datetime:日期+时间。yyyy-MM-dd hh:mm:ss
                timestamp:时间戳类型。yyyy-MM-dd hh:mm:ss ,2037 年以前的时间可以存储

            5. 举例
                类型            字节          范围

                tinyint         1byte        -128~127(255)
                smallint        2byte       -32768~32767(65535)
                mediumint        3byte        8百万(一千六百万)
                int                4byte        
                bigint            8byte       9百多兆
                

            注意:
                 short is better ,   age  tinyint   ungined  ; 1   -128 ~ 127
                 选择合适的数据类型是数据库优化的一部分。

        netstat -ano 列出当前端口使用的情况
        tasklist 列出系统中正在运行的进程
        taskkill 结束进程
          
    # 五、操作MySQL数据库中的数据
    ###<1>SQL概述
        SQL:Structure Query Language,定义和操作数据,维护数据的完整性和安全性。
        被ISO国际化标准组织采纳为关系型数据库语言的国际标准。
        简单易学,使用方便,面向非过程                         
                         
    ###<2>组成
        数据定义语言:DDL(Data Definition Language)
                    定义数据库和数据表
                    与数据无关
                    create  drop  alter

        数据操纵语言:DML(Data Manipulation Language)
                    操作数据库中的数据
                    insert delete update     

        数据查询语言:DQL(Data Query Language)        
                    查询数据的
                    无法更改数据
                    select

        事务控制语言:TCL(Transaction Control Language)
                     事务控制语言
                    操作事务
                    commit rollback savepoint
        
        数据控制语言:DCL(Data Control Language)
                    定义访问权限和安全级别
                    grant  revoke


    ###<3>数据定义语言:DDL
    ###数据库操作
        1. 创建数据库
            语法格式:create database [if not exists] 数据库名称[default] character set 编码名称;
                
            例如:
                create database db1;
                create database db1 if not exists;//忽视错误,显示警告
                show warnings;//查看警告

                create database db2 character set gbk;//指定数据库的字符集

        2. 查询数据库
            语法格式:
                show databases;//查看所有数据库
                show create database 数据库名称;//查看具体的一个数据库    

        3. 修改数据库
            语法格式:alter database    [if not exists] 数据库名称  character set = 编码格式;
                
            例如:
                    alter database db2 character set=utf8;

        4. 删除数据库
            语法格式:drop database 数据库名称;
            例如:
                drop database db2;

    ###数据表操作    
        1. 创建表
            指定数据库:use 数据库名称;

            查看当前正在使用的数据库:select database();        

            语法格式:create table 表名称(字段1 字段1定义 , 字段2 字段2定义,......);            

            例如:创建老师表
                create table teacher(
                    tid int,
                    tname varchar(20),
                    age tinyint unsigned,
                    gender enum('man','woman','other'),
                    shows varchar(100)
                );

        2. 查看数据表
            语法格式:show tables[from 数据库名称];
                
            例如:show tables from mysql;
            
            查看表结构的语法格式:
                    desc 表名;
                    show columns from 表名;

        3. 修改数据表(不建议操作)
            3.1 更改表名称
                方式一:alter table 表名  rename  [as|to] 新的表名称;
                方式二:rename table 旧的表名称 to 新的表名称[,旧的表名称2 to 新的表名称2,...]            
                例如:
                    alter table teacher rename teachers;
                    rename table teachers to teacher;

            3.2 添加列
                语法格式: alter table 表名称  add [column] 列名称  列定义[first | after 列名];

                例如:
                    alter table teacher add birth date;
                    alter table teacher add birth2 date after gender;
                    alter table teacher add birth3 date first;
                
            3.3 修改列定义
                语法格式:alter table 表名称 modify 列名称  新的列定义 [ first | after 列表];
                
                例如:
                    alter table teacher modfiy tid smallint first;

            3.4 修改列名称
                语法格式:alter table 表名称 change 旧的列名称  新的列名称  新的列定义 [ first | after 列表];
                
                例如:
                    alter table teacher change birth birthday date     after birth2;

            3.5 删除列        
                语法格式:alter table 表名称 drop 列名
                    
                例如:
                    alter table teacher drop birth1, drop birth2;

        4. 删除数据表    
            语法格式:
                drop table 数据表名称;
            例如:
                drop table teacher;
            
    ###练习
            

    ###数据操纵语言:DML
        1. 添加操作
            语法格式:insert [into] 表名 [(列名1,列名2,....)]  values|value (数值/表达式);
            
            例如:
                insert teacher value (2,'马云', 2,50,'我人生中的最大的错误就是创立了阿里巴巴');
                insert teacher value (3,'东哥', 2,44,'我这个人脸盲,跟她在一起不是因为她漂亮,因为我根本不知道她漂不漂亮');            
                insert teacher value (4,'马腾哥',1,47,'只要你充够了钱,你就会变的更强');
                insert teacher value (5,'丁磊',1,66,'我非常赞成大学生去卖猪肉');
                                        
        2. 更改操作
            语法格式:update  表名称  set 列名称=数值|表达式  ,列名称2=数值2|表达式2 ...... [where 条件] 

            例如:
                    udpate teacher set age=age-1;
                    update teacher set age = age +1 , gender=2;-- 同时更新多个字段的数值
                    update teacher set tname='丁三石' where      tid=5;    -- 带限制条件的更新
            
        3. 删除操作    
            语法格式:delete from 表名 [where 条件];
            例如:
                delete from teacher where tid=5;
                delete from teacher;

    ###数据查询语言:DQL
        1. 语法格式:
            select 表达式1,表达式2,.... from 表名
                    [
                        where 条件
                        group by 分组条件
                        having 条件
                        order by 排序列名
                        limit
                    ]
                
        
        2. 普通查询
            语法格式:
                select 表达式;//表达式可以是一个函数
                    select database();
                    select version();
                    select user();
                    select now();
            
                select 列名列表 from 表名;
                    列名列表可以是* ,代表查询所有列,
                    每一个列名后面可以跟上 [as] 别名 ,表名后面也可以跟上[as] 别名 

            
        3. 条件查询
            语法格式:where 条件表达式;
                条件查询对数据进行过滤,在where后面,可以使用mysql支持的运算符和函数
                
            MySQL支持的运算符:
                =  =! <>  < >  <= >= 
                and  ,  or  , not
                null  ,is not null
                between...and  ,  in(set)
                    
            例如:
                select * from  teacher where age <>44;
                
                select * from teacher where tname in('马云','马腾哥');

        4. 模糊查询
            语法格式:like /not like + 通配符(%)/占位符(_) 

            

            例如:查询所有姓马的老师
                select * from teacher where tname like '马%';

    不忘初心,方得始终! 坚持!坚持!坚持!!
  • 相关阅读:
    资料下载
    sublime安装AngularJS插件
    Zen Coding: 一种快速编写HTML/CSS代码的方法[Emmet]
    手机号码归属地API
    浅谈JavaScript中的作用域
    原生ajax、jsoup
    Java排序:选择排序
    Java排序:冒泡排序
    Oracle系列一、基本术语
    linux jdk tomcat 安装
  • 原文地址:https://www.cnblogs.com/sumboy/p/9058623.html
Copyright © 2011-2022 走看看