- MySQL简介
MySQL是一种开放源代码的关系型数据库管理系统。
- MySQL优势:
运行速度快。MySQL体积小,命令执行的速度快。
使用成本低。MySQL开源,提供免费版本。
可移植性强。可以运行于多种系统平台上。
适用于更多用户。适用于中小型企业。
- SQL的组成
- DML:数据操作语言,也称为数据操纵语言,用来插入、修改、和删除数据库中的数据。
- DDL:数据定义语言,用来建立数据库,数据库对象,定义数据表结构等,大部分是以create开头的命令。
- DQL:数据查询语言,用来对数据库中的数据进行查询。
- DCL:数据控制语言,用来控制数据库组件的存取许可,存取权限等
- SQL中的运算符
-
算术运算符 算术运算符包括:+(加) 、—(减) 、*(乘) 、/(除)、%(取模)
-
赋值运算符:SQL有一个赋值运算符,即“ = ”(等号)。
-
比较运算符 比较运算符用来判断两个表达式的大小关系,运算结果为布尔类型。 =:等于、>:大于、<:小于、<>或!=:不等于、>=:大于等于、<=:小于等于。
-
逻辑运算符: 逻辑运算符用来对某个条件进行判断、以获得判断条件的真假。返回带有true或false值的布尔数据类型。 and : 当且仅当两个布尔表达式都为true时,返回true。 or :当且仅当两个布尔表达式都为false时,返回false。 not:取反,对布尔表达式的值取反,优先级别最高。 例如:NOT(性别 = '男')AND(年龄 >= 18 AND 年龄 <= 45)即:年龄在18~45岁之间的非男性
- 数据库基本操作
- 创建数据库
语法:CREATE DATABASE 数据库名;
在MySQL中以英文半角分号(;)作为一条命令的结束。 - 查看数据库列表
语法:SHOW DATABASES; - 选择数据库
语法:USE 数据库名; - 删除数据库
语法:DROP DATABASE 数据库名;
- 数据类型
- 数值类型
TINYINT[(M)]:1字节
SMALLINT[(M)]:2字节
MEDIUMINT[(M)]:3字节
INT[(M)]:4字节
FLOAT[(M,D)]:4字节
DOUBLE[(M,D)]:8字节
DECIMAL[(M,D)]:M+2字节
M:最大精度位数即总位数,M的取值范围是165,默认值为10,(M表示显示宽度)D:小数位精度位数,D的取值范围是030; - 字符串类型
CHAR[(M)]:M字节,固定长度。
VARCHAR[(M)]:可变长度。
TINYTEXT:0~255。微型文本串。
TEXT:0~65535。文本串。 - 日期类型
DATE:日期 YYYY-MM-DD
TIME:时间 hh:mm:ss
DATETIME:日期时间 YYYY-MM-DD hh:mm:ss
TIMESTAMP:YYYYMMDDHHMMSS 1970年某时刻~2038年某时刻,精度为一秒。
YEAR:YYYY格式的年份。
列出常用的数据格式、更多详细的数据类型、时间类型请百度。
-
注释类型
当行注释:#。。。
多行注释:/…/ -
创建表
语法:CREATE TABLE [IF NOT EXISTS]表名(
字段1 数据类型 [字段属性] [约束] [索引] [注释],
字段2 数据类型 [字段属性] [约束] [索引] [注释],
…
)[表类型] [表字符集] [注释]
在MySQL中,如果使用的数据库名,表名或字段名等与保留字冲突,需要使用反撇号括起来(`).在MySQL自动生成的代码中,表名或字段名等全部使用反撇号括起来。
创建表时,多字段之间使用逗号分隔,最后一行无需逗号。
表中的字段也称为列。 -
字段的约束及属性
- 非空约束:NOT NULL
- 默认约束:DEFAULT(为某字段赋默认值)
- 唯一约束:UNIQUE KEY(设置字段的值是唯一的)
- 主键约束:PRIMARY KEY
- 外键约束:FOREIGN KEY
- 自动增长:AUTO_INCREMENT(自增字段、可设置初始值和步长)
- 查看表
语法:SHOW 表名;
查看MySQL数据库的所有表。使用此语句之前必须先选择数据库。
- 查看表的定义可以使用DESCRIBE来实现:
DESCRIBF 表名 或 DESC 表名
DOS窗口显示避免乱码设置编码格式的语法
SET NAMES 编码名;
-
删除表
语法:DROP TABLE [IF EXISTS] 表名; -
修改表
- 修改表名
语法:ALTER TABLE 旧表名 RENAME [TO] 新表名; - 添加字段
语法:ALTER TABLE 表名 ADD 字段名 数据类型 [属性]; - 修改属性
语法:ALTER TABLE 表名 CHANGE 原字段名 新字段名 数据类型 [属性];
由于不同类型的数据存储方式和长度不同,修改数据类型可能会影响数据表中已有的数据,因此,已有数据情况下不应轻易的修改数据类型。 - 删除字段
语法:ALTER TABLE 表名 DROP 字段名; - 添加主键约束
语法:ALTER TABLE 表名 ADD CONSTRAINT 主键名 PRIMARY KEY 表名(主键字段) - 添加外键约束
语法:ALTER TABLE 表名 ADD CONSTRAINT 外键名 FOREIGN KEY (外键字段) REFERENCES 关联表名(关联字段)
在MySQL中,InnoDB存储类型的表支持外键,MyISAM存储类型的表不支持外键,因此对于MyISAM存储类型的表,也可以通过建立逻辑关联的方式来保证数据的完整性和一致性。
-
HELP命令
查看帮助的命令是HELP
查看帮助文档目录:HELP contents; -
MySQL常用的存储引擎
- MyISAM存储引擎
-
MyISAM存储引擎:该存储引擎不支持事务,也不支持外键约束,访问速度比较快。 1. 增删改查比较慢,数据越多,写操作效率越低。 2. 使用该数据引擎会生成三个文件: .frm:表结构信息(比如表的名字、字段、字段类型、有什么限制等信息) .MYD:数据文件(真实的表数据) .MYI:表的索引信息(比如主键索引、普通索引、全文索引、复合索引等信息)
- InnoDB存储引擎
-
该存储引擎在事务处理上有优势,支持具有提交、回滚和崩溃恢复能力的事务控制,所以会占用更多磁盘空间。 1. 支持事务 2. 数据多版本读(InnoDB + MyISAM + INAM) 3. 实现外键 4. 锁定机制
-
如何选择: 1. 如果表中绝大多数都只是读查询,可以考虑MyISAM,如果既有读写也挺频繁,请使用InnoDB。 2. 是否要支持事务,如果要请选择innodb,如果不需要可以考虑MyISAM 3. MySQL5.5版本开始InnoDB已经成为MySQL的默认引擎(之前是MyISAM)