Mysql数据库

MySQL安装
1、安装环境:Ubuntu系统.
Ubuntu上安装MySQL服务

1.1.安装服务端:sudo apt-get install mysql-server
1.2安装客户端:sudo apt-get install mysql-client

2.Windows上安装MySQL服务
                    2.1:下载MySQL安装包(windows)
                                mysql-installer***5.7.***.msi
                2.2、双击、按照教程安装即可
                    2.3:启动和连接MySQL服务

                    2.3.1:服务端启动
                    3.查看MySQL服务的状态:sudo /etc/init.d/mysql status
                    4.停止MySQL服务:sudo /etc/init.d/mysql stop
                    5.启动MySQL服务:sudo /etc/init.d/mysql start
                    6.重启MySQL服务:sudo /etc/init.d/mysql restart
3:客户端连接
    3.1:命令格式:mysql -h主机地址 -u用户名 -p密码      :mysql -hlocalhost -uroot -p123456
    3.2:本地连接可以省略 -h 选项:mysql -uroot -p123456

基本SQL命令

1、SQL命令的使用规则
                            1、每条命令必须以 ; 结尾
                            2、SQL命令不区分字母大小写
                            3、使用 \c 终止SQL命令的执行

库的管理

                                        1、库的基本操作
                                            1、查看已有的库
                                                show databases;
                                            2、创建库(指定字符集,默认为latin1)
                                                create database 库名 default charset=utf8;
                                            3、查看创建库的语句
                                                show create database 库名;
                                            4、查看当前所在库
                                                select database();
                                            5、切换库
                                                use 库名;
                                            6、查看库中已有表
                                                show tables;
                                            7、删除库
                                                drop database 库名;

库的命名规则

        1、可以使用数字、字母、_,但是不能使用纯数字
        2、库名区分字母大小写
        3、库名具有唯一性
        4、不能使用特殊字符和mysql的关键字

练习**
1、创建库AID01,指定字符集为utf8
2、进入到库AID01
3、查看当前所在库
4、查看库中已有的表
5、查看AID01的默认字符集(创建库的语句)
6、删除库AID01

表的管理

    1、表的基本操作
        1、创建表(指定字符集)
            create table 表名(
            字段名 数据类型,
            字段名 数据类型,
            ... ...
            )default charset=utf8;
        2、查看创建表的语句(字符集)
            show create table 表名;
        3、查看表结构
            desc 表名;
        4、删除表
            drop table 表名;
    2、表的命名规则(同库的命名规则)
    3、练习
        1、创建库 Python
        2、在Python库中创建表py_mysql,并指定字符集utf8
           字段有:id、kuname、biaoname,数据类型自己定义
        3、查看创建表py_mysql的语句(字符集)
        4、查看表py_mysql的表结构
    4、注意
        1、所有的数据都是以文件形式存放在数据库目录下
        2、数据库目录:/var/lib/mysql
4、表记录管理
    1、在表中插入记录
        insert into 表名 values(值1),(值2),...,(值N);
    2、查询表记录
        1、select * from 表名 [where 条件];
            select * from t1;
            select * from t1 where name="Green";
        2、select 字段1,字段2,... from 表名 [where 条件];
5、练习
    1、查看已有的库
        show databases;
    2、创建一个新库studb,并切换到该库
        create database studb;
        use studb;
    3、在studb中创建表stuinfo,字段有id name age三个
        create table stuinfo(
        id int,
        name char(20),
        age int);
    4、查看stuinfo的表结构
        desc stuinfo;
    5、在表 stuinfo 中任意插入2条记录
        insert into stuinfo values(1,"Lucy",20),(2,"Bob",23);
    6、查看 stuinfo 中的所有记录
        select * from stuinfo;
    7、删除表 stuinfo
        drop table stuinfo;
    8、删除库 studb
        drop database studb;

5、更改库、表的默认字符集
1、方法
通过更改MySQL配置文件来实现
2、步骤
cp 文件名 新的文件名
vi 文件名
a -> 写内容
esc -> shift + :
wq

    1、获取root用户权限
        sudo -i
    2、cd到mysql配置文件所在路径
        cd /etc/mysql/mysql.conf.d/
    3、把配置文件mysqld.cnf复制一份,mysqld.cnf.bak
        cp mysqld.cnf mysqld.cnf.bak
    4、vi打开配置文件mysqld.cnf
        vi mysqld.cnf
        在[mysqld]下写入如下语句:
        character_set_server=utf8
    5、重启MySQL服务
        sudo /etc/init.d/mysql restart

6、客户端把数据存储到数据库服务器上的过程
1、连接到数据库服务器 mysql -uroot -p123456
2、选择一个库 use 库名
3、创建表或者修改表
4、断开与数据库服务器的连接 exit; | quit; | \q;

数据类型

1、数值类型(有符号signed和无符号unsigned)
    1、整型
        1、int 大整型(4个字节)
            取值范围: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个有效位)
            1、用法
                字段名 float(m,n)  m->总位数,n->小数位位数
                float(5,2) 取值范围? -999.99 ~ 999.99
            2、注意
                1、浮点型插入整数时会自动补全小数位
                2、小数位如果多于指定的位数,会对下一位进行四舍五入
        2、double(8个字节,最多显示15个有效位)
            1、用法
                double(m,n)
        3、decimal(M+2个字节,最多显示28个有效位)
            1、用法
                字段名 decimal(M,D)
2、字符类型
    1、char(定长)
        1、宽度取值范围:1~255
        2、不给定宽度默认宽度为1
    2、varchar(变长)
        1、取值范围:1~65535
        2、注意
            1、varchar没有默认宽度,必须给定一个宽度值
            2、char、varchar使用时都给定宽度,但不要超过各自的范围
        3、char和varchar的特点
            1、char(定长)
                浪费存储空间,但是性能高
            2、varchar(变长)
                节省存储空间,但是性能低
        4、练习
            1、创建一个库STUDB,指定字符集为utf8,并切换到该库
                create database STUDB default charset=utf8;
            2、在STUDB中创建表stuinfo01,字段要求如下:
                姓名name:变长,宽度为20
                班级class:定长,宽度为5
                年龄age:微小整型,要求不能输入负数
                身高height:浮点型,小数位为2位
                use STUDB;
                create table stuinfo01(
                name varchar(20),
                class char(5),
                age tinyint unsigned,
                height float(5,2)
                );
            3、查看表结构
                desc stuinfo01;
            4、在表中一次性插入3条记录
                insert into stuinfo01 values
                ("张飞","AID01",23,175),
                ("关羽","AID01",25,180.3),
                ("郭嘉","AID03",23,170.88);
            5、查询所有的表记录
                select * from stuinfo01;
            6、查询年龄 > 20 的记录
                select * from stuinfo01 where age>20;
3、枚举类型
    1、定义
        字段值只能在列举的范围内去选择
    2、enum 单选(最多有65535个不同的值)
        字段名 enum(值1,值2,...)
    3、set 多选(最多有64个不同的值)
        字段名 set(值1,值2,...)
        插入记录时 "Python,MySQL,Study
4、日期时间类型
    1、year :年 YYYY
    2、date :日期 YYYYMMDD
    3、time :时间 HHMMSS
    4、datetime :日期时间 YYYYMMDDHHMMSS
    5、timestamp:日期时间 YYYYMMDDHHMMSS
        create table t7(
        id int,
        name char(15),
        age tinyint unsigned,
        birth_year year,
        birthday date,
        class time,
        meeting datetime
        );
        datetime和timestamp区别示例:
            create table t8(
            username varchar(15),
            password varchar(15),
            zhuce datetime,
            current timestamp);
    6、注意
        1、插入记录时datetime字段不给值默认返回NULL
        2、插入记录时timestamp字段不给值默认返回系统当前时间

作业:

1、面试题
    1、填空题
        1、MySQL中的数据类型有___、____、____、____
        2、关系型数据库的核心内容是 关系 即 二维表
    2、简答题
        1、简述客户端把数据存储到数据库服务器上的过程
        2、var和varchar的区别及各自的特点
2、操作题
    1、创建一个学校的库school
    2、在school库中创建一张表students来存储学生信息
        字段有:学号、姓名、年龄(不能输入负数)、成绩(浮点)、
        性别(单选)、爱好(多选)、入学时间(不给值默认返回当前时间)
    3、查看students的表结构
    4、在表中随意插入4条记录
    5、查看所有学生信息
    6、查看所有学生信息的姓名和成绩
    7、查看成绩大于60的学生的姓名和成绩

猜你喜欢

转载自blog.51cto.com/12348050/2104551