• mySQL 教程 第2章 安装和介绍mySQL


    设置mySQL字符集

    支持中文的字符集是utf8,该设置可以更改mySQL配置文件进行全局设置,也可以针对数据库设置,也可以针对表设置,也可以针对列设置。字符集更改后新插入的数据生效,对以前不生效。

    练习1:更改MySQL的默认字符集

    直接修改 my.cnf,增加一行内容,然后重启 MySQL,使之全局生效,影响新建的所有数据库。

    default-character-set = utf8

    重启mySQL服务

    root@ubuntuServer:~# /etc/init.d/mysql restart

    查看全局默认字符集

    查看支持的所有字符集

    mysql> show character set;

    <img width="" height="" " src="http://img.ddvip.com/2013/0226/201302260159334210.png"/>

    练习2:为一个数据库指定字符集

    指定数据库字符集后,该数据库下创建的表默认都采用该库指定的字符集。

    1、创建数据库时,指定其字符集

    CREATE DATABASE db DEFAULT CHARSET UTF8;

    2、或者采用 ALTER 语法来转换字段的字符集

    ALTER DATABASE db DEFAULT CHARSET UTF8;

    使用图形管理界面也可以为数据库指定字符集

    练习3:为 一个数据表指定字符集

    指定数据表字符集后,该数据表里的所有字符型字段默认都使用该表指定的字符集。

    1、创建数据表时,指定其字符集

    CREATE TABLE tbl

    (

    ......

    ) ENGINE = MyISAM DEFAULT CHARSET UTF8;

    2、或者采用 ALTER 语法来转换字段的字符集

    ALTER TABLE tbl CONVERT TO CHARACTER SET utf8;

    3、采用其他客户端工具来设定,例如 Navicat/MySQL Front/PhpMyAdmin

    练习4:为一个字段指定字符集

    尽管数据表创建时已经指定默认字符集了,但是该表里面的字段还是可以指定自己的字符集的。

    1、创建数据表时,指定其字符集

    CREATE TABLE tbl

    (

    ......

    name CHAR(20) CHARACTER SET UTF8,

    ......

    ) ENGINE = MyISAM DEFAULT CHARSET UTF8;

    2、或者采用 ALTER 语法来转换字段的字符集

    ALTER TABLE tbl CHANGE name name CHAR(20) CHARACTER SET utf8;

    3、采用其他客户端工具来设定,例如 Navicat/MySQL Front/PhpMyAdmin

    练习5:设定客户端字符集

    为客户端连接指定字符集,最好服务器的字符集一致。

    设置putty字符集

    查看姓名是乱码

    点击“应用”。

    MySQL存储引擎

    MySQL存储引擎概述

    插件式存储引擎是MySQL数据库最重要的特性之一,用户可以根据应用的需要选择如何存储和索引数据库,是否使用事物等。mySQL默认支持多种存储引擎,以适应不同领域的数据库应用需要。用户可以通过选择使用不同的存储引擎提高应用的效率,提供灵活的存储,用户设置可以按照自己的需要定制和使用自己的存储引擎,以实现最大程度的可定制性。

    MySQL常用的存储引擎为MyISAM、InnoDB、MEMORY、MERGE,其中InnoDB提供事务安全表,其他存储引擎都是非事务安全表。

    MyISAM是MySQL的默认存储引擎。MyISAM不支持事务、也不支持外键,但其访问速度快,对事务完整性没有要求。

    InnoDB存储引擎提供了具有提交、回滚和崩溃恢复能力的事务安全。但是比起MyISAM存储引擎,InnoDB写的处理效率差一些并且会占用更多的磁盘空间以保留数据和索引。MySQL支持外键存储引擎只有InnoDB,在创建外键的时候,要求附表必须有对应的索引,子表在创建外键的时候也会自动创建对应的索引。

    存储引擎各自的一些特点

    上面提到的四种存储引擎都有各自适用的环境,这取决于它们独有的一些特征。主要体现在性能、事务、并发控制、参照完整性、缓存、 故障恢复,备份及回存等几个方面

    目前比较普及的存储引擎是MyISAM和InnoDB.而MyISAM又是绝大部分Web应用的首选。MyISAM与InnoDB的主要的不同点在于性能和事务控制上。

    MyISAM是早期ISAM(Indexed Sequential Access Method,我现在用的MySQL5.0已经不支持ISAM了)的扩展实现,ISAM被设计为适合处理读频率远大于写频率这样一种情况,因此ISAM以及后来的MyISAM都没有考虑对事物的支持,不需要事务记录,ISAM的查询效率相当可观,而且内存占用很少。MyISAM在继承了这类优点的同时,与时俱进的提供了大量实用的新特性和相关工具。例如考虑到并发控制,提供了表级锁。而且由于MyISAM是每张表使用各自独立的存储文件(MYD数据文件和MYI索引文件),使得备份及恢复十分方便(拷贝覆盖即可),而且还支持在线恢复。

    所以如果你的应用是不需要事务,不支持外键。处理的只是基本的CRUD(增删改查)操作,那么MyISAM是不二选择。

    1. 设置mysql的默认存储引擎

    编辑my.cnf配置文件,在服务器端配置信息[mysqld]下面添加:

    default-storage-engine = MyISAM

    即可设置mysql数据库的默认引擎为MyISAM

    2. 指定表的存储引擎

    如:

    create table t_innodb( id int(3))

    engine = innodb;

    然后使用

    mysql> show table status like 't_innodb';

    查看表的详细信息。

    3. 修改表的存储引擎

    ALTER TABLE t_name ENGINE = innodb;

    更改默认存储引擎和表的存储引擎

    4. 更改默认存储引擎

    查看默认存储引擎

    更改默认存储引擎

    编辑配置文件

    在[mysql]下添加

    default-storage-engine = InnoDB

    再次查看默认引擎,发现已经被更改

    重启mySQL服务

    5. 更表的存储引擎

    双击某个表,可以更改表的存储引擎

    使用命令更改

    mysql> use schoolDB;

    mysql> alter table TStudent engine=InnoDB;

    使用管理工具更改

    InnoDB存擎的特点

    6. 自动增长列

    自动增长列可以送给插入,但是插入的如果是空或者为0,则实际插入的值是自动增长后的值。

    创建一个表,指定自动增长列,存储引擎innoDB。

    create table au

    (

    studentid int not null auto_increment,

    name varchar(10),

    primary key(studentid)

    )

    engine=innodb CHARACTER SET UTF8,

    插入记录,有空值且自增列也没按顺序

    insert au values (1,'韩立刚'),(3,'韩立辉'),(2,'张京'),(null,'杨帅')

    可以看到自增列的值

    select * from au

    外键约束

    MySQL支持外键存储引擎只有InnoDB,在创建外键的时候,要求父表必须有对应的索引,子表在创建外键的时候也会自动创建索引

    在删除更新父表时,对子表进行相应的操作,包括restrict、cascade、set null和no action

    使用InnoDB存储引擎数据按主键顺序存放

    如果不创建索引,数据以插入顺序存放

    create table au1

    (

    studentid int,

    name varchar(10),

    )

    engine=innodb

    insert au1 values (1,'韩立刚'),(3,'韩立辉'),(2,'张京'),(8,'杨帅'),(6,'杨柳青')

    select * from au1

    给表添加主键

    alter TABLE `au1` ADD PRIMARY KEY (studentid)

    select * from au1

    创建数据库和表

    练习7:创建数据库

    也可使用命令创建数据库

    输入以下命令 create database SchoolDB; 选中执行

    练习8:创建表

    选中刚才创建的数据库 执行创建表的语句

    创建学生表

    create table TStudent

    (StudentID nvarchar(15),

    Sname nvarchar(10),

    sex nchar(1),

    cardID nvarchar(20),

    Birthday datetime,

    Email nvarchar(40),

    Class nvarchar(20),

    enterTime datetime )

    创建课程表

    create table TSubject

    (

    subJectID nvarchar(10),

    subJectName nvarchar(30),

    BookName nvarchar(30),

    Publisher nvarchar(20)

    )

    创建分数表

    create table TScore

    (

    StudentID nvarchar(15),

    subJectID nvarchar(10),

    mark decimal

    )

    练习9:使用图形界面产生表的SQL语句

    使用图形界面可以产生创建、删除、更改对象的SQL语句。

    使用mySQL帮助

    查看mySQL帮助

    练习10:查看帮助

    如果你不知道帮助能够提供什么?输入

    ? contents

    可以查看可用的帮助

    输入? Data definition

    查看创建表的语法

    快速查阅帮助

    在实际应用当中,如果需要快速查看某项语法时,可以使用关键字进行快速查询。比如想知道show命令都能看到些什么东西,可以使用如下命令。

    查看数据库

    查看创建数据库的命令

    查看创建表的命令

     来源: 51cto   作者:韩立刚

  • 相关阅读:
    图书管理系统---基于form组件和modelform改造添加和编辑
    Keepalived和Heartbeat
    SCAN IP 解释
    Configure Active DataGuard and DG BROKER
    Oracle 11gR2
    我在管理工作中積累的九種最重要的領導力 (李開復)
    公募基金公司超融合基础架构与同城灾备建设实践
    Oracle 11g RAC for LINUX rhel 6.X silent install(静默安装)
    11gR2 静默安装RAC 集群和数据库软件
    Setting Up Oracle GoldenGate 12
  • 原文地址:https://www.cnblogs.com/kscnchina/p/2938780.html
Copyright © 2020-2023  润新知