1.MySQL 是什么? 1)软件(Software):工具(解决问题) 2)数据库管理系统(DBMS) 3)关系型(Relation)数据库管理系统(RDBMS):类似Oracle 扩展:db-engines(db引擎网站)-----了解一些非关系型数据库(key-value,Document等等) 网站:www.mysql.com www.oracle.com db-engines.com/en/ranking 2.MySQL 应用特点 1)简单 2)高效 3)可靠 4)... 3.MySQL 应用场景 1)WEB站点系统(如:www.mysql.com...) 2)日志处理系统(输入+存储+处理+输出) MySQL支持一种引擎---MyISM(不支持事务) 3)数据仓储系统(主从复制架构) 4)嵌入式系统(MySQL的伸缩性非常强) 4.MySQL 基本网络框架 1)Client 2)Server 3)TCP/IP 5.MySQL 的登录与退出 1)登录(控制台) mysql -u root -p 其中root用户为本机最高权限(u 和root之间可以不需要空格) 2)退出 quit 或者 exit c 结束当前命令 6.MySQL 基本指令的应用 登录以后可以: 1)查看登录用户:select user(); (了解)访问:mysql -u tedu -h 192.168.100.101 -p 2)显示当前系统mysql端口号:show variables like 'port'; variables /ˈveərɪəbl/ 3)查看mysql的状态信息:status 4)显示当前系统的存储引擎:show variables like '%storage_engine%'; 显示所有表的编码格式:show variables like '%character%'; 为character_set_server设置指定的字符编码:set character_set_server=utf8; 5)显示mysql中支持的存储引擎:show engines; 6)查看系统函数相关的帮助:help functions; 或者使用 ? functions; 7)查看当前系统的时间日期:select now(); 8)连接字符:select concat('My','S','QL'); 9)忘记指命或这某个单词的拼写,可以使用帮助,如(显示存储引擎): ? show; 指令之后查看帮助即可 面试题: 1)MySQL中的存储引擎是什么? 存储引擎:是mysql中负责存储及管理数据的一个服务. 2)MySQL中的存储引擎有哪些类型,有什么不同? 我了解的有InnoDB,MyISAM. InnoDB:支持事务,一般要保证数据安全(例如完整性,一致性) MyISAM:不支持事务,一般用于做日志存储(一般要求的是效率) 3)MySQL默认端口号? 3306,Oracle的是1521 7.MySQL 中SQL基本应用(DML,DDL,DCL) ------ DML:操作; DDL:定义; DCL:控制 (1)MySQL数据库相关操作?(创建/查看/使用/删除数据库) 1)查看当前用户下所有的库:show databases; 2)查看当前正在使用的数据库select database(); 3)打开/使用test数据库:use test; 4)创建tedu数据库:create database tedu; 或者create database if not exists tedu;不存在就创建tedu数据库 或者create database if not exists tedu character set 'utf8'; 指定字符集 5)查看创建数据库的语法: ? create database; 6)查看tedu数据库的格式:show create database tedu; 7)删除tedu数据库:drop database tedu; 或者drop database if exixts tedu;存在就删除tedu数据库 (2)数据中表的操作? 1)查看当前数据库中有哪些表(前提是要先打开数据库):show tables; 2)建pet表: create table pet ( id int primary key auto_increment,name varchar(100) not null, //primary key:主键 auto_increment:自增长(默认从1开始)----(oracle中用序列sequence) createdTime datetime not null )engine=InnoDB; 3)显示pet表结构:desc pet; 4)显示pet表的创建语句:show create table pet; 5)删除表(语法参考 ? drop table) 删除pet表: drop table pet; 或者 drop table if exits pet;表存在就删除 (3)表中数据的操作: 1)插入数据: insert into pet(id,name,createdTime) values (null,'A',now()); insert into pet values(null,'B',now()); insert into pet(name,createdTime)values('C',now()); insert into pet values(null,'D',now()),(null,'E',now()); 2)修改表中数据(update): update pet set name='AA' where id=1; 3)删除表中数据(delete):-------(delete是删除表中数据,drop是删除整个表) delete from pet where id=6; 4)查询表中数据(重点掌握mysql中分页查询) select * from pet; 查询pet表中所有数据 select username,password from sys_users; 查看sys_users表中指定字段(如:username,password) select * from pet limit 2; 查询pet表中前两行数据 select * from pet limit 2,4; 查询从第2条数据之后开始,依次显示4条数据(得到结果为:第3,4,5,6行的记录) select * from pet limit 2 offset 4; 从第5条数据开始显示开始,依次显示2条数据出来(得到结果为:5,6) 注:limit n,m 表示从第n条数据之后开始查找,依次查出m条数据 limit n ofset m 表示从m条数据开始显示,依次显示n条数据出来. a)现有10条记录,每页最多显示3条,总共有多少页?(Java代码) int rowCount = 10;(从数据库中获取) int pageSize = 3;(业务中定义) int pageCount = rowCount/pageSize; if(rowCount%pageSize != 0){ pageCount++; } b)获取第3页的数据?(通过SQL语句实现) select * from pet limit 6,3; //6是通过(3-1)*3得出的结果(要显示的页数-1)*每页几条数据 c)对查询结果按照id倒序排序? select * from pet order by id desc limit 6,3; 在mysql中例如有limit子句,那么此语句肯定是最后. 8.MySQL 中source指令应用 1)登录mysql 2)执行文件:source d:/ttmswork/day01/test.sql ------window系统 source //home/soft01/test.sql ----------linux系统 说明:使用source指令的时候,可能会出现乱码,解决方案: a)假如文件是utf8编码: step01:设置客户端的编码为utf8: 执行语句:set names utf8; step02:执行source指令,重新导入 当客户端查询显示还是乱码时,可以先执行set names gbk; 然后再执行查询操作. Tmocat中端口占用解决方案: 在Tmocat文件夹目录下面的lib文件中启动终端,输入指令: ./shutdown.sh 若提示权限不够,输入指令: chmod + *.sh;即可