计算机中要处理大量的信息,而这些信息采用什么方式保存是一个关键的问题。在应用程序中, 若需要处理大量的数据,通常都使用数据库来保存这些数据。 目前Internet上流行的网站架构方式称为LAMP,就是用linux+Apache+Mysql+php,来架构网站, 其中linux作为操作系统,Apache作为Web服务器,Mysql作为数据库,php作为服务端脚本解释器。 Mysql能得到快速发展,与其具有移植性,开源等特点是分不开的。 总结起来,Mysql具有一起特点: 1.同时访问数据库的用户数量不受限制。 2.可以同时处理上千万条记录的数据库,对于绝大多数应用都已经足够。 3.运行速度快。 4.用户权限设置简单,有效。 5.使用c和c++编写,使用了多种编译器进行测试,保证了源代码的可移植性。 6.支持多种操作系统平台。 7.提供多种程序语言的接口,包括c,c++,java,php等。 8.支持多线程,可充分利用cpu资源。 9.支持多种网络协议,提供TCP/IP,ODBC,JDBC等多种数据库连接途径。 msql可以采用源码安装也可以采用采用RPM包来安装。 安装mysql是常常会出现依赖错误的情况,这是就需要根据错误提示信息逐个安装有依赖关系的安装包。 默认安装目录 将mysql安装到系统后,相关文件被分散在多个目录,很有必要了解这些文件所处的位置,下面列出 几个重要的目录。 1.服务进程启动目录:/etc/rc.d/init.d/,在linux中,该目录用来保存服务程序的启动进程, mysql的服务启动命令mysqld也保存在这里。 2.操作命令目录:/usr/bin/,在该目录中,保存着对数据库进行操作的命令,如用mysql命令可登陆 到服务器进行操作。 3.配置文件目录:/usr/share/mysql/,在该目录中,保存着mysql服务器程序使用的各种配置文件, 4.数据库目录:/var/lib/mysql/,在该目录中保存着mysql服务器管理的数据库(可以有多个数据库 ),每一个数据库又以一个子目录的形式存在。
mysql基本操作 设置数据库管理员密码 默认情况下,数据库有一个名为root的用户,该用户初始状态下为无密码。在使用之前,对该用户 设置密码,是很重要的操作。 可以使用mysqladmin 命令来为数据库用户设置密码 mysqladmin -u 用户名 -p 旧密码 password 旧密码 登录数据库用:
mysql [-u username] [-h host] [-p [password]] [dbname]
-u username:设置mysql用户名,初始管理员账户root (不是登录到linux的系统管理员)。
-h host:设置运行数据库服务进程计算机的域名或者IP地址。
-p[password]:对应用户密码。
dbname:操作数据库的名称,在操作过程中也可以切换操作的数据库。
如果未设置数据库管理员root的密码,直接输入mysql就可进入数据库操作界面
退出登录用quit.
查看数据库库名称列表
不要忘了在语句最后输入一个分号,若未输入分号就按Enter键,mysql将在下一行等待用户输入命令的后序内容,这是输入一个分号,再按Enter键即可。
show databases;语句将只显示当前帐户有权操作的数据库,对于无权操作的数据库,将不会显示出来。
系统里面自带了4个数据库
我们先打开其中的stu
查看表名列表
查看表结构
遍历表
新建数据库
新创建的数据库中都会有红色部分。
删除数据库
新建表
查看表结构
增加字段
对于表,可以看成是由列和行构成的,其中“经常被称为字段;
如果想增加在表的第一个位置添加一个字段 那么就在属性类型后面添加first。
在表的最后一个位置添加字段
删除表 drop table 表名1,表名2;
向表中新增记录
查看记录
删除记录
Mysql数据导入导出
首先介绍导出
可以将数据库中指定表的记录导出为文本文件,从而达到备份的目的。
将Mysql数据导出为文本文件的命令是mysqldump,这是在linux的shell状态下执行的命令,不是mysql环境中执行的语句。
该命令的格式为:
mysqldump -u 用户名 -p 数据库名 表名
这儿密码不用输入,因为我没有设密码,直接按Enter键。
-- MySQL dump 10.13 Distrib 5.1.61, for redhat-linux-gnu (i386) -- -- Host: localhost Database: student -- ------------------------------------------------------ -- Server version 5.1.61 /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; /*!40101 SET NAMES utf8 */; /*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; /*!40103 SET TIME_ZONE='+00:00' */; /*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; /*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; /*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; -- -- Table structure for table `info` -- DROP TABLE IF EXISTS `info`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `info` ( `sno` varchar(10) DEFAULT NULL, `name` varchar(10) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Dumping data for table `info` -- LOCK TABLES `info` WRITE; /*!40000 ALTER TABLE `info` DISABLE KEYS */; INSERT INTO `info` VALUES ('3','lei'),('1','zhang'); /*!40000 ALTER TABLE `info` ENABLE KEYS */; UNLOCK TABLES; /*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; /*!40101 SET SQL_MODE=@OLD_SQL_MODE */; /*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; /*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; /*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; -- Dump completed on 2015-05-23 6:15:05
以上命令导出数据库student中的表info中的内容,命令中将mysqldump命令的输出作了一个重定向,保存在stu_info_dump.db文件中。
从上面文件的内容可以看出,导出的数据实际上是创建的表的语句,生成插入数据的语句等内容,本例中只导出student数据库中一个表。
执行导出的脚本文件中的语句即可恢复数据库或表。
数据导入
mysql可将外部具有规定格式的数据导入到数据库中。
可将符合规则格式的文本数据导入到数据库对应的表中。所谓的符合规则格式的文件,是指文本文件按导入表的字段数据类型按行输入数据,文本文件中的每一行对应表中一条记录,而用Tab符隔开的每一部分对应记录中的每一个字段。如果不知道数据库中导入表的字段顺序规则,最好先使用describe语句查看表的结构。
具体步骤:
最后是个空行,注意下
用vim编辑器按info表中字段顺序编写一个文本文件data.txt,每个域之间用制表符Tab进行分割,每行为一条记录。
提示1.最好用vim编辑器,不要用记事本操作,会出现意想不到的错误。
提示2.最好将文件保存到当前工作目录,且当前用户对该文件具有操作权限。
存储引擎
显示当前数据所支持的存储引擎
comment参数表示关于存储引擎的评论;transactions参数表示存储引擎是否支持事物YES表示支持,NO表示不支持。XA参数表示存储引擎所支持的分布式是否符合XA规范,savepoints参数表示存储引擎是否支持事物处理中的保存点,其中YES表示支持,而值NO表示不支持。
创建视图
查看视图
通过查看系统表infomation_schema.views来查看视图对象view_select的相关信息的功能
操作表的约束
创建和查看索引
在上述语句中,创建表dep_index的同时设置了关于字段depno的索引对象index_depno.
为了校验数据库表dep_index中索引是否创建成功,执行
创建存储过程
画横线部分应该中间用空格隔开delimiter ;
通常在创建存储过程时,通过命令"delimiter $$"将SQL语句的结束符由";"符号修改为$$.这主要是因为SQL语句中默认语句结束符为分号(;),即存储过程中的SQL语句
也需要用分号来结束,当将结束符号修改成"$$"符号后就可以在执行过程中避免冲突。不过最后一定不要忘了通过命令"delimiter ;"将结束符号修改为SQL语句中默认的结束符号。
drop procedure pro_dept;//删除存储过程。