学习笔记☞ MySQL(一)

1、MySQL概述

    1、什么是数据库

        数据库是一个存储数据的仓库

    2、都有哪些公司在用数据库

        金融机构、游戏网站、购物网站、论坛网站 ……

    3、提供数据库服务的软件

        1)软件分类
            MySQL、SQL_Server、Oracle、Mariadb、DB2、MongoDB
        2)在生产环境中如何选择使用哪个数据库
            *是否开源
                开源软件:MySQL、Mariadb、MongoDB
                商业软件:Oracle、DB2、SQL_Server
            *是否跨平台
                不跨平台:
                    SQL_Server (只能在Windows上使用)
                跨平台:
                    MySQL、Oracle、Mariadb、DB2、MongoDB
            *公司的类型
                商业软件:
                    政府部门、金融机构
                开源软件:
                    游戏网站、论坛网站、购物网站、中小型企业 ……

    4、MySQL的特点

        1、关系型数据库
            1、关系型数据库的特点
                1、数据是以行和列的形式存储的
                2、这一系列的行和列称为表
                3、表中的每一行叫一条记录
                4、表中的每一列叫一个字段
                5、表和表之间的逻辑关联叫关系
            2、示例:

                1、关系型数据库存储

                  表1、学生信息表
                    姓名   年龄   班级
                    牛郎   25   AID1803
                    织女   23   AID1801
                  表2、班级信息表
                    班级          班主任
                    AID1803      卢大大
                    AID1801      孙大大

                2、非关系型数据库中存储

                  {'姓名':'牛郎','年龄':25,'班级':'AID1803','班主任':'卢大大'}
                  {'姓名':'织女','年龄':23,'班级':'AID1801'}
        2、跨平台
            可以在Unix、Linux、Windows上运行数据库服务
        3、支持多种语言
            Python、Java、PHP ……

2、MySQL的安装

    1、Ubuntu安装MySQL服务 

         主流的Linux操作系统:Redhat(红帽)、CentOS、Ubuntu

        1、安装服务端
            sudo apt-get install mysql-server
        2、安装客户端
            sudo apt-get install mysql-slient

    2、Windows安装MySQL服务

        1、下载MySQL安装包(Windows)
            mysql-installer***5.7**.msi
        2、双击、按照教程安装即可

3、启动和链接MySQL服务

    1、服务端启动

        1、查看MySQL服务的状态
            sudo /etc/init.d/mysql status
        2、停止,启动,重启MySQL服务
            sudo /etc/init.d/mysql stop
            sudo /etc/init.d/mysql start
            sudo /etc/init.d/mysql restart

    2、客户端启动

        1、命令格式
            mysql -h主机地址 -u用户名 -p密码
            mysql -hlocalhost -uroot -p123456   本地登录
        2、本地链接可以省略-h选项
            mysql -u用户名 -p密码
            mysql -uroot -p123456   本地登录

4、基本SQL命令

    1、SQL命令的使用规则

        1、每条SQL命令必须以;结尾
        2、SQL命令不取反字母大小写
        3、使用\C来终止命令的执行

    2、库的管理

        1、库的基本操作
            1、查看已有的库
                show databases;
            2、创建库(指定默认字符集)
                create database 库名 default charset=utf8;
            3、查看创建库的语句
                show create database 库名;
            4、查看当前所在库
                select database();
            5、切换库
                use 库名;
            6、查看库中已有的表
                show tables;
            7、删除库
                drop database 库名;
        2、库名的命名规则
            1、可以使用数字、字母、下划线_,但是不能使用纯数字
            2、库名区分大小写
            3、库名具有唯一性
            4、不能使用特殊字符和MySQL关键字
        3、练习
1、创建库AID1803db,指定字符集为utf8
create database AID1803db default charset=utf8;               
2、切换到该库AID1803db
 use AID1803db;
3、查看当前所在库
select database();    
4、查看库中已有的表
show tables;
5、查看AID1803db的字符集
show create database AID1803db;
 6、删除AID1803db
drop database AID1803db; 

    3、表的管理

        1、表的基本操作
            1、创建表(指定字符集)
                create table 表名(
                字段名 数据类型,
                字段名 数据类型,
                ……
                ) default charset=utf8;
            2、查看创建表的语句(字符集)
                show create table 表名;
            3、查看表结构
                desc 表名;
            4、删除表
                drop table 表名;
        2、表的命名规则(同库的命名规则)
        3、练习
1、创建库 python
create database python;
2、在库python中创建表py_mysql,指定字符集utf8
    表中字段有id int 和 name char(20)两个字段               
use python;
create table py_mysql(
id int,
name char(20)
) default charset=utf8;
3、查看表py_mysql的字符集以及存储引擎
show create table py_mysql;
4、查看py_mysql的表结构
desc py_mysql;
5、删除表py_mysql
 drop table py_mysql;
4、注意           

1、所有的数据都是以文件的形式存放在数据库的目录下

、2、数据库目录:/var/lib/mysql
5、更改库、表默认字符集
    1、方法
        通过更改MySQL服务的配置文件来实现
    2、步骤
        1、获取root权限
            sudo -i
        2、切换到配置文件所在路径
            cd /etc/mysql/mysql.conf.d(ubuntu)
        3、先备份
            cp mysqld.cnf mysqld.cnf.bak
            cp -p mysqld.cnf mysqld.cnf.bak
            (-p选项连同原文件权限一起复制)
        4、用vi打开mysqld.cnf,在
            [mysqld]
            character_set_server = utf8  保存退出
        5、重启mysql服务
            /etc/init.d/mysql restart   重启
            /etc/init.d/mysql reload    重载配置文件
        6、退出超级用户 exit
        7、登录到MySQL验证
            mysql -uroot -p123456
6、表记录管理
    1、在表中插入记录
        1、insert into 表名 values(值1),(值2),..., (值n);
        2、insert into 表名(字段名列表) values(值1),(值2),..., (值n);
    2、查询表记录
        1、select * from 表名;      *表示查看所有字段
        2、select 字段名1,字段名2,...,字段名n from 表名;
    3、练习:
1、查看所有的库
show databases;
 2、创建新库 stu1
create database stu1;
3、在库stu1中创建表students,字段要求如下
            1、id int
            2、name char(15)
            3、age int
            4、address char(20)
use stu1;
create table students(
id int,
name char(15),
age int ,
address char(20)
);
4、查看表students的表结构
show create table students;
 5、在表中插入一条记录
insert into students values(1,'赵',22,'中国');
6、在表中一次性插入两条记录
 insert into students values(2,'Tom',23,'USA'),(3,'Lucy',20,'USA');
7、查看所有表记录
select * from students;
8、删除表 students
drop table students;
9、删除库 stu1
drop database stu1;       
7、客户端把数据存储到数据库服务器上的过程
    1、链接到数据库服务器 mysql -uroot -p123456
    2、选择一个库 :use 库名;
    3、创建表或修改表:create ...
    4、断开与数据库服务器的链接:exit 或 quit 或 \q
8、名词介绍
    1、DB (database)
        DB就是数据库,存储数据的仓库
    2、DBMS (database management system)
        数据库管理系统
        管理数据库的软件:MySQL、Oracle、MongoDB ……
    3、DBS (database system)
        数据库系统
        DBS = DB(存储) + DBMS(数据库软件) + 数据库的应用(财务管理系统,人事管理系统) + 用户
9、数据类型
    1、数值类型(有符号signed(默认)和无符号unsigned)
        1、整形
            1、int   大整形(4个字节)
                取值范围:0 ~ 2**32 - 1 (42亿多)
            2、tinyint   微小整形(1个字节)
                1、有符号(signed默认):-128 ~ 127
                2、无符号(unsigned):0 ~ 255
            3、smallint  小整形(2个字节)
                取值范围:0 ~ 65535
            4、bigint    极大整形(8个字节)
                取值范围:0 ~ 2**64 - 1
        2、浮点型
            1、float(4个字节,最多显示7个有效位,总位数不能超过7位)
                1、用法
                    字段名 float(m, n)  m:表示总位数 n:小数位数
                    salary float(5, 2)   取值范围:   -999.99 ~ 999.99
                2、注意
                    1、浮点数插入整数时会自动补全小数位位数
                    2、小数位如果多于指定位的位数,会对指定位的下一位进行四舍五入
                    float(5, 2) -> 23.128 ->23.13
            2、double(8个字节,最多显示15个有效位)
                1、用法(同float)
                    字段名 double(m, n)
            3、decimal(M+2个字节,最多显示28个有效位)
                1、用法
                    字段名 decimal(28,5)
    2、字符类型
        1、char(定长)
            1、取值范围:1~255
            2、不给定宽度默认为1
        2、varchar(变长)
            1、取值范围:1~65535
            2、注意
                1、varchar没有默认宽度,必须给定一个宽度范围
                    name varchar(20)
        3、char 和 varchar 的特点
            1、char
                浪费存储空间,但是性能高
            2、varchar
                节省存储空间,但是性能低
        4、练习
1、创建一个表stuinfo,字段要求如下:
      学号: id 大整形
      姓名: name变长,宽度为15
      班级:class 定长,宽度为7
      年龄:age 微小整形,要求不能输入负数
      身高:height 浮点型,小数位为两位
create table stuinfo(
id int,
name varchar(15),
class char(7),
age tinyint nusigned,
height float(5,2)
);
2、查看表结构
desc stuinfo;
3、在表stuinfo中插入2条记录(行)
insert into stuinfo values
(1,'赵','aid1803',20,1.88),
(2,'钱','aid1888',22,1);
4、查询所有表记录
select * from stuinfo;
5、查询所有学生的姓名,年龄,身高
select name,age,height from stuinfo;
    3、枚举类型
        1、定义
            字段值只能在列举的范围内选择
        2、enum(...)单选(最多有65535个不同的值)
            字段名 enum(值1, 值2, ..., 值n)
        3、set(...)多选(最多有64个不同的值)
            字段名 set(值1, 值2, ..., 值n)
            插入记录时 'boy,MySQL,Python'

    4、日期时间类型
        1、year:年 YYYY
        2、date:日期 YYYYMMDD
        3、time:时间 HHMMSS
        4、datetime: 日期时间 YYYYMMDDHHMMSS
        5、timestamp:日期时间 YYYYMMDDHHMMSS
        6、注意
            1、插入记录时,datetime字段不给值默认返回NULL
            2、插入记录时,timestamp字段不给值默认返回系统当前时间

10、表字段的操作
    1、语法
        alter table 表名 执行动作;
        1、添加字段
            alter table 表名 add 字段名 数据类型;(默认最后一列)
            alter table 表名 add 字段名 数据类型 first;(添加在第一列)
            alter table 表名 add 字段名 数据类型 after 字段名;(添加到字段名后)
        2、删除一个字段
            alter table 表名 drop 字段名;
        3、修改字段数据类型
            alter table 表名 modify 字段名 新数据类型;
            # 修改数据类型时会受到表中原有数据类型的限制
        4、修改字段名
            alter table 表名 change 旧字段名 新字段名 数据类型;
        5、修改表名
            alter table 表名 rename 新表名

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值