一.MySQL的核心是存储引擎

查看当前MySQL数据库支持的存储引擎语句:show engines;        (结束符:\g \G ; )

查找默认引擎:show variables like '%storage_engine%';

存储引擎:

        1)InnoDB:事务型,行级锁定对高并发有很好的适应能力,但需要确保查询是通过索引完成,数据更新较为频繁。主键要尽可能小,避免全表扫描

        2)MyISAM:不需要事务支持,并发相对较低,数据修改相对较少,以读为主,数据一致性要求不是非常高。尽量采用索引,调整读写优先级,尽量顺序操作

        3)MEMORY:适用于需要很快的读写速度,对数据的安全性要求较低的场景。尽量不使用太大的表

        4)MERGE

        5)其他:BLACKHOLE CSV ARCHIVE

二.字符集

查看所有可使用的字符集语句: show character set;

字符集和校对规则是一对多的关系,两个不同的字符集不能有相同的校对规则,每个字符集有一个默认校对规则。

1)UTF-8:满足应用支持语言的要求

2)GBK:只需要支持一般中文,数据量很大

三.基本语句

1)查询当前服务器的字符集:        show variables like 'character_set_server';

2)   查看当前服务器校对规则:        show  variables like 'collation_server';

3)显示当前数据库字符集和校对规则:         show variables like 'character_set_database';

                                                                        show  variables like 'collation_database';

4)   显示当前的字符集和校对规则:        show create table 表名;

5)在启动时指定字符集gbk:        mysql-character-set-server=gbk;

6)   创建数据库:create database if not exists  数据库名 character set 字符集 collate collation 校对规则;

7)查看数据库详细信息:        show create database 数据库名称;

8)修改数据库名称:        alter database 数据库名 character set 字符集 collate collation 校对规则;

9)删除数据库:        drop database if exists 数据库名;

四.数据类型

1)数值类型:整数类型,浮点数类型和定点数类型

2)日期时间类型:

                               DATE:4个字节,存储日期,不存储时间,默认格式:‘YYYY-MM-DD’,使用current_date()或now(),插入当年计算机系统的日期

                               TIME:3个字节,记录时间,默认格式:‘HH:II:SS’

                               YEAR:1个字节,使用单字节表示年份

                               DATATIME:8个字节,日期与时间的混合类型,默认格式:‘YYYY-MM-DD HH:II:SS’

                               TIMESTAMP:默认格式:’YYYYMMDDHHMMSS‘

3)字符串类型:char和varchar类型,text类型,enum类型,set类型

4)复合类型:enum和set

5)二进制类型:binary,varbinary,bit,tinyblob,blob,mediumblob,longblob

6)算数运算符:+        -        *        /(DIV)        %(MOD)

7)比较运算符

8)逻辑运算符: !(NOT)        &(AND)        || (OR)        XOR

9)位运算符:         |        &        ^        <<        >>

五.数据表的操作

1)创建数据表: (通过例题明白操作,在另一文章 《学习mysql------表》)

        create table 表名(

                字段名  数据类型  NULL  或者  NOT NULL  默认值  自增属性  主键约束  唯一性约束  注释  外键约束  索引  

);

2)查看数据表的结构:

        (显示表的名称)        show table;

      (显示表的结构)      describe 表名;   或者   desc 表名;    或者    show create table 表名;

3)  修改数据表:

1.修改数据表名        alter table 旧表名 rename 新表名; 

2.修改字段数据类型       alter table 表名 modify 字段名 数据类型

        如将student表的sname的长度varchar(20)变为varchar(30)

                alter table student modify sname varchar(30)

3.修改字段名        alter table 表名 change 旧字段名 新字段名 新数据类型;

4.添加数据表字段        alter table 表名 add 新字段名 数据类型 first 或者 after;

        (first指将新添加的字段设置为表的第一个字段,after指将新添加的字段添加到指定的“已存在字段名”的后面。)

5.删除字段        alter table 表名 drop 字段名:

6.修改字段排序        alter table 表名 modify (要修改位置的字段) (此字段的数据类型)first after字段2;

        (after字段2 指将 “要修改位置的字段” 插入到 “字段2”后面)

        如将student表中的markid 查到mark字段前

        alter table student modify markid int(10) after mark;

7.更改表的存储引擎        alter table 表名 engine=存储引擎名;

8.删除表的外键约束        alter table 表名 drop foreign key 外键约束名;

4)复制数据表:        通过create  table 命令复制

5)删除数据表:        drop table [if exisits] 表1,表2.....;

                如删除stu表和SnoNameTable表     drop table if exisits stu,SnoNameTable;

六.MySQL约束控制

1)数据完整性:实体完整性,参照完整性,域完整性,用户自定义完整性

2)字段的约束:

        1.主键约束:        primary key 字段1,字段2;

        2.外键约束:        alter table 表名  add foreign key  [constraint 外键约束名称] foreign key(外键字段) references 父表(主键字段);

        3.非空约束:        not null

        4.唯一约束:        unique

        5.默认约束:        default

        6.自增约束:        auto_increment

        7.检查约束:        check

3)删除约束:        alter table 表名 drop  约束  名称;