1. MySQL简介
(1) 什么是MySQL数据库?
MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于Oracle 公司。MySQL 是一种关系型数据库管理系统,关系型数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
(2) MySQL数据库的特点是什么?
MySQL 是开源的,所以你不需要支付额外的费用。
MySQL 支持大型系统的数据库。可以处理拥有上千万条记录的大型数据库。
MySQL 使用标准的 SQL 数据语言形式。
MySQL 可以运行于多个系统上,并且支持多种语言。这些编程语言包括 C、C++、
Python、Java、Perl、PHP、Eiffel、Ruby 和 Tcl 等。
MySQL 存储数据量较大,32 位系统表文件最大可支持 4GB,64 位系统支持最大的
表文件为 8TB。
MySQL 是可以定制的,采用了 GPL 协议,你可以修改源码来开发自己的 MySQL 系
统
2. MySQL的安装与卸载
(1) MySQL提供了哪些版本?
MySQL Community Server 社区版本,开源免费,但不提供官方技术支持。
MySQL Enterprise Edition 企业版本,需付费,可以试用 30 天。
MySQL Cluster 集群版,开源免费。可将几个 MySQL Server 封装成一个 Server。
MySQL Cluster CGE 高级集群版,需付费。
本套视频使用版本 MySQL5.7 社区版
(2) MySQL的卸载步骤是什么?
1停止 MySQL 服务
开始-->所有应用-->Windows 管理工具-->服务,将 MySQL 服务停止。
2卸载 mysql server
控制面板-->所有控制面板项-->程序和功能,将 mysql server 卸载掉。
3MySQL 安装目录
将 MySQL 安装目录下的 MySQL 文件夹删除(C:Program Files (x86)MySQL 或者
C:Program Files MySQL)
4删除注册表中信息
运行“regedit”文件,打开注册表,删除如下文件夹:
HKEY_LOCAL_MACHINESYSTEMControlSet001ServiceseventlogApplicationMySQ
L 文件夹
HKEY_LOCAL_MACHINESYSTEMControlSet002ServiceseventlogApplicationMySQ
L 文件夹。
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServiceseventlogApplicationM
ySQL 的文件夹。
如果没有相应的文件夹,就不用删除了。
5删除 MySQL 数据库目录
删除 C 盘下的“C:ProgramDataMySQL ”文件夹,如果删除不了则用 360 粉碎掉即可。
该 programData 文件默认是隐藏的,设置显示后即可见,或者直接复制 C:ProgramData
到地址栏回车即可进入。将整个 MySQL 文件夹删除掉。
6删除服务中的 MySQL
如果已经将 MySQL 卸载,但通过“开始-->所有应用-->Windows 管理工具-->服务”查看
到 MySQL 服务仍然残留在系统服务里,可以在 CMD 里输入一条命令就可以将服务删除:
sc delete mysql57 //这里的 mysql 是你要删除的服务名。
7重启系统
重启系统安装 MySQL。
3. MySQL客户端工具
(1) MySQL客户端工具有哪些?
有自带工具:MySQL command line client、MySQL command line client-unicode
Navicat:navicat for mysql
4. MySQL与Oracle的区别
(1) MySQL与Oracle有哪些区别?
1 实例区别
MySQL 是轻量型数据库,开源免费。Oracle 是收费的而且价格非常高。
MySQL 一个实例可以操作多个库,而 Oracle 一个实例只能对应一个库。
MySQL 安装完后 300M 而 Oracle 有 3G 左右。
2 操作区别
主键: MySQL 一般使用自动增长类型,而 Oracle 则需要使用序列对象。
单引号的处理: MySQL 里可以用双引号包起字符串,ORACLE 里只可以用单引号包
起字符串。
分页的 SQL 语句: MYSQL 用 LIMIT,而 Oracle 需要使用内建视图和 rownum 伪列。
事务处理:MySQL 默认是自动提交,而 Oracle 默认不自动提交,需要用户 CTL 语言
进行事务提交
5. 创建数据库
(1) 在MySQL中创建数据库语句的语法结构是什么?
CREATE DATABASE 数据库名 DEFAULT CHARACTER SET 字符编码;
create database bjsxt default character set utf8;
(2) 在MySQL中查看数据库的语句是什么?
show databases;
(3) 在MySQL中查看数据库编码的语句是什么?
select schema_name,default_character_set_name from information_schema.sch
emata where schema_name = 'test';
(4) 删除数据库的语句是什么?
Drop database 数据库名称
1. 选择数据库
(1) 在MySQL中选择数据库的语句是什么?
use bjsxt;
2. MySQL数据类型
(1) 在MySQL中有哪些数据类型?
数值类型、浮点类型、字符串、日期、二进制。
(2) CHAR与VARCHAR有什么区别?
1)char(n) 若存入字符数小于 n,则以空格补于其后,查询之时再将空格去掉。所以 char
类型存储的字符串末尾不能有空格,varchar 不限于此。
2)char 类型的字符串检索速度要比 varchar 类型的快
(3) VARCHAR与TEXT有什么区别?
<=255)或 2 个字节(n>255),text 是实际字符数 +2 个字节。
2)text 类型不能有默认值。
3)varchar 可直接创建索引,text 创建索引要指定前多少个字符。varchar 查询速度快
于 text, 在都创建索引的情况下,text 的索引似乎不起作用
3. 创建表
(1) MySQL中创建表的语句语法格式是什么?
Create table 表名(column type,.......);
Eg:
create table employees(employee_id int,last_name varchar(30),salary float
(8,2))
(2) 查看当前数据库中的表的语句是什么?
Show tables;
4. 删除表
(1) 在MySQL中删除表的语句是什么?
drop table employees;
drop table 表名;
5. 在MySQL中删除表的语句是什么?
(1) 在MySQL中删除表的语句是什么?
drop table employees;
(2) 在MySQL中删除表的语句是什么?
drop table employees;
(3) 在MySQL中向表中添加新列的语句是什么?
ALTER TABLE 表名 ADD COLUMN 新列名 类型
(4) 在MySQL中删除表中的列的语句是什么?
ALTER TABLE 表名 DROP COLUMN 列名
6. 创建表时指定约束
(1) MySQL中的约束类型有哪些?
唯一约束、主键约束、外键约束、非空约束
(2) 如何查询表中的约束信息?
SHOW KEYS FROM 表名
7. 修改表完成约束的添加与删除
(1) 为表添加主键约束的语句是什么?
ALTER TABLE 表名 ADD PRIMARY KEY(列名)
(2) 删除主键约束的语句是什么?
ALTER TABLE 表名 DROP PRIMARY KEY
注意:删除主键时,如果主键列具备自动增长能力,需要先去掉自动增长,然后在删除
主键
(3) 添加唯一约束的语句是什么?
ALTER TABLE 表名 ADD CONSTRAINT 约束名 UNIQUE(列名)
(4) 删除唯一约束的语句是什么?
ALTER TABLE 表名 DROP KEY 约束名
(5) 添加外键约束的语句是什么?
ALTER TABLE 表 名 ADD CONSTRAINT 约 束 名 FOREIGN KEY( 列 名 )
REFERENCES 参照的表名(参照的列名)
(6) 删除外键约束的语句是什么?
删除外键:
ALTER TABLE 表名 DROP FOREIGN KEY 约束名
删除外键索引(索引名与约束名相同):
ALTER TABLE 表名 DROP INDEX 索引名
8. 向表中添加数据
(1) 在MySQL中向表中添加数据的语句是什么?
INSERT INTO 表名(列名 1,列名 2,列名 3.....) VALUES(值 1,值 2,值 3......)
(2) 向departments表中添加一条数据,部门名称为market,工作地点ID为1。
insert into departments(department_name,location_id) values("market",1);
9. MySQL的自动增长
(1) 在MySQL中对于自动增长类型有哪些要求?
• 一个表中只能有一个列为自动增长。
• 自动增长的列的类型必须是整数类型。
• 自动增长只能添加到具备主键约束与唯一性约束的列上。
• 删除主键约束或唯一性约束,如果该列拥有自动增长能力,则需要先去掉自动增长然
后在删除约束。
(2) 创建一个emp2表。包含id该列为主键,包含name,包含seq_num要求该列为具备唯一性约束,该列的值自动增长。
create table emp2(id int primary key ,name varchar(30),seq_num int unique
auto_increment);