主键(primary key) 用于唯一地标识表中的每一条记录 可以定义表中的一列或者多列主键。主键列上不能有两行相同的值,也不能为空值 sql语言 对数据库进行查询和修改的语言叫SQL语言,结构化的查询 ANSI(美国国家标准机构) SQL-92 经过92修改过后99年推出SQL-99 (1)数据定义语言ddl(data definition language):drop create alter等语句(增删改) (2)数据操作语言dml(data manipulation language):insert update delete语句(增删改) (3)数据查询语言dql(data query language):select(查询) (4)数据控制语言dcl(data control language):grant revoke commit rollback等语句 mysql的优势 1.开源:免费 2.速度:运行速度快 3.容易使用:和其他大型数据库相比复杂程度较低,方便学习 4.可移植性:能在不同平台进行工作,比如window Linux unix 5.接口丰富:c,c++,python,php,ruby,java都有相应的api接口 6.支持查询语言;MySQL可以利用标准sql语法支持ODBC的应用程序 7.安全性和连续性:十分灵活的权限和密码系统,允许基于主机的验证。链接到服务器时,所有的密码采用加密形式,保证密码安全。且可以在任何有网络的地方直接通过账户密码访问数据库,提高数据共享效率。 mysql的几个实用端 MySQL后台程序: mysqld:mysql启动程序 mysqld_safe:unix下启动mysql的启动脚本 mysql_multi:启动关闭脚本可以开启和关闭多台MySQL服务器 myisamchk:用来检查,维护和优化Myisam表的工具 mysqlbug:mysql的缺陷报告脚本 mysql.server 服务器启动脚本,用于使用特定级别的,运行启动服务的脚本,运行目录的系统。掉哟个mysqld_safe启动MySQL服务器 mysql_install_db:用于给MySQL进行初始化,通常在首次安装MySQL使用,用于设置日志等配置文件的存放位置 myisampack:压缩myisam表产生更小的只读表的工具 mysql:交互式输入sql语句或者从文件以批处理的方式执行文件的命令行工具 mysqlaccess:检测访问的主机名用户名数据库组合权限 检测权限的脚本 mysqladmin:更改我们MySQL的密码,执行各类管理操作,删除创建数据库,重载授权表,刷新日志,检索版本号,进程号以及服务器状态。 mysqlbinlog:查看二进制日志,可以用日志来恢复数据库数据 mysqlcheck:用于检查修复分析以及优化表的客户端程序 musqldump:将我们的数据库备份到指定的目录当中 mysqlhotcopy:当我们的MySQL处于运行过程中快速备份myisam表的工具 mysqlshow:显示数据库,表,列以及索引等相关信息的客户端程序 perror:显示系统错误代码含义的工具 MySQL中各个默认数据库 information schema : 信息数据库 储存关于MySQL服务器所维护的所有其他的数据库的信息。 mysql : 存放数据库的用户,权限设置,关键字等mysql自己需要使用的控制和管理信息。 performance_schema : 主要用于收集数据库服务器性能 只在5.5版本之后才有 数据库存储引擎 数据库存储引擎属于数据库底层软件组件,数据库管理系统使用数据引擎进行创建。查询,更新和删除数据的操作。 innodb: (1)事务性数据库首选引擎,支持行级别锁定和外键,使用事务安全模式创建表。且为mysql5.5版本之后默认存储引擎 (2)具有对事务的提交,回滚,崩溃能力的事务安全存储引擎,可以处理巨大的数据量,性能效率高。支持外键 (3)具有非常高效的缓存性能,能缓存索引也能缓存数据,对硬件要求较高。 (4)使用innodb时,将在mysql目录下创建一个名字较ibdatal的10MB自动扩展文件,以及两个名为ib_logfile0和ib_logfile1的5MB大小的日志文件。 innodb使用场景 (1)使用事务时选取innodb,高并发时使用innodb (2)数据更新较为频繁的场景 比如微博。 (3)数据一致性要求较高的业务,比如转账。 memory: (1)memory存储引擎将数据存储到内存中,提供快速访问 (2)支持hash和btree索引,不支持blob和text列,支持auto_increment列和对可包含null值的列的索引 (3)不使用memory表时,直接删除表或者清空表数据可以释放空间。 myisam: (1)myisam读取速度较快,占用资源相对较少,不支持事务,不支持外键,支持全文索引.空间索引 (2)myisam读写互相阻塞 (3)myisam只能缓存索引,不能缓存数据。 myisam使用场景 (1)不需要事务的业务 (2)适用于读取较多的业务,不适用与写数据较多的业务 (3)并发较低、数据修改少的业务 (4)硬盘资源较差可以选择适用myisam 查看所有的引擎的语法:show engines\G (\G是用于把结果更简洁更直观的显示出来) transactions:当前存储引擎是否支持事务 XA:是否支持分布式 savepoints:是否支持保存点 show variables like ‘storage_engine’;查看默认的存储引擎 不同的存储引擎功能不同,占用的空间不同,读取的性能不同 –(2)–
功能myisammemoryinnodb存储限制256TBRAM64TB支持事务NONOYES支持全文索引YESNONO支持数索引YESYESYES支持哈希索引NOYESYES支持数据缓存NONOYES支持外键NONOYES