目录
1.MySQL简介
MySQL的优势(适用于中小企业,最重要免费)
(1)运行速度快
(2)使用成本低
(3)可移植强
(4)使用用户广
(5)my.ini:记录MySQL配置信息,可修改配置内容,如端口号,字符集等
2.MySQL运行机制
总的来说,接口连接到连接池有两种情况:
(1)验证不成功就会返回到原来
(2)验证成功(如有缓存也会回到上一级)如未找到缓存就会继续进行SQL接口,解析,查询,优化到存储(一个一个的数据库)查找相关内容返回
3.命令执行MySQL
语法:mysql-h服务主机地址(可省略不写)-u用户名-p密码
eg:mysql-uroot-proot 或mysql-uroot-p
3.2创建数据库
语法:create database 数据库名;
eg:create database test_123;(;)是结束语,不可缺少
如图:
3.3查看MySQL版本信息及当前用户
select version(),user();
版本 用户
3.4查看数据库列表
show databases;
3.5查看表结构
describe 表名;
或desc 表名;
3.6选择数据库
语法:use 数据库名
eg:use mybase;(必须填写存在的数据库,否则会报错)
3.7删除数据库
语法:drop database 数据库名;
eg;drop database myschool;
4.SQLyong–图形化的MySQL管理工具
优点:免费 简洁高效 功能强大
5.结构化查询语言
(1)DML(数据操作语言):用来操作数据库中所包含数据 eg:insert,update delete
(2)DDL(数据定义语言):用于创建,删除数据库对对象操作 eg:create,drop,alter
(3)DQL(数据查询语言):用来对数据库中数据进行查询 eg:select
(4)DCL(数据控制语言):用来控制数据库组件的存取许可,存取权限 eg:grant,commit rollback
6.MySQL数据类型
6.1数值类型
类型 | 说明 | 存储需求 |
(1)TINYINT | 非常小的数据 | 1字节 |
(2)SMALLINT | 较小的数据 | 2字节 |
(3)MEDIUMINT | 中等大小的数据 | 3字节 |
(4)INT | 标准整数 | 4字节 |
(5)BIGINT | 较大整数 | 8字节 |
(6)FLOAT | 单精度浮点数 | 4字节 |
(7)DOUBLE | 双精度 | 8字节 |
(8)DECIMAL | 字符串形式浮点数 | M+2字节 |
(9)USINGNED | 属性:标识为无符号数 | |
(10)ZEROFLL | 属性:宽度(位数)不足以0填充 |
6.2字符串类型
类型 | 说明 | 长度 |
CHAR[(M)] | 定长字符串 M为0~255的整数 | M字节 |
VARCHAR[(M)] | 可变字符串 M为0~65535 | 可变长度 |
TINYTEXT | 微型文本串 0~255 | 0-2的8次-1字节 |
TEXT | 文本串 0~65535 | 0-2的16次-1字节 |
6.2日期类型
类型 | 格式 | 取值范围 |
DATE | YYYY-MM-DD | 1000-01-01~9999-12-31 |
DATETIME | YY-MM-DD hh:mm:ss | 1000-01-01 00:00:00~9999-12-31 23::59:59 |
TIME | hh:mm:ss | -838:59:59~838:59:59 |
TIMESTAMP | YYYYMMDDHHMMSS | 1970年某一刻~2038年某时刻,精度为1秒 |
YEAR | YYYY格式的年份 | 1901-2155 |
注意:若某日期字段默认值为当前日期,一般设置TIMESTAMP
7.创建表
语法:
create table 表名(字段1,数据类型,[字段属性],[字段属性],[约束][索引][注释],…字段n 数据类型[字段属性][约束][索引]
[注释])[表类型][表字符集][注释];
eg:create table ‘student’(‘studentNO’ INT(4) PRIMARY KEY,‘name’ char(10)…);
注意:多字段使用逗号分隔
保留字用撇好括起来
单行注释:#… 多行注释:/*…*/
8.字段的约束以及属性
名称 | 关键字 | 说明 |
非空约束 | NOT NULL | 字段不允许为空 |
默认约束 | DEFAULT | 赋予某字段默认 |
唯一约束 | UNIQUE KEY(UK) | 设置字段的值是惟一的,允许为空,但只能有一个空值 |
主键约束 | PRIMARY KEY(PK) | 设置字段为表的主键,可唯一标识该记录 |
外键约束 | FOREGIN KEY(FK) | 建立两表关系,需要指定引用主表的哪一字段 |
自动增长 | AUTO_INCREMET | 自增字段,默认每条自增1,通常用于设置主键 |
(1)主键
eg:
CREATE TABLE student(‘studentNo’ INT(4) PRIMARY KEY,…);
(2)注释
eg:
CREATE TABLE test(‘id’ int(11) USIGNED COMMENT ‘编号’)CoMMENT=‘测试表’;
(3)设置字符集编码
eg:CREATE TABLE[IF NOT EXISTS]表名(#省略代码)CHARSET=字符集名;
(4)查看表是否存在
use myschool 或 show tables
(5)查看表的定义
describe 表名 或 desc表名 避免DOS窗口乱码,可执行SET NAMES gbk;
(6)删除
语法:drop table 表名 eg:drop table[IF EXISTS] school;
在删除表之前,先 使用IF EXISTS语句验证是否错误
(7)存储引擎类型
MyISAM,InnoDB,Memory,CSV等
9.MyIAM与InnoDB区别:
名称 | InnoDB | MyISAM |
事务处理 | 支持 | 不支持 |
数据行锁定 | 支持 | 不支持 |
外键约束 | 支持 | 不支持 |
全文索引 | 不支持 | 支持 |
表空间大小 | 较大 | 约2倍 较小 |
适用场合
使用MyISAM:不需要事务,空间小,以查询访问为主
适用InnoDB:多删除,更新操作,安全性高,事务处理及并发控制
10.帮助功能
help 查询内容;
eg:help contents;
本章总结
- MySQL以其开源丶免费(社区版)丶体积小丶速度快丶易用性丶跨平台丶功能完善的特性成为企业中应用最广泛的关系型数据库管理系统。
- 命令行或数据库管理工具---Navicat可以实现连接和操作MySQL数据库,其中,使用命令行操作MySQL数据库是程序员的必备技能。
- 使用数据库管理工具可以创建数据表。但是实际开发过程中,为了批量快速地创建数据表,通常会使用SQL语句。
- MySQL支持多种存储引擎,最常用的为InnoDB,根据使用场景也可以在创建数据表时为其单独指定存储引擎。
- MySQL的HELP命令可以方便地提供系统帮助功能,解决开发中遇到的问题。
练习小作业:
- 使用命令行连接MySQL数据库
- 创建hospital数据库,并完成查看所有数据库丶选择和删除hospital数据库的操作。
- 在hospital数据库中,使用SQL语句创建department(科室表)丶checkitem(项目检查表)丶department_checkitem(科室与项目检查关系表)丶prescription(处方表)。
- 查找MySQL中INT数据类型的信息,并找到INT类型有符号数和无符号数的取值范围。