目标
了解MySQL数据库
学会安装MySQL
学会使用SQLyog数据库管理工具
了解常用的数据库命令
熟悉创建数据库表的语句
熟悉常见的数据列属性、类型和索引
什么是数据库
数据库(Database,简称DB)
概念
长期存放在计算机内、有组织、可共享的大量数据的集合,是一个数据“仓库”
作用
保存、管理数据
数据库总览
关系数据库(SQL)
MySQL、Oracle、SQL Server、SQLite、DB2
非关系型数据库(NOSQL)
Redis、MongoDB
什么是DBMS
数据库管理系统(Database Management System)
数据管理软件,科学组织和存储数据、高效地获取和维护数据
MySQL简介
概念
是现流行的开源、免费的关系型数据库
特点
免费、开源数据库
小巧、功能齐全
使用便捷
可运行于Windows或Linux操作系统
可适用于中小型甚至大型网站应用
MYSQL的运行机制
支持接口 标准C的API、JDBC、CDBC、.NET、PHP、Python、Perl、Ruby、Cobol
在Windows操作系统下安装MySQL
下载MySQL
MySQL 5.5.40 (Windows版)下载地址:MySQL :: MySQL Community Downloads
数据目录不要在系统盘,以免卸载时删除数据包
启用安装向导,避免繁琐的 my.ini 配置文件
数据库语言编码设置
安装关键步骤
端口设置 3306(默认)
编码设置 utf8
密码设置
Navicat管理工具
连接数据库
打开MySQL命令窗口
在DOS命令行窗口(cmd.exe)
在窗口中进入 安装目录\mysql\bin
可设置环境变量
连接数据库语句
mysql -h 服务器主机地址 –u 用户名 -p用户密码
结构化查询语句SQL
结构化查询语句分类
名称 | 解释 | 命令 |
DDL (数据定义语言) | 定义和管理数据对象, 如数据库,数据表等 | CREATE、DROP、ALTER |
DML (数据操作语言) | 用于操作数据库对象中所包含的数据 | INSERT、UPDATE、DELETE |
DQL (数据查询语言) | 用于查询数据库数据 | SELECT |
DCL (数据控制语言) | 用来管理数据库的语言,包括管理权限及数据更改 | GRANT、COMMIT、ROLLBACK |
命令行操作数据库
创建数据库
CREATE DATABASE [IF NOT EXISTS] 数据库名;
删除数据库
DROP DATABASE [IF EXISTS] 数据库名;
查看数据库
SHOW DATABASES;
使用数据库
USE 数据库名;
工具建表
建表
显示表结构
desc 表名
显示表创建语句
show create table 表名
创建数据表
属于DDL的一种
// 反引号 (可选、区别于单引号)
CREATE TABLE [ IF NOT EXISTS ] `表名` (
//表列类型设置 表列类型设置
`字段名1` 列类型 [ 属性 ] [ 索引 ] [注释] ,
`字段名2` 列类型 [ 属性 ] [ 索引 ] [注释] ,
… …
`字段名n` 列类型 [ 属性 ] [ 索引 ] [注释]
) [ 表类型 ] [ 表字符集 ] [注释] ;
反引号用于区别MySQL保留字与普通字符而引入的
数据值和列类型
列类型
规定数据库中该列存放的数据类型
分为
数值类型
字符串类型
日期和时间型
数值类型
NULL值
数值类型
类型 | 说明 | 取值范围 | 存储需求 |
tinyint | 非常小的数据 | 有符值: -27 ~ 27-1 无符号值:0 ~ 28-1 | 1字节 |
smallint | 较小的数据 | 有符值: -215 ~ 215-1 无符号值: 0 ~ 216-1 | 2字节 |
mediumint | 中等大小的数据 | 有符值: -223 ~ 223-1 无符号值: 0 ~ 224-1 | 3字节 |
int | 标准整数 | 有符值: -231 ~ 231-1 无符号值:0 ~ 232-1 | 4字节 |
bigint | 较大的整数 | 有符值: -263 ~263-1 无符号值:0 ~264-1 | 8字节 |
float | 单精度浮点数 | ±1.1754351e -38 | 4字节 |
double | 双精度浮点数 | ±2.2250738585072014e -308 | 8字节 |
decimal | 字符串形式的浮点数 | decimal(m, d) | m个字节 |
字符串类型
类型 | 说明 | 最大长度 |
char[(M)] | 固定长字符串,检索快但费空间, 0 <= M <= 255 | M字符 |
varchar[(M)] | 可变字符串 0 <= M <= 65535 | 变长度 |
tinytext | 微型文本串 | 28–1字节 |
text | 文本串 | 216–1字节 |
日期和时间型数值类型
类型 | 说明 | 取值范围 |
DATE | YYYY-MM-DD,日期格式 | 1000-01-01~ 9999-12-31 |
TIME | Hh:mm:ss ,时间格式 | -838:59:59~838:59:59 |
DATETIME | YY-MM-DD hh:mm:ss | 1000-01-01 00:00:00 至 9999-12-31 23:59:59 |
TIMESTAMP | YYYYMMDDhhmmss格式表示的时间戳 | 197010101000000 ~2037年的某个时刻 |
YEAR | YYYY格式的年份值 | 1901~2155 |
NULL值
理解为“没有值”或“未知值”
不要用NULL进行算术运算,结果仍为NULL
选择数据类型
整数和浮点
日期类型
char和varchar
数据字段属性
UNSIGNED
无符号的
声明该数据列不允许负数
ZEROFILL
0填充的
不足位数的用0来填充,如 int(3),5则为 005
AUTO_INCREMENT
自动增长的,每添加一条数据,自动在上一个记录数上加1
通常用于设置主键,且为整数类型
可定义起始值和步长
NULL 和 NOT NULL
默认为NULL,即没有插入该列的数值
如果设置为NOT NULL,则该列必须有值
DEFAULT
默认的
用于设置默认值
例如,性别字段,默认为“男”,否则为“女”;若无指定该列的值,则默认为“男”的值
数据字段注释
CREATE TABLE [ IF NOT EXISTS ] `test` (
`id` int (11) UNSIGNED COMMENT ‘编码号’
)COMMENT=‘测试表’;
数据表的类型
设置数据表的类型
CREATE TABLE 表名(
#省略一些代码
) ENGINE = MyISAM
MySQL注释:1、#…… 单行注释 2、/*……*/ 多行注释
或者
CREATE TABLE 表名(
#省略一些代码
) ENGINE = InnoDB
MySQL的数据表的类型
MyISAM、InnoDB 、HEAP、BOB、CSV等
常见的MyISAM与InnoDB类型
名称 | MyISAM | InnoDB |
事务处理 | 不支持 | 支持 |
数据行锁定 | 不支持 | 支持 |
外键约束 | 不支持 | 支持 |
全文索引 | 支持 | 不支持 |
表空间大小 | 较小 | 较大,约2倍 |
表列类型设置
可为数据库、数据表、数据列设定不同的字符集
设定方法
创建时通过命令来设置,如
CREATE TABLE 表名(
#省略一些代码
)CHARSET = utf8;
如无设定,则根据MySQL数据库配置文件my.ini
(Windows系统)中的参数设定 如:character-set-sever = utf8
数据表的存储位置
MySQL数据表以文件方式存放在磁盘中
包括表文件、数据文件以及数据库的选项文件
位置:MySQL安装目录\data下存放数据表。目录名对应数据库名,该目录下文件名对应数据表
修改数据表
修改表(ALTER TABLE)
修改表名
ALTER TABLE 旧表名 RENAME AS 新表名
添加字段
ALTER TABLE 表名 ADD 字段名 列类型 [ 属性 ]
修改字段
ALTER TABLE 表名 MODIFY 字段名 列类型 [ 属性 ]
ALTER TABLE 表名 CHANGE 旧字段名 新字段名 列类型 [ 属性 ]
删除字段
ALTER TABLE 表名 DROP 字段名
删除数据表
DROP TABLE [ IF EXISTS ] 表名
IF EXISTS 为可选,判断是否存在该数据表如删除不存在的数据表会抛出错误
练习
练习二、创建数据表student
需求说明使用语句新建student表具体设计如下
CREATE TABLE student (
StudentNo INT(4) NOT NULL PRIMARY KEY,
LoginPwd VARCHAR(20),
StudentName VARCHAR(20),
Sex TINYINT(1),
GradeId INT(11),
Phone VARCHAR(50) NOT NULL,
Address VARCHAR(255) NOT NULL,
BornDate DATETIME,
Email VARCHAR(50) NOT NULL,
IdentityCard VARCHAR(18)
);
标签:数据库,MySQL,数据表,表名,初识,MYSQL,类型,TABLE
From: https://blog.csdn.net/weixin_65279640/article/details/142971520