Mysql--day01

1.什么是数据库
存储数据的仓库
2.哪些公司在用数据库
金融机构,游戏网站,电商网站…
3.提供数据库服务的软件
1.软件分类
MySQL , Oracle , MongDB, MariaDB, SQL_Server …
2.生产环境中,如何选择使用哪个数据库
1.是否开源
1开源软件: MySQL,MariaDB,MongDB
2.商业软件:Oracle,SQL_Server
2.是否跨平台
1.不跨平台:SQL_Server
2.跨平台:MySQL,MariaDB,MongDB,Oracle
3.公司类型
1.商业软件: 政府部门,金融机构,
2.开源软件:游戏网站,电商网站…
3.MySQL特点
1.关系型数据库
1.关系型数据库特点
1.数据是以行和列(表格)形式存储
2.表中的行叫记录,表中列叫字段
3.表和表之间的逻辑关联叫关系
2.示例
1.关系型数据库存储
表1:学生信息表
姓名 年龄 班级
佩琪 20 三班
丹妮 23 六班
表2:班级信息表
班级 班主任
三班 卢大大
六班 大空翼

            2.非关系型数据库存储
                {'姓名':'佩琪','年龄':20','班级':'六班','班主任':'大空翼'}
            
    2.跨平台
        Unix,Linux,Windows上部署数据库服务

    3.支持多种编程语言
        python, java, php ...

    4.数据库软件,数据库,数据仓库概念
        1.数据库软件
            一个软件,看的见,可操作,来实现数据库的逻辑功能
        2.数据库
            逻辑上的概念,实现存储数据的功能
        3.数据仓库
            数据量:比数据库庞大的多
            侧重点:
                数据库侧重存储
                数据仓库侧重数据分析和数据挖掘

2.MySQL安装
1.Ubuntu安装MySQL服务
1.安装服务端
sudo apt-get install mysql-sever
2.客户端
sudo apt-get install mysql-client

2.Windows安装MySQL
    1.下载MySQL安装包
        mysql-installer-5.7***.msi
    2.按照教程安装

3.Mac 安装MySQL
    1.下载安装包
    2.设置环境变量
        cd 
        vi  .bash_profile
        在末尾添加:PATH="$PATH":/usr/local/mysql/bin
    3.终端:source .bash_profile
    4.登录测试: mysql -uroot -p密码

3.启动和连接MySQL服务
1.启动服务端
sudo /etc/init.d/mysql start
sudo /etc/init.d/mysql status | stop | restart
2.客户端连接
mysql -h主机地址 -u用户名 -p密码
mysql -hlocalhost -uroot -p123456
mysql -uroot -p
show databases;

4.基本SQL命令:
1.SQL命令使用规则
1.每条命令必须以;结尾
2.SQL命令不区分字谜大小写
3.使用\c 来终止当前命令执行

2.库的管理
    1.库基本操作
        1.查看已有库(下列四个库严禁删除)
            +--------------------+
            | information_schema |
            | mysql              |
            | performance_schema |
            | sys                |
            +--------------------+
        2.创建库
            create database 库名;
            create database 库名    character set utf8;
        3.查看创建库的语句   
            show create database 库名;

        4.查看当前所在库
            select database();

        5切换库
            use 库名;

        6.查看库中已有表:
            show tables;

        7删除库
            drop database 库名;

2.库的命名规则
1.数字,字母,_,但不能使用纯数字
2.库名区分字母大小写
3.不能使用特殊字符和mysql关键字

3.表的管理
1.表的基本操作
1.创建表
create table 表名(
字段名1 数据类型,
字段名2 数据类型) character set utf8;

    2.查看创建表的语句(字符集,存储引擎)
        show create table 表名;
    
    3查看表结构
        desc 表名;

    4.删除表
        drop table 表名;

4.注意
1.所有数据都是以文件形式存放在数据库目录下
2.数据库目录: /var/lib/mysql

    tarena@tedu:~$ sudo -i
    [sudo] tarena 的密码: 
    
    root@tedu:~# cd /var/lib/mysql
    root@tedu:/var/lib/mysql# ls

5.表记录管理
1.插入表记录(insert)
1.insert into 表名 values(值1),(值2),()…;
t1 : id name score
insert into ti values
(1,’“金毛狮王”,80),(2,“白眉鹰王”,60)

    2.insert into 表名(字段1,...) values(值1),(值2),...;

2.查询表记录(select)
    1. select * from 表名 where 条件;
    2. select 字段1,字段2 from 表名 where 条件;

练习:
1重启一下mysql服务,并登录
2查看所有库
3创建库studb,指定utd8
4在studb中创建tab1,指定utf8,字段有:id name age
5查看tab1表结构
6在tab1中插入2条记录
7在tab1中id 和name 两个字段插入2条记录
insert into tab1(id,name) values
(3,“周芷若”),
(4,“金花”)
8查看tab1中所有记录
9查看tab1中年龄大于20的学生的姓名和年龄

5.更改库的默认字符集(Ubuntu)
1方法(更改配置文件)
2.步骤
1.sudo -i
2.cd/etc/mysql/mysql.conf.d
3.备份: cp mysqld.cnf mysqld.cnf.bak
4.subl mysqld.cnf
[mysqld]
character_set_server=utf8
5.重启mysql服务
/etc/init.d/mysql restart
6.进入数据库验证

Mac本: /etc/my.cnf
[mysqld]
character_set_server=utf8

  1. 客户端把数据存储到数据库服务器上的过程
    1.连接到数据库:mysql -uroot -p123456
    2.选择库: use 库名;
    3.修改表: insert/updata…
    4.断开与数据库连接: exit | quit | |q

7.数据类型
1.数值类型
1.整型
1.int 大整型(4个字节)
0~2**32-1(42亿多)
2.tinyint 微小整型(1个字节)
1.有符号(signed默认):-128-127
2.无符号(unsigned):0~255
age tinyint unsigned
3.smallint 小整型(2个字节)
4.bigint 极大整型(8个字节)
2.浮点型
1.float 浮点型(4个字节,最多显示7个有效位)
1.用法
score float(m,n), m->总位数  n->小数位的位数
float(5,2) : -999.99-999.99

        2.double(m,n)   
        3.decimal(m,n) 整数和小数分开存储
            将9的倍数封装成4个字节
            存储空间:
                余数    字节
                0       0
                1-2     1
                3-4     2
                5-6     3
                7-8     4
            decimal (19,9)
            整数部分 10/9=1余1    4+1=5个字节
            小数部分  9/9=1        4+0=4字节



2.字符类型
    1.char(定长,存储效率高,占空间)
        宽度取值范围:1-255
    2.varchar(变长,效率低,节省空间)
        宽度取值范围:1-65535
    3.text/longtext(4G)/blob/longblob
    4.char和varchar的特点
        1.char :浪费存储空间,性能高
        2.varchar:节省存储空间,性能低
3.枚举类型
    1.单选: enum(值1,值2,值3...)
    2.多选: set(值1,值2,值3...)
        ##插入记录时:"girl,study,mysql"

4.日期时间类型
    1.date: "yyyy-mm-dd"
    2.time: "hh:mm:ss"
    3.datetime:  "yyyy-mm-dd hh:mm:ss"
    4.timestamp: "yyyy-mm-dd hh:mm:ss"
    5.注意:
        1.datetime:不给值默认返回null
        2.timestamp:不给值默认返回系统当前时间
    6.实例:
        1.创建用户充值表
        create table t7(id int, username varchar(20),password varchar(20),money int,
                            birthday date, cztime timestamp)

3时间日期函数
1.now() :返回当前时间
2.curdate(): 返回日期
3.curtime(): 返回时间
4.year(date):取出年份
5.date(date):取出日期
6.time(date):取出时间

练习:
1.创建库studb2,并在库中创建表stuinfo id 大整型
name 字符类型,宽度15
age 微小整型,不能输入负数
height浮点型,小数为2位
money浮点型,x小数位2位(decimal)
2查看表结构
3.在表中插入1条记录
4.查询所有表记录
5在表中id name插入2条记录
6查询所有学生的id和姓名

4.日期时间运算
1语法格式
select * from 表名 where 字段名 运算符 (时间-interval 时间间隔单位);

    时间间隔单位:
        1 day | 2 hour | 3 year | 3 month 
2示例:
    1查询1天以内的充值记录
    select * from t7 where cztime >=(now()-interval 1 day);

    2.查询1年以前的充值记录
    select * from t7 where cztime<=(now()-interval 1 year);
    3.查询1天以前,3天以内的充值记录
    select * from t7 where cztime>= (now()-interval 1day ) and cztime<=(now()-interval 3 day);

select * from t7 where cztime>=“2018-05-01 12:00:00” and cztime <= “2018-10-08 12:00:00”;
select * from t7 where date(cztime)>=“2018-10-01” and date(cztime)<=“2018-10-31”;
作业:
1.mysql中的数据类型有____,,,____
2.关系型数据库的核心内容是关系即二维表
3简述客户端把数据存储到数据库服务器上的过程
4char和varchar的区别,各自的特点
5操作
1.创建库 school
2.在库中创建表students,用来存储学生信息id ,name(变长) class(定长)
phonenumber(定长),age(不能为负) ,成绩(浮点)
3.查看students的表结构
4.在表中随意插入3条记录
5在表中的姓名,成绩,2个字段插入3条记录
6查看所有学生的姓名和成绩
7查看成绩及格(>60)的学生姓名和成绩

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值