MySQL的基本操作
MySQL的版本
社区版:可自由下载且完全免费,但官方不提供任何技术支持,适用于大多数普通用户
企业版:不能自由下载且收费,该版本提供了更多的功能,可以享受3完备的技术支持,适用于对数据库的功能和可靠性要求比较高的企业用户
MySQL的优势
1、运行速度快。MySQL体积小,命令执行的速度快
2、使用成本低。MySQL是开源的,且提供免费版本,对大多数用户来说大大降低了使用成本
3、容易使用。与其他大型数据库的设置和管理相比,其复杂程度低,易于使用
4、可移植性强。MySQL能够运行与多种系统平台上,如Windows、Linux、UNIX等
5、适用于更多用户。MySQL支持最常用的数据管理功能,适用于中小型企业甚至大型网站应用
端口设置
在设置networking options(网络选择)时,默认启用TCP/IP网络,默认端口为3306,勾选“Addfirewall exception for this port” 复选框,防火墙允许该端口访问
默认字符集设置
Standard Character Set(标准字符集):MuSQL提供的标准字符集默认为Latin1
Best Support Multilingualism(支持多语言最好的字符集):默认值为UTF8
Manual Selected Default Character Set/Collation(人工选择的默认字符集/校对规则):如果需要手动设置服务器的默认字符集,可点此单选按钮,从下拉列表中选择期望的字符集
将bin目录写入环境变量
将安装目录下bin文件夹完整路劲(如C:Program Files\MySQL\MySQL Server5.5\bin)写入path环境变量
- bin文件夹:该文件夹下存放着可执行文件
- include文件夹:该文件夹下存放着头文件
- lib文件夹:该文件夹下存放着库文件
- share文件夹:该文件夹下存放着字符集、语言等信息
- MySQL安装目录下的my.in的文件是MySQL软件正在使用的配置文件
通过修改MySQL配置文件来手动配置数据库服务器MySQL时,常用的参数如下:
- default-character-set:客户端默认字符集
- character-set-server:服务器端默认字符集
- port:客户端和服务器端的端口号
- default-storage-engin:MySQL默认储存引擎
检查是否启动服务
(1)、右击“计算机”图标,在弹出的快捷菜单中选择“管理”命令,打开“计算机管理”窗口
(2)、选择“计算机管理(本地)”→“服务和应用程序”→“服务”节点,右侧窗格中显示Windows系统的所有服务,包括MySQL服务
(3)、查看MySQL服务可以发现该服务已处于启动状态
提示:
如果修改了MySQL软件的配置文件,则必须要重新启动MySQL服务后,修改的内容才能生效
除通过操作系统提供的界面设置服务之外,也可以通过在DOS窗口输入“net start mysql” 指令启动MySQL服务,通过输入“net stop mysql” 指令停止MySQL服务
命令行方式连接数据库
语法:mysql -h 服务器知己地址 -u 用户名 -p 密码
登录后的效果如图所示:
或者通过MySQL自带的“MySQL Command Line Client” 连结数据库来登录MySQL数据库,无需命令,只需提示输入密码,如图所示:
MySQL中数据库的类型
1、系统数据库
- information_schema:主要存储系统中的一些数据库对象信息,如用户表信息,字段信息、权限信息、字符集信息和区分信息
- performance_schema:主要存储数据库服务器性能参数
- mysql:主要存储系统的用户权限信息
- test:MySQL数据库系统自动创建的测试数据库,任何用户都可以使用
2、用户数据库
用户数据库是用户根据需求创建的数据库
操作数据库
1、创建数据库
语法:CREATE DATABASE 数据库名;
提示:
- “Query OK”:表示SQL语句执行成功
- ”1 row affected“:表示操作影响行数
- ”0.00sec“:表示操作执行时间
2、查看数据库列表
语法:SHOW DATABASES;
3、选择数据库
语法:USE 数据库名;
如果数据库不存在,则会报错;如果存在且用户有访问,则提示”Database changed“,即数据库已切换
4、删除数据库
语法:DROP DATABASE 数据库名;
通过SQLyog连接MySQL
1、登录MySQL
双击SQLyog 图标,单击”新建“按钮,新建连接为”MySQL“(名称自取),正确的输入服务器地址、用户名、密码、端口号,在”数据库“文本框中填写数据库名称,如果不写,则显示所有数据库。配置完毕后,可单击”测试连接“按钮,查看是否连接成功
2、连接MySQL
配置成功后,单击”连接“按钮,进入SQLyog的操作界面,在左侧的对象资源管理器中显示了MySQL数据库管理系统中所有的数据库
使用SQLyog工具创建数据库
1、通过操作向导创建数据库
操作过程和SQL Server数据库相似,右击对象资源管理器窗口的空白处,在弹出的快捷菜单中选择“创建数据库”命令
2、通过SQL语句创建数据库
可以在Query窗口中通过SQL语句来实现数据库的创建
在”历史“的窗格中,可以查看操作的历史记录
回顾结构化查询语言
(1)、DML(数据操作语言):用来插入、修改和删除表中的数据,如INSERT、UPDATE、DELETE等
(2)、DDL(数据定义语言):在数据库中创建和删除数据库对象等操作,如CREATE、DROP、ALTER等语句
(3)、DQL(数据查询语言):用来对数据库中的数据进行查询,指SELECT语句
(4)、DCL(数据控制语言):用来对数据库组件的存取许可、存取权限等,如GRANT、REVOKE等
数据类型
创建数据库表的步骤:
- 确定表中有哪些字段
- 确定每字段的数据类型
- 给表添加各种约束
- 创建各表之间的关系
1、数值类型
2、字符串类型
3、日期类型
创建表
1、语法
CREATE TABLE [IF NOT EXISYS] 表名(
字段1 数据类型 [字段属性|约束][索引][注释],
字段2 数据类型 [字段属性|约束][索引][注释],
.......
字段n 数据类型 [字段属性|约束][索引][注释],
)
例如:
create table `student`(
`studentNo` int(4) not null primary key comment '学号',
`loginPwd` varchar(50) not null comment '密码',
`studentName` varchar(50) not null comment '姓名',
`sex` char(2) default '男' not null comment '性别',
`greadId` int(4) unsigned comment '联系电话',
`phone` varchar(50) comment '联系电话',
`address` varchar(255) default '地址不详'comment '地址',
`bornDate` datetime comment '出生日期',
`email` varchar(50) comment '邮箱帐号',
`identityCard` varchar(18) unique key comment '身份证号'
)comment='学生表';#这是注释
注意:
- 在MySQL中,如果使用的数据库名、表名或字段名等与保留字冲突时,需要使用撇号括起来
- 使用CREATE TABLE语句创建表时,多字段之间使用逗号(,)分割,最后一个字段后无须逗号
- MySQL中常用的两种注释方式:
- 单行注释:#.......。
- 多行注释:/*......*/
- 表中的字段也可称为列
2、字段的约束及属性
单字段主键
(1)、在定义字段的同时指定主键
语法:
CREATE TABLE [IF NOT EXISTS] 表名(
字段1 数据类型 PRIMARY KEY,
.......
)
(2)、在定义所有字段之后指定主键
语法:
CREATE TABLE [IF NOT EXISTS] 表名(
字段1 数据类型,
.......
[CONSTRAINT<约束名>] PRIMARY KEY[列名]
)
多字段主键
主键由多字段组成
语法:
CREATE TABLE [IF NOT EXISTS] 表名(
.......
PRIMARY KEY[字段1,字段2......]
)
3、注释
在创建表的同时可以为表或字段添加说明性的文字,即注释,使用COMMENT关键字来实现
4、编码格式设置
在默认情况下,MySQL 所有数据库、表、字段等使用MySQL默认字符集,可以通过my.in文件中的default→character→set参数来修改默认字符集
当在特定情况下,为达到特殊存储内容的要求,课指定其他字符集,语法如下:
CREATE TANLE [IF NOT EXISTS] 表名(
#省略代码
)CHARSET=字符集名;
查看表
创建完表之后,如果需要查看一下是否存在,可以使用查看表的SQL命令,语法如下:
SHOW tables;
注意:在使用SHOW tables之前,必须先选择数据库,否则将会报错误提示“No database selected”
如果需要查看表的定义,可以通过查看表的定义,可以通过执行SQL语句DESCRIBE来实现,语法如下:
DESCRIBE 表名;
或
DESC 表名;
注意:如果当前MySQL设置的默认编码格式为非GBK格式,则可能产生乱码,因此在输信息之前执行“ SET NAMES gbk; ”这条语句相当与同时执行了以下3条语句:
SET character_set_client=gbk;
SET character_set_results=gbk;
SET character_set_connection=gbk;
删除表
语法:DROP TABLE [IF EXISTS] 表名;
常用的存储引擎
InnoDB和MyISAM存储引擎比较
功能
|
InnoDB
|
MyISAM
|
支持事务
|
支持
|
不支持
|
支持全文索引
|
不支持
|
支持
|
外键约束
|
支持
|
不支持
|
表空间大小
|
较大
|
较小
|
数据行锁定
|
支持
|
不支持
|
MyISAM存储引擎:该存储引擎不支持事务,也不支持外键,访问速度比较快,因此对不需要事务处理,空间小,以访问为主的应用适合该引擎
InnoDB存储引擎:在事务处理上有优势,支持具有提交,回滚和崩溃恢复能力的事务安装,多用于删除,更新操作,安全性高,事务处理及并发控制
操作默认存储引擎
安装版MySQL5.5默认的存储引擎是InnoDB ,可以通过一下语句查看当前默认的存储引擎:
语法:SHOW VARIABLES LIKE ‘storage_engine%’;
如果修改默认存储引擎,可以通过配置向导,也可以通过修改配置文件my.ini来实现,修改内容如下:
default_storage_engine=InnoDB
指定表的存储引擎
语法:
CREATE TABLE 表名(
#省略代码
)ENGINE=存储引擎;
MyISAM类型表文件
*.frm:表结构定义文件
*.MYD:数据文件
*.MYI:索引文件
InnoDB类型表文件
*.frm:表结构定义文件
ibdata1文件