目标- SQL的作用及分类
- 数据库、表的创建(create)、修改(alter)及删除(drop)操作
- MySQL存储引擎作用及区别
- MySQL数据类型的分类及应用
- 主键(primary key)及自动递增(auto_increment)的应用
- 数据的添加操作(insert)
一、SQL的作用及分类
SQL:结构化查询语言,是一种数据库查询(数据库(database)、数据表(table)、视图(view)……)和程序设计语言,用于存取数据以及查询、更新和管理数据。补充:.sql是数据库脚本文件的拓展名。(.txt、.doc)
-
数据定义语言,DDL:针对数据库对象
进行创建(create)、删除(drop)、修改(alter)
A.创建数据库示例
创建名为T的数据库
create database T;
B.删除数据库示例
– 删除名为T的数据库
drop database T;
提醒:创建数据库后,会在mysql安装目录data文件夹下,产生同名的文件夹(对应数据库名);
C、创建数据表示例
– 在数据库T内创建名为 Students的数据表
use T;
#选择/使用数据库(切换当前操作数据库,方便后续的操作均是在指定的某数据库内完成)
#在数据库的基础上创建表,以存放数据(逻辑结构上的)
create table Students(stuNo char(8) not null primary key,stuAge tinyint null,stuGender bit not null
)
primary key:主键,声明对应的字段值不允许为空,且不能出现重复值—————能够让系统在一个表中直接找到唯一的数据行
提醒:创建表后,会在该文件夹下产生与该表同名的ibd文件(数据库对应数据文件)
-
数据操作语句,DML:针对表中数据执行添加(insert)、修改(update)、删除(delete)的操作
#添加数据到指定表中(向表中添加数据)–insert
#添加语法:insert into 表名(字段列表) values(值列表);
在MySQL中,如果insert语句没有为列指定数据值,MySQL将插入默认值;
如果创建表时,并没有为该字段定义默认值属性,那么MySQL会根据该列的数据类型设置初始值;如果是数值类型,初始值为0;如果是字符类型,初始值为’’(空字符串,区分之前看到的NULL);
#为Students表学号字段添加数据(MySQL为自动为表中的性别字段添加初始值)
insert into Students(stuNo) values('20190102');
#为Students表所有字段添加数据
insert into Students values('20190103',18,1);
3、数据查询语言,DQL:针对表中数据进行检索(select)操作。
#查询Students表中所有数据信息
select * from Students
二、数据类型
在MySQL中,数据类型分为三种:
- 数字类型
整型:tinyint、bit、smallint、mediumint、int、bigint
小数:float、double、decimal - 字符类型
char、varchar、text、blob、enum、set - 日期和时间类型
date、time、datetime、timestamp、year
注意:使用数据类型,最主要的是搞明白对应字段存储数据的可能性!
补充:字段属性unsigned、zerofill的用法!!!
- unsigned 为非负数,用此类型可以增加存储数值范围!
- zerofill属性,在数字长度不够的数据前面填充0,以达到设定的长度。
三、存储引擎
1、存储引擎:告知MySQL如何存储数据,如何为存储的数据进行管理(索引构建、更新、查询等技术实现的方式)。
2、存储引擎的分类:
- InnoDB:默认存储引擎(支持事务—读写效率差,额外占用一定空间)
- MyISAM:曾经的默认存储引擎(不支持事务—处理速度快,占用空间小)
- Memory:数据存储在系统内存中(响应速度快,但是存储信息量有限,且存储有效期有限)
补充:注释方式
- SQL标准注释方式:
- 单行注释:–注释内容(提醒:如果此方式应用到MySQL中,必须在第二个中横线后打一空格,再添加注释内容方有效)
- 多行注释:/注释内容/(此方式可直接在MySQL中使用)
- MySQL注释方式: