1、mysql数据库简介
mysql数据库是一个开源免费的关系型数据库。目前属于oracle旗下产品。
特点
- 开源免费,可以定制,你可以修改源码来开发自己的msql系统。
- 使用标准的sql数据语言,兼容性较好
2、mysql 常用命令
- mysql -u root -p 登录
- show databases 显示所有的数据库
- show tables 显示指定数据库的所有表
- desc 表名 显示某种表的所有字段结构
- show index from tablename 显示某张表的索引
- use databaseName 使用某个数据库
3、数据库创建
1)创建数据库
语法:
create database [数据库名称] default character set utf8 collate utf8_general_ci;
create database [数据库名称] default charset utf8 collate utf8_general_ci;
charset 为编码格式
collate 为排序规则
示例:
create database testa default charset utf8 collate utf8_general_ci;
2)查看和修改数据库字符集
a.查看编码
show variables like 'character%';
b.更改数据库的字符编码
ALTER DATABASE db_name DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci
3)删除数据库
drop database 数据库名
create table tutorials_tbl(
tutorial_id INT NOT NULL AUTO_INCREMENT,
tutorial_title VARCHAR(100) NOT NULL,
tutorial_author VARCHAR(40) NOT NULL,
submission_date DATE,
PRIMARY KEY ( tutorial_id )
);
4、用户管理
1)创建用户
语法:
CREATE USER 'username'@'host' IDENTIFIED BY 'password';
例子:
CREATE USER 'dog'@'localhost' IDENTIFIED BY '123456';
CREATE USER 'pig'@'192.168.1.101_' IDENDIFIED BY '123456';
CREATE USER 'pig'@'%' IDENTIFIED BY '123456';
2)给用户授权
语法:
GRANT ALL PRIVILEGES ON 数据库名.* TO '用户名'@'%' IDENTIFIED BY 密码;
取消授权:revoke 权限 from db@服务器地址;
show grants for '用户'@'IP地址' -- 查看权限
示例:
GRANT ALL PRIVILEGES ON isignatureserver.* TO 'kinggrid'@'%' IDENTIFIED BY 'kinggrid';
3)修改密码
mysqladmin -u用户名 -p旧密码 password 新密码。
set password for '用户名'@'IP地址' = Password('新密码')
4)删除用户
DROP USER 'username'@'host';
5、存储引擎
查看当前存储引擎
SHOW ENGINES;显示所有支持的存储引擎
SHOW VARIABLES LIKE 'storage_engine'; 显示当前引擎
常见的四种存储引擎
-
InnoDB存储引擎:
支持自动增长列,支持外键约束,支持事务,相对访问速度略差,mysql默认使用该引擎。 -
MyISAM存储引擎 :
不支持事务、也不支持外键,优势是访问速度快,对事务完整性没有 要求或者以select,insert为主的应用基本上可以用这个引擎来创建表 -
MEMORY存储引擎
memory类型的表访问非常的快,因为它的数据是放在内存中的,并且默认使用HASH索引,但是一旦服务关闭,表中的数据就会丢失掉。 -
Archive存储引擎
仅支持insert和select
支持很好的压缩功能
不支持事务,不能很好的支持索引
适用于:存储日志信息,或其它按时间序列实现的数据采集类的应用,如监控日志。
6、mysql 分页
mysql中分页使用limit来实现
语法:
select * from table limit 起始位置,查询的记录条数
mysql> SELECT * FROM table LIMIT 5,10; // 检索记录行 6-15
//为了检索从某一个偏移量到记录集的结束所有的记录行,可以指定第二个参数为 -1:
mysql> SELECT * FROM table LIMIT 95,-1; // 检索记录行 96-last.
//如果只给定一个参数,它表示返回最大的记录行数目:
mysql> SELECT * FROM table LIMIT 5; //检索前 5 个记录行
//换句话说,LIMIT n 等价于 LIMIT 0,n。
7、mysql 和oracle的区别
- mysql 开源免费 而oracle是收费不开源的
- mysql 一般用于中小型项目或互联网,而oracle一般用于大型企业
- mysql 有自增主键,而oracle 需要使用序列来完成。
- mysql 使用双引号来包裹字符,而oracle使用单引号
- 分页查询语句不一样 mysql使用limit 而oracle 通过rownum
网友评论