MySQL的版本:分为社区版和企业版,当然社区版不收取费用官方不提供技术支持,企业版不同需要收费的不能随便下载,但官方会提供相应的技术支持。
Mysql的主要优势:
运行速度快。体积小,命令执行速度快。使用成本低。是开源的并且提供免费的版本(社区版)对大多数小型企业降低了使用成本。容易使用,比其他大型数据库的设置和管理相比,其复杂程度较低,易使用。
可移植性强。mysql能够运行与多种系统平台,如Windows,Linux,UNIX等。
mysql数据库有三大范式。
第一范式:确保每列的原子性。
第二范式:在第一范式的基础上更近一层,其目标是确保表中的每列都和主键相关。
第三范式:在第二范式的基础上更近一层,第三范式的目标是确保每列都和主见列直接相关而不是间接相关。
命令方式连接数据库:
进去Dos窗口,Mysql -h 服务器主机地址 -u 用户名 -p密码
创建数据库:
CREATE DATABASE 数据库名;
查看数据库列表
SHOW DATABASES;
选择数据库
USE 数据库名
删除数据库
DROP DATABASE 数据库名;
SQL语言包括以下四个部分
DML(数据操作语言):用来插入,修改和删除表中的数据
DDL(数据定义语言):在数据库中创建获删除数据库对象等操作
DQL(数据查询语言):用来对数据库中的数据进行查询
DCL(数据控制语言):用来控制数据库组件的存取许可,存取权限等
创建表
CREATE TABLE 表名(
字段1 数据类型 [字段属性|约束] [约束] Comment '注释'
..........
);
Mysql 有两种注释方法
单行注释:#......
多行注释:/*.......*/
常用的属性约束
非空约束 NOT NULL ,默认约束 DEFAULT ,唯一约束 UNIQUE KEY() ,主键约束 PRIMARY KEY(),外检约束 FOREIGN KEY 自动增长 AUTO_INCREMENT
操作默认存储引擎
SHOW VARIABLES LIKE 'storage_engine%'
常用的存储引擎有InnDB和MyISAM,表存储引擎就是表的类型。
INNDB和MyISAM的区别
功能
InnoDB
MyISAM
支持事务
支持
不支持
支持全文索引
不支持
支持
外检约束
支持
不支持
表空间大小
较大
较小
数据行锁定
支持
不支持
修改表名
ALTER TABLERENAME[TO];
添加字段
ALTER TABLE 表名ADD 字段名 数据类型 [属性]
ALTER TABLE demo Add password varchar[6] not null ;
修改字段名
ALTER TABLE 表名 CHANGE 原字段名 新字段名 数据类型 [属性];
删除字段
ALTER TABLE 表名 DROP 字段名 ;
添加主外键
添加外主键约束
ALTER TABLE 表名 ADD ConstraInt 主键名 PRIMARY KEY 表名(主键字段);
添加外键
ALTER TABLE 表名 ADD CONSTRAINT 外键名 FOREIGN KEY(外键字段) REFERENCES 关联表名 (关联字段);
插入单行数据
INNSERT INTO 表名(字段名,字段名)Values('值','值');
插入多行数据
INNSERT INTO 表名(字段名,字段名)Values('值','值'),('值','值');
将查询的结果插入到新表
INSERT INTO 新表(字段1 , 字段2 )
SELECT 字段1 ,字段 2
from 原表
或者
SELECT 字段1,字段2
INSERT 新表名
FROM 原表
DQL 语句回顾
SELECT
FROM
WHERE
GROUP BY
HAVING
ORDER BY <> [ASC 或DESC]
Limit 字段
LIMIT[位置偏移量],行数];
LIMIT 子句可以实现数据的分页查询,即从一批结果数据中,规定每页显示多少数据可以查询中间某页记录。
简单子查询一对园括号内:比较运算符包括> .= .< .>=.<=。外面的查询称为父查询,圆括号中嵌入的查询称为子查询。
将子查询和比较运算符联合使用,必须保证子查询返回的值不能多于一个。
子查询比较灵活,方便,形式多样,适用于做为查询的筛选的条件,而表连接适用于查看多表的数据。
IN 子查询
将子查询和比较运算符联合使用,查询返回的值多于一个。