目录
前言
MySQL是一个关系型数据库管理系统,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库之一,在 WEB 应用方面,MySQL是最好的 关系型数据库管理系统 (Relational Database Management System,关系数据库管理系统) 应用软件之一。
MySQL是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是这一特点,一般中小型和大型网站的开发都选择 MySQL 作为网站数据库。
创建数据库
数据库(Database,简称DB)
概念:长期存放在计算机内,有组织、可共享的大量数据的集合,是一个数据“仓库”。
作用:保存、管理数据
数据库管理系统(Database)
概念:指一种操作和管理数据库的大型软件,用于建立、使用和维护数据库,对数据库进行统一管理和控制,以保证数据库的安全性和完整性。用户通过数据库管理系统访问数据库中的数据。
连接数据库
连接数据库的方式有三种:
1、使用数据库管理工具连接数据库。
2、使用MySQL自带的命令窗口连接数据库。
3、使用DOS窗口连接数据库。
连接数据库命令:mysql -h 服务器主机地址 -u 用户名 -p 密码;
注:
1、一般连接本电脑安装的数据库,服务器主机地址为电脑本机 “ IP地址 ” 或使用 “ localhost ”
2、-p后输入密码会明文显示,-p后回车到下一行输入密码会加密显示。
结构化查询语句分类
名称 | 解释 | 命令 |
DDL(数据定义语言) | 定义和管理数据对象 | CREATE、DROP、ALTER |
DML(数据操作语言) | 用于操作数据库对象中所包含的数据 | INSERT、UPDATE、DELETE |
DQL(数据查询语言) | 用于查询数据库数据 | SELECT |
DCL(数据控制语言) | 用来管理数据库的语言,包括管理权限及数据更改 | GRANT、COMMIT、ROLLBACK |
创建数据库
命令:CREATE DATABASE [ if not exists ] 库名;
创建名为 “ mysql1019 ” 的数据库;if not exists 可省略,意思为如果数据库不存在则创建数据库。
删除数据库
命令:DROP DATABASE [ if exists ] 库名;
删除“mysql1019”数据库;if existe 可省略不写,意思为如果数据库存在则删除数据库。
查看数据库
命令:SHOW DATABASES;
查看创建的 “ mysql1019 ” 数据库
使用数据库
命令:USE 库名;
使用“mysql1019”数据库
创建数据表
创建数据表
命令
CREATE TABLE [ if not exists ] `表名`(
`字段1` 列类型 [属性] [索引] [注释],
`字段2` 列类型 [属性] [索引] [注释],
……
`字段n` 列类型 [属性] [索引] [注释]
);
使用 “ mysql1019 ” 数据库创建一个 “ student ” 表。if not exists可以省略不写。
mysql> create table `student`(
-> `id` int(3),
-> `name` varchar(10),
-> `sex` varchar(4),
-> `gender` varchar(4)
-> );
Query OK, 0 rows affected (0.00 sec)
显示数据表结构
命令:DESC 表名;
显示 “ student ” 数据表结构
desc student;
显示数据表创建语句
命令:SHOW CREATE TABLES 表名;
显示 “ student ” 数据表创建结构
show create table student;
列类型的分类
列类型规定了数据库中该列存放的数据类型
列类型分为字符串数值类型,类型,日期和时间数值类型
数值类型
类型 | 存储需求 |
tinyint | 1字节 |
smallint | 2字节 |
mediumint | 3字节 |
int | 4字节 |
bigint | 8字节 |
float | 4字节 |
double | 8字节 |
decimal | m个字节 |
字符串类型
类型 | 最大长度 |
char[(M)] | M字符 |
varchar[(M)] | 可变长度 |
tinytext | |
text |
日期和时间型数值类型:
DATE、TIME、DATETIME、YEAR、TIMESTAMP
字段属性
UNSIGNED:表示数据是无符号的,数据列不允许为负数。
ZEROFILL:表示数据不足位数用0填充该列数据。
AUTO_INCREMENT:表示自动增长,每添加一个数据自动加1,通常用于设置主键,且为整数类型。
NULL:默认为NULL,即没有插入该列的数值。
NOT NULL:表示该列必须要有数值。
DEFAULT:表示默认值。
修改表名
命令:ALTER TABLE 旧表名 RENAME AS 新表名;
修改表名 “ stuedet ” 为 “ my_sutdent ”。
alter table student rename as my_student;
添加字段
命令:ALTER TABLE ADD 字段名 列类型 [属性];
添加一个 “ height ” 字段
alter table add `height` int();
修改字段
命令:ALTER TABLE 表名 MODIFY 字段名 列类型 [属性];
该命令修改字段的列类型和属性值
下面修改 “ id字段 ” 的列类型和属性值
alter table my_student modify `id` varchar(10);
命令:ALTER TABLE 表名 CHANGE 旧字段名 新字段名 列类型 [属性];
该命令将旧字段修改为新字段
下面将字段 “gender” 修改为字段 “ weight”
alter table my_student change `gender` `weight` int(4);
删除字段
命令:ALTER TABLE 表名 DROP 字段名;
删除字段 “ gender ”。
alter table my_student drop `gender`;
删除数据表
命令:DROP TABLE [IF EXISTS] 表名;
删除数据表 “my_student”,IF EXISTS 为可选,判断是否存在该表
drop table my_student;