Posted on 2008-09-30 00:58
∪∩BUG 阅读(401)
评论(1) 编辑 收藏 所属分类:
Database学习笔记
My SQL 学习笔记
2008 09 29
首先:MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQL AB公司。在2008年1月16号被Sun公司收购。
(1)系统管理
1.运行CMD后用CD命令到Mysql的BIN目录下(如:E:\Program File\MySQL\MySQL Server 5.0\bin)[以下几步的操作都在此目录下执行]
2.启动MySQL服务: net start mysql
3.连接MySQL: mysql -h localhost(主机) -u userName(用户) -p databaseName(可选) (然后输入密码)
4.修改root密码:
1)新密码不为空
mysqladmin -u root -p password 新密码 (然后输入:旧密码)
2)新密码为空
mysql -u root -p (然后输入:旧密码)
use mysql;
update user set password=password('') where user='root';
flush privileges; (刷新权限.)
quit (退出)
3)原密码为空
mysql -u root -p (然后回车)
use mysql;
update user set password=password('新密码') where user='root';
flush privileges; (刷新权限.)
quit (退出)
(2)基本命令(注意:执行语句以";"号或"\g"结束!)
1.列出My SQL的有多少个数据库: show databases;
2.选择某个数据库: use databaseName;
3.列出当前数据库中的所有表: show tables;
4.列出某个表的结构: desc tableName;
5.显示当前数据库: select database();
6.显示当前用户: select user();
7.显示时间: select now(); [按格式显示时间:select date_format(now(),'%Y-%m-%d %H:%i:%s');]
8.显示MySQL版本: select version();
(3)MySQL实现分页的思路
所谓分页显示,也就是将数据库中的结果集人为的分成一段一段的来显示,这里需要两个初始的参数:
每页多少条记录(PageSize)?
当前是第几页(CurrentPageID)?
现在只要给一个结果集,就可以显示某段特定的结果出来。
至于其他的参数,比如:上一页(PreviousPageID)、下一页(NextPageID)、总页数(numPages)等等,都可以根据前边这几个东西得到。
以mysql数据库为例,如果要从表内截取某段内容,sql语句可以用:select * from table limit offset, rows。
(offset是起始行(第一行从0开始),row是要显示的行个数)
看看下面一组sql语句,尝试一下发现其中的规率。
前10条记录:select * from table limit 0,10
第11至20条记录:select * from table limit 10,10
第21至30条记录:select * from table limit 20,10
……
这一组sql语句其实就是当PageSize=10的时候取表内每一页数据的sql语句,我们可以总结出这样一个模板:
select * from table limit (CurrentPageID - 1) * PageSize, PageSize
拿这个模板代入对应的值和上边那一组sql语句对照一下看看是不是那么回事。