MySql基本使用方法
一,基本概念
1, 常用的两种引擎: (1) InnoDB a,支持ACID,简单地说就是支持事务完整性、一致性; b,支持行锁,以及类似ORACLE的一致性读,多用户并发; c,独有的聚集索引主键设计方式,可大幅提升并发读写性能; d,支持外键; e,支持崩溃数据自修复; InnoDB设计目标是处理大容量数据库系统,它的CPU利用率是其它基于磁盘的关系数据库引擎所不能比的。 它是一个可靠地事务处理引擎,不支持全文本搜索 (2) MyISAM a,不支持 每次查询具有原子性 b,只支持表所 c,强调的是性能,其执行数 度比InnoDB类型更快,但是不提供事务支持 d,如果执行大量的SELECT,MyISAM是更好的选择 2, 介绍: a,数据库-database 保存有组织的数据的容器(通常是一个文件或一组文件) b,表-table 某种特定类型数据的结构化清单 c,模式-schema 关于数据库和表的布局及特性的信息 d,列-column 表中的一个字段,所有表都是由一个或多个列组成的 e,行-row表中的一个记录
f,数据类型-datatype
所容许的数据的类型。每个表列都有相应的数据类型,它限制(或容许)该列中存储的数据 二,mysql命令行 1,连接mysql 格式: mysql -h主机地址 -u用户名 -p用户密码 a, 连接到本地MYSQL 首先打开DOS窗口,然后进入目录mysql\bin,再键入命令mysql -u root -p, 回车后提示你输密码。 MYSQL的提示符是: mysql> 。(默认root用户没有密码) b,连接到远程主机上的MYSQL 假设远程主机的IP为:218.105.110.116,用户名为root,密码为abcd123456。 则键入以下命令:mysql -h218.105.110.116 -u root -p abcd123456;(注:u与root之间可以不用加空格,其它也一样)。 2, 启动mysql服务 net start mysql 3,停止mysql服务 net stop mysql 4,查询端口是否冲突netstat –na | findstr 8080 查看被监听的端口 , findstr用于查找后面的端口是否存在。
5,退出mysql
quit或者exit退出 6,修改密码: 格式:mysqladmin -u用户名 -p旧密码 password 新密码 例如给root修改密码: mysqladmin -u root -p ab12 password djg345 三,显示命令 1.显示当前数据库服务器中的数据库列表 mysql> SHOW DATABASES;2.显示某个数据库中的数据表
mysql> USE 库名;//使用某个库
mysql> SHOW TABLES;//列出库中所有的表 3.显示数据表的结构 mysql> DESCRIBE 表名; 4.建立数据库 mysql> CREATE DATABASE 库名;。 5.建立数据表 mysql> USE 库名。 mysql> CREATE TABLE 表名 (字段名 VARCHAR(20), 字段名 CHAR(1));。 6.删除数据库 mysql> DROP DATABASE 库名;。 7.删除数据表 mysql> DROP TABLE 表名;。 8.将表中记录清空 mysql> DELETE FROM 表名;。 9.显示表中的记录 mysql> SELECT * FROM 表名;。 10.往表中插入记录 mysql> INSERT INTO 表名 VALUES (”hyq”,”M”);。 11.更新表中数据 mysql-> UPDATE 表名 SET 字段名1=’a',字段名2=’b’ WHERE 字段名3=’c';。 12.用文本方式将数据装入数据表中 mysql> LOAD DATA LOCAL INFILE “D:/mysql.txt” INTO TABLE 表名;。 13.导入.sql文件命令 mysql> USE 数据库名;。 mysql> SOURCE d:/mysql.sql;。 14.命令行修改root密码 mysql> UPDATE mysql.user SET password=PASSWORD(’新密码’) WHERE User=’root’;。 mysql> FLUSH PRIVILEGES;。 15.显示use的数据库名 mysql> SELECT DATABASE();。 16.显示当前的user mysql> SELECT USER();。
视图
视图是一个虚拟表(非真实存在),其本质是【根据SQL语句获取动态的数据集,并为其命名】,用户使用时只需使用【名称】即可获取结果集,并可以将其当作表来使用。
触发器
对某个表进行【增/删/改】操作的前后如果希望触发某个特定的行为时,可以使用触发器,触发器用于定制用户对表的行进行【增/删/改】前后的行为。
存储过程
存储过程是一个SQL语句集合,当主动去调用存储过程时,其中内部的SQL语句会按照逻辑执行。
函数
MySQL中提供了许多内置函数
事务
事务用于将某些操作的多个SQL作为原子性操作,一旦有某一个出现错误,即可回滚到原来的状态,从而保证数据库数据完整性。
存储过程和函数存在以下几个区别:
1)一般来说,存储过程实现的功能要复杂一点,而函数的实现的功能针对性比较强。存储过程,功能强大,可以执行包括修改表等一系列数据库操作;用户定义函数不能用于执行一组修改全局数据库状态的操作。
2)对于存储过程来说可以返回参数,如记录集,而函数只能返回值或者表对象。函数只能返回一个变量;而存储过程可以返回多个。存储过程的参数可以有IN,OUT,INOUT三种类型,而函数只能有IN类~~存储过程声明时不需要返回类型,而函数声明时需要描述返回类型,且函数体中必须包含一个有效的RETURN语句。
3)存储过程,可以使用非确定函数,不允许在用户定义函数主体中内置非确定函数。
4)存储过程一般是作为一个独立的部分来执行( CALL 语句执行),而函数可以作为查询语句的一个部分来调用(SELECT调用)。 SQL语句中不可用存储过程,而可以使用函数