zoukankan      html  css  js  c++  java
  • MySQL基础

    这篇博客主要是讲一下常见的MySQL的安装。和基本操作。适合全然没有MySQL知识可是又急需一些MySQL知识的童靴作为高速入门使用。

    一.背景与安装

    背景不用多说了,大家都懂得。

    直接说在Ubuntu以下的安装吧。事实上也是非常easy。

    这里不搞复杂的源代码安装。就依次输入以下非常easy的命令安装就够了。

    sudo apt-get install mysql-server
    sudo apt isntall mysql-client
    sudo apt install libmysqlclient-dev

    中间会有弹出设置password的界面,设置password就是了。

    然后验证一下是不是安装上了MySQL,这里能够输入以下的命令(这个命令以下会解释)来登录mysql

    mysql -u root -p

    然后输入你的password,发现登录上去的界面。说明已经成功安装了。


    这里写图片描写叙述

    安装可视化界面

    sudo apt-get install mysql-workbench

    成功安装之后的第一件事情,就是调整字符集为utf8,毕竟身处中文地区,不希望有一些不想见到的乱码问题。
    刚刚装好的mysql的配置文件地址在/etc/mysql/my.cnf,用随意一个文本文件打开他。复制以下这几句到文件里去(例如以下图)。

    [mysqld]
    init_connect=’SET collation_connection = utf8_unicode_ci’
    init_connect=’SET NAMES utf8’
    character-set-server=utf8
    collation-server=utf8_unicode_ci
    skip-character-set-client-handshake

    这里写图片描写叙述

    保存好之后。又一次启动mysql服务,

    sudo service mysql restart

    登录mysql(前面刚刚讲),输入

    show variables like ‘%character%’;

    这里写图片描写叙述
    如上图,说明改动字符集成功了。

    二.经常使用命令

    1.连接和退出MySQL

    连接既能够本地连接,也能够远程连接。

    比方上面验证MySQL是不是已经装上去的时候,就登录过MySQL,事实上这个也算是一种本地连接。

    那么连接MySQL的一般格式例如以下。

    mysql -h(主机地址) -u(username) -p(password)

    例1:连接本地MySQL

    mysql -u root -p

    事实上这里你就应该能够知道。-u后面是名为root的username,事实上mysql为超级管理员默认了root的username,password就是一開始安装mysql的时候设置的password。所以这个命令还是挺好理解的。

    2.创建和删除数据库

    要是一開始没有不论什么的数据库的话,创建数据库肯定是最主要的一步啦。或者你想创建一个新的数据库的话。

    创建数据库也非常easy。以下的命令即可。
    创建:

    create database databasename;(数据库名字)

    删除:

    drop database databasename;(数据库名字)

    比方我想创建一个名字叫做cat的数据库,就照搬上面的创建模式即可了。

    (。标点不要掉了)

    create database cat;

    这里写图片描写叙述

    相同的,删除这个cat数据库也是相似的写法。

    3.查看数据库信息和使用数据库

    经过上面的创建的过程,你应该创建了一个数据库了,那么怎么查看当前用户拥有权限的数据库呢?就是show系列的命令啦。

    show databases;

    这里写图片描写叙述
    能够看到上面图中就有刚刚创建的cat这个名称的数据库啦。

    接下来就是使用某个数据库,命令也非常easy

    use name;

    非常好理解,中文翻译过来就是使用名叫xx数据库,有一点要注意,就是用了这个命令之后,接下来的全部的操作都是在这个数据库以下了。

    直到关闭MySQL连接或者切换到另外一个数据库之前。比方以下以cat这个数据库为样例。

    use cat;

    这里写图片描写叙述
    从如今開始。接下来你做的操作都是在cat这个数据库以下。所以要清楚。

    4.MySQL经常使用类型

    编程语言一样。MySQL也是有经常使用的数据类型的。熟悉其经常使用数据类型,是之后创建表和其它操作的基础。
    MySQL的数据类型整体上可分为三类:数字日期时间和字符串类型。

    数字数据类型

    MySQL使用全部标准的ANSI SQL数字数据类型
    INT : 正常大小的整数,能够带符号。

    假设是有符号的,它同意的范围是从-2147483648到2147483647。假设是无符号,同意的范围是从0到4294967295。 能够指定多达11位的宽度。

    TINYINT: 一个非常小的整数。能够带符号。假设是有符号,它同意的范围是从-128到127。

    假设是无符号,同意的范围是从0到255。能够指定多达4位数的宽度。

    SMALLINT - 一个小的整数。能够带符号。假设有符号,同意范围为-32768至32767。假设无符号。同意的范围是从0到65535。能够指定最多5位的宽度。

    MEDIUMINT - 一个中等大小的整数,能够带符号。

    假设有符号,同意范围为-8388608至8388607。 假设无符号,同意的范围是从0到16777215,能够指定最多9位的宽度。

    BIGINT - 一个大的整数。能够带符号。假设有符号,同意范围为-9223372036854775808到9223372036854775807。假设无符号。同意的范围是从0到18446744073709551615. 能够指定最多20位的宽度。

    FLOAT(M,D) - 不能使用无符号的浮点数字。

    能够定义显示长度(M)和小数位数(D)。这没必要的,而且默觉得10,2。

    当中2是小数的位数,10是数字(包括小数)的总数。小数精度能够到24个浮点。

    DOUBLE(M,D) - 不能使用无符号的双精度浮点数。能够定义显示长度(M)和小数位数(D)。 这没必要的,默觉得16,4,当中4是小数的位数。小数精度能够达到53位的DOUBLE。 REAL是DOUBLE同义词。

    DECIMAL(M,D) - 非压缩浮点数不能是无符号的。在解包小数,每一个小数相应于一个字节。定义显示长度(M)和小数(D)的数量是必需的。 NUMERIC是DECIMAL的同义词。

    日期和时间类型

    DATE - 以YYYY-MM-DD格式的日期。在1000-01-01和9999-12-31之间。 比如,1973年12月30日将被存储为1973-12-30。

    DATETIME - 日期和时间组合以YYYY-MM-DD HH:MM:SS格式,在1000-01-01 00:00:00 到9999-12-31 23:59:59之间。比如,1973年12月30日下午3:30,会被存储为1973-12-30 15:30:00。

    TIMESTAMP - 1970年1月1日午夜之间的时间戳,到2037的某个时候。这看起来像前面的DATETIME格式,无需仅仅是数字之间的连字符; 1973年12月30日下午3点30分将被存储为19731230153000(YYYYMMDDHHMMSS)。

    TIME - 存储时间在HH:MM:SS格式。

    YEAR(M) - 以2位或4位数字格式来存储年份。假设长度指定为2(比如YEAR(2)),年份就能够为1970至2069(70〜69)。

    假设长度指定为4,年份范围是1901-2155,默认长度为4。

    字符串类型

    CHAR(M) - 固定长度的字符串是以长度为1到255之间个字符长度(比如:CHAR(5)),存储右空格填充到指定的长度。 限定长度没必要的,它会默觉得1。

    VARCHAR(M) - 可变长度的字符串是以长度为1到255之间字符数(高版本号的MySQL超过255); 比如: VARCHAR(25). 创建VARCHAR类型字段时,必须定义长度。

    BLOB 或 TEXT - 字段的最大长度是65535个字符。

    BLOB是“二进制大对象”。并用来存储大的二进制数据,如图像或其它类型的文件。定义为TEXT文本字段还持有大量的数据; 两者之间的差别是,排序和比較上存储的数据,BLOB大写和小写敏感。而TEXT字段不区分大写和小写。不用指定BLOB或TEXT的长度。

    TINYBLOB 或 TINYTEXT - BLOB或TEXT列用255个字符的最大长度。不指定TINYBLOB或TINYTEXT的长度。

    MEDIUMBLOB 或 MEDIUMTEXT - BLOB或TEXT列具有16777215字符的最大长度。不指定MEDIUMBLOB或MEDIUMTEXT的长度。

    LONGBLOB 或 LONGTEXT - BLOB或TEXT列具有4294967295字符的最大长度。不指定LONGBLOB或LONGTEXT的长度。

    ENUM - 枚举,这是一个奇特的术语列表。当定义一个ENUM,要创建它的值的列表,这些是必须用于选择的项(也能够是NULL)。比如,假设想要字段包括“A”或“B”或“C”。那么能够定义为ENUM为 ENUM(“A”,“B”,“C”)也仅仅有这些值(或NULL)才干用来填充这个字段。

    5.创建和删除表

    有了上面对于MySQL基本数据类型的知识之后,就能够開始创建表了。首先大概的说一下创建表的基本格式。

    CREATE TABLE table_name (column_name column_type);

    删除表就用drop命令即可了。

    DROP TABLE table_name ;

    举样例时间:
    须要创建一个表,表上记录的是班上学生的一些信息,学号,姓名,年龄。出生日期,身高,期末成绩这几项。

    就用之前新建的cat数据库来存放.
    这里写图片描写叙述

    解释:

    首先是学号,这里用id来表示学号,INT类型,NOT NULL 表示非空。
    名字。使用可变字符存储,VARCHAR
    最后非常重要的一点就是指定主键。这里指定id作为主键

    这里能够用DESCRIBE命令来查看表的结构

    DESCRIBE 表名称;

    这里写图片描写叙述

    6.插入数据到表中

    如今我们已经创建了一个表student_info,可是这个表是一个空表。所以,须要插入数据到这个表里面去。


    一般的插入格式:

    INSERT INTO table_name ( field1, field2,…fieldN ) VALUES ( value1, value2,…valueN );

    例:
    这里写图片描写叙述
    在这里,插入了一个id为123,name为“leo”,年龄为24,生日为“1993-04-06”(注意是字符串形式)。。

    的记录。

    7.查询和删除记录语句

    如今表里面已经有记录了,接下来的任务就是怎么查看表中的东西呢?那就是SELECT命令了,他的一般使用方法是:

    SELECT field1, field2,…fieldN table_name1, table_name2…
    [WHERE condition1 [AND [OR]] condition2…..

    删除记录:

    DELETE FROM table_name [WHERE Clause]

    这里要注意,假设WHERE子句没有指定,则MySQL表中的全部记录将被删除。

    这里写图片描写叙述
    上面这个样例是选择表中id=123的全部字段,由于表中数据不够,临时无法进行更加复杂的选择操作,以后会尽量选择更加复杂的操作。这里熟悉主要的使用方式即可了。

    8.更新操作

    在数据库中进行数据的更新是非经常见的。由于数据总不能一辈子不变吧,更新的操作的一般形式为:

    UPDATE table_name SET field1=new-value1, field2=new-value2 [WHERE Clause]

    上面的命令。从字面的意思上就非常好理解了。

    非常easy。


    这里写图片描写叙述
    在这里,就把student_info中的age和birthday两个字段的信息改了。结果例如以下:
    这里写图片描写叙述

    9.Alter命令

    http://www.yiibai.com/mysql/mysql_alter_command.html

    http://www.python-requests.org/en/master/

  • 相关阅读:
    高精度加法和减法。加法还好,减法花了不少时间。
    整数拆分
    二叉搜索树的中位数
    基本有序数组的排序
    log4j手册
    mysql技巧
    vim配置文件
    regex for python like preg_match of php
    字符串按word反转
    the little redis 阅读笔记
  • 原文地址:https://www.cnblogs.com/yjbjingcha/p/7308969.html
Copyright © 2011-2022 走看看