mysql基础 day01

课程介绍

1.数据库技术
    MySQL数据库:数据库管理系统,高效的存储和管理数据
    JDBC:Java数据库连接技术,使用Java语言存储和管理数据

2.前端技术
    HTML:Hypertext Markup Language,超文本标记语言,编写网页
    CSS:Cascading Style Sheets ,层叠样式表,美化网页
    JavaScript:java 脚本语言,在客户端处理业务
    Ajax:Asynchronous JavaScript and XML ,在客户端发送请求并处理响应结果

3.后台技术
    Servlet:Servlet Applet ,在服务器端处理客户端的请求
    JSP:Java 服务器页面,使用java语言动态的生成响应页面
    Linux:自由的,免费开源的类Unix操作系统


4.通用技术

晨测

回顾

作业解答

今日概要

一、初识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>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 '马%';

练习:

    创建数据库boss_db
    创建数据表boss_tb(bid,bname,age,gender,show,birthday)
    操作表的结构(添加一个新的列,修改一个旧的列的定义和名称)   

    添加数据        

    查询40多岁的老师信息
    查询名字三的老师
    查询三个字的姓王的老师
    查询三个字的最后一个字是哥的老师
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值