Mysql database

MySQL installation
1. Installation environment: Ubuntu system.
Install MySQL service on Ubuntu

1.1. Install the server: sudo apt-get install mysql-server
1.2 Install the client: 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

Basic SQL Commands

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

library management

                                        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 库名;

library naming conventions

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

Exercise**
1. Create the library AID01, specify the character set as utf8
2. Enter the library AID01
3. Check the current library
4. Check the existing table in the library
5. Check the default character set of AID01 (the statement to create the library)
6 , delete library AID01

table management

    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. Change the default character set of the library and table
1. The method is
realized by changing the MySQL configuration file.
2. Step
cp file name new file name
vi file name
a -> write content
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. The process that the client stores data on the database server
1. Connect to the database server mysql -uroot -p123456
2. Select a library use library name
3. Create a table or modify a table
4. Disconnect from the database server exit; | quit; | \q;

type of data

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字段不给值默认返回系统当前时间

Operation:

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

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=324515871&siteId=291194637