您的位置:首页 > 数据库 > MySQL

数据库mySQL

2016-03-03 19:01 591 查看
数据库database

数据库服务器database server 可以操作数据库并提供相关服务的软件。

主要介绍学习到的MySQL的内容。

它是C/S模式(客户端/服务器),客户端与服务器通过网络连接交互数据,当然客户端与服务器也可以在通一台电脑上。数据库的启动和停止可以在“控制面板|管理工具|服务”里控制。

安装的话没有什么特别的,安装过程中需要设置root用户的密码,安装完成后,可进行服务器的配置,1)通过修改配置文件my.ini,使其在Windows下区分大小写,因为默认是不区分的;2)防火墙配置,MySQL是以TCP提供服务,端口号默认是3306,要想用客户端从另一台电脑上连接它,需配置防火墙,使之开放3306端口,为简单起见,可直接禁用防火墙。

安装好数据库后,我们可以使用一个客户端来连接它,从而进行相关的操作。SQLyog就是一个客户端,供用户使用来进行数据库操作。它可以连接到mysql主机、http管道、ssh隧道以及ssl加密,是一款功能强大的数据库管理工具。

连接好数据库后,可以在SQLyog客户端进行相关的操作。可以在客户端直接进行操作,也可以通过SQL语句。

首先对数据库的基础知识进行介绍。

一个库中,可以存放多个表,表中可以有多个列,每个列的数据类型主要有以下几种:

1)整数,tinyint(一个字节,-128-127,,smallint(2字节),mediumint(3字节),int(4字节),bigint(8字节)

2)小数,float,double

3)字符串 char(定长字符串,较短长度,查询快,有可能浪费空间),varchar(可变字符串,中等长度,节省空间,按输入实际长度保存)

4)长文本 text(存储超长文本)

5)时间 date(年月日),time(时分秒),datetime(年月日时分秒),timeistamp(整数值)

6)二进制数据 blob(大块数据)

编辑表的格式,新建表时,要设定其每一列的属性(类型、索引、自增、默认值),统称为schema。

1)列名,有两种常用的:1.小写,单词之间加下划线,log_text; 2.第二单词首字母大写,logText。不能使用SQL的关键词作为列名字,如int、text、type、limit、group等。

2)列的属性:非空,空值NULL;自增;主键(primary key),用于唯一的标识一条记录,MySQL可自动检测是否重复,性质:该字段不允许重复,且不允许为空值NULL;

索引,用该字段的值单独存储,并且是排序后存储,好处是用于加快排序和查找,坏处是建立和更新索引需要时间,而且索引本身多占了一些存储空间。索引又分为唯一索引(该索引的字段不允许重复)和普通索引(允许重复),主键也是一种唯一索引。当数据库读多写少,可添加索引,当写操作频繁时,要慎重加索引。

然后是SQL语句的相关介绍。

SQL(structured query language,结构化查询语言),用于跟SQL服务器对话。SQLyog是将SQL脚本传给服务器,让服务器执行,然后服务器将结果传给SQLyog,SQLyog将结果呈现给用户。另外SQLyog虽然可视化操作,内部还是SQL语句,可以通过历史记录窗口查看。菜单:“工具|历史记录”。

下面是SQL语法介绍。

1)使用/* */ 添加注释。

2)每个SQL语句末尾要加分号,中间可以换行。

3)关键词建议大写,有的服务器可能并不区分大小写。

4)创建数据库 CREATE DATABASE `example`;删除数据库 DROP DATABASE `example`(反引号,不是单引号)。

5)创建表 CREATE TABLE `simple`(`id`int(11) NOT NULL,`name`char(32)DEFAULT NULL,PRIMARY KEY('id'));删除表 DROP TABLE 'simple'。

6)使用SQLyog可以:a.将数据库的内容导出(备份),数据库-右键“备份”;b.导入数据(恢复),可以将代码复制到查询编辑器运行,也可以数据库-右键“导入”。

7)对数据库进行相关的操作:

a,指定要操作的数据库 USE <数据库名>。

b.添加记录 INSERT INTO<表名><列名>VALUES<数据(列值)>;列名、数据有多个时用括号括起来,表名列名用的反引号,而数据用的单引号;可以一次INSERT多行数据,每行以括号括起来,中间以逗号隔开;空值以NULL指定;数字类型可以不加引号,但字符串类型和日期时间类型都要加引号。

c.查询记录 SELECT<列>FROM<表> ; 用*表示所有列,SELECT*FROM`student`;AS:列的别名,SELECT `id` AS `学号` FROM `student`;

查询条件WHERE SELECT<列>FROM<表>WHERE<条件>,WHERE id=201511,WHERE条件表达式:数值比较,大于,等于,小于,不等于<>,大于或等于>=, 小于或等于<=;日期比较,只要加单引号 WHERE birthday <'19940-1-1';字符串比较:大小比较,按ASII码比较,字符串比较,LIKE通配符比较%,例 如查找所有以’shao‘开头的,WHERE
'name' LIKE 'shao%',MySQL还支持用正则表达式REGEXP来匹配字符串;空值比较:判断是否为NULL,是空值,WHERE 'birthday' IS(NOT) NULL;WHERE逻辑运算符 AND:并且,OR:或者,NOT:非

查询记录:排序与分页 ORDER BY对结果排序,ASC升序,DESC降序,ORDER BY<列名>ASC SELECT* FROM 'student' ORDER BY 'birthday' ASC

LIMIT(MySQL特有的关键字) 分页显示 LIMIT start,n;此外MYSQL还内置了好多函数,例如COUNT('id')进行计数,DAYOFWEEK()函数用于求一个日期对应是星期几。

查询记录:联合查询 WHERE

内联(交集) 关键字....FROM ....INTER JOIN ....ON.....(ON指定了联接条件)

外联 (缺项补NULL) 左外联:LEFT OUTER JOIN 右外联:RIGHT OUTER JOIN 全外联:FULL OUTER JOIN (MySQL不支持),都可简写去掉 outer

d修改记录 UPDATE<表> SET<列1>=<值1>,<列2>=<值2>WHERE<条件>;

e删除记录 DELETE FROM<表>WHERE<条件>。

另外,MySQL提供了API(应用程序接口),程序员调用库里的函数就能与数据库交互。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: