MySQL入门

MySQL入门

数据库简介:

  • 用途:用于存储生活的几乎一切数据,如:身份、住房、车票、网站、...

  • 概念:数据库服务器、数据库、数据表、一行数据(一条)、一列数据(字段)

  • 分类:

    • 关系型数据库:mysql、oracle、SQL server、...

    • 非关系型数据库:Redis、MongoDB、...

  • 发展:口述

  • SQL:Structured Query Language,结构化查询语言

  • SQL分类:

    • 数据定义语言:DDL

    • 数据操作语言:DML

    • 数据查询语言:DQL

    • 数据控制语言:DCL

    • 数据事务语言:DTL

MySQL(ubuntu)安装:

  • 安装:sudo apt-get install mysql-server

    • 若安装出现系统服务问题,很可能是自己添加系统服务的问题,移除即可

  • 安全配置:sudo mysql_secure_installation

    • 按照提示,一路进行下去

    • 设置支持远程连接,为后面做准备

  • 连接测试:mysql -h host -u user -p

    • -h:指定主机,localhost/127.0.0.1表示本机,本机可以省略

    • -u:指定用户,默认只有root用户

    • -p:指定密码,输入密码时要与登录分开,以防不测

    • 示例:mysql [-hlocalhost] -uroot -p,然后根据提示输入密码

      • 端口:3306

      • 退出:\h 或 help;

      • 说明:所有的命令都是以';'结尾

数据定义语言(DDL)

  • 查看库:show databases;,会显示数据库服务器上所有的数据库

  • 创建库:create database test;,创建数据库test

  • 删除库:drop database test;,删除数据库test

  • 选择库:use test;,选择数据库test

    • 查看当前选中数据库:

      • show tables;

      • select database();

  • 查看表:show tables;,查看当前选中数据库中的数据表

  • 创建表:create table user(username varchar(20), password char(32));

  • 查看表结构:desc user;

  • 删除表:drop table user;

  • 查看创建方式:

    • 库:show create database test;

    • 表:show create table user;

  • 修改字符集:

    • 创建时指定:在创建表的语句后指定字符集。

    • 修改配置文件:sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf,在[mysqld]后面添加

      • character-set-server=utf8

      • 重启服务:sudo service mysql restart

      • 说明:以后再创建的库中的表默认字符集就是utf8

  • 修改字段:alter table user modify username char(30);,不能修改名字

  • 添加字段:

    • 默认(最后)添加:alter table user add age int(3);

    • 在指定字段后添加:alter table user add email varchar(60) after password;

    • 在最开始出添加:alter table user add id int(11) first;

  • 删除字段:alter table user drop age;

  • 修改字段名称:alter table user change email em char(32);

  • 修改位置及名称:add/change/modify

    • alter table user modify em char(32) first;

  • 修改表名:alter table user rename new_user;

数据类型

  • 整型:tinyint(1个字节)、smallint(2个字节)、mediumint(3个字节)、int(4个字节)、bigint(8个字节)

  • 浮点类型:

    • float(m, d),单精度浮点数,4个字节,m表示总位数,d表示小数位数

    • double(m, d),双精度浮点数,8个字节,m表示总位数,d表示小数位数

    • decimal(m, d),以字符串的形式存储浮点数,用于金融领域等要求严格的场景

  • 字符类型:

    • char:定长字符串,0~255个字节

    • varchar:变长字符串,0~65535个字节

  • 时间日期:

    • date:日期,格式:2018-04-16

    • time:时间,格式:15:36:30

    • datetime:日期时间,格式:2018-04-16 15:37:38

    • timestamp:时间戳

    • year:年,只占1个字节,年份范围:1901~2155

  • 符合类型:

    • set:集合类型,格式:set(s1, s2, ..., s63),最多63种可能

    • enum:枚举类型,格式:enum(e1,e2, ... ,e65535),最多65535种可能

  • 字段修饰:

    • unsigned:无符号数

    • zerofill:高位0填充,防止出现负数

    • auto_increment:自动增加(1),用于整数,经常与主键结合使用

    • default:设置默认值

    • not null:不能为空

  • 字符集及存储引擎

    • 查看支持的字符集:show character set;,我们通常只使用utf8,不能书写成utf-8

    • 查看支持的存储引擎:show engines;

      • 常用存储引擎:MyISAM和InnoDB

  • 索引:

    • 说明:简单理解,就是一本书最前面的目录,虽然可以提高读取效率,单并非越多越好。

    • 分类:

      • 普通索引(index):最基本的索引

      • 唯一索引(unique):修饰的字段不能重复

      • 主键索引(primary key):是一种特殊的唯一索引,一张表中只能有一个字段设置

      • 全文索引(fulltext):多全局数据添加索引。

    • 示例:

      alter table user add index(em);             # 给em字段添加普通索引
      alter table user add unique(username); # 给username字段添加唯一索引
      alter table user add primary key(id); # 将id设置为主键索引

      alter table user drop index em; # 删除em字段的普通索引

      alter table 表名add fulltext(字段);

  • 很多选项都可在创建表时指定,如:

    create table user(
    id int auto_increment,
    name varchar(20),
    primary key(id),
    unique(name)
    )engine=innodb default charset=utf8;

  

posted @ 2018-04-17 09:34  pythonsonline  阅读(278)  评论(0编辑  收藏  举报