1. 安装
1.1 解压mysql安装包,并添加环境变量
1.2. 修改my.ini
1、将mysql目录下的其中一个my-xx.ini重命名为my.ini
2、打开my.ini,在该文件中的[mysqld]下面增加两个配置信息
basedir=指向mysql的目录,datadir指向mysql的数据库存储目录
1.3. 安装服务
1、进入命令提示符并且进入到mysql的bin目录(虽然已经配置了path,但是依然在安装时建议进入mysql的bin目录)
2、输入mysqld install完成安装(输入mysqld remove可以完成卸载)
3、使用net start mysql可以启动服务
1.4. 进入mysql
使用mysql -u root -p回车之后输入密码可以进?入mysql
使用show databases可以查询mysql中的所有数据库
2. 数据库的创建
2.1 创建数据库
create database xxs
2.2 使用数据库
要为数据库创建表,首先需要使用use来指定当前空间的数据库
use xxx
2.3 显示数据库中的表
show tables可以查询数据库中的所有表
如果希望查询某一张表的结构
desc 表名称
2.4 删除数据库
该操作一定要慎重,如果删除就无法恢复?了!
drop database xxx
2.5 导入脚本文件
通过source导入,注意此时导入是有正反斜杠的区分,\不能使用,因为是转义字符,必须使用\\或者/
2.6 为用户授权
GRANT ALL ON itat_test.* TO 'itat'@'localhost' IDENTIFIED BY 'itat123';
以上语句完成了,创建一个itat的用户,密码是itat123,可?以对itat_test数据库中的所有表进行所有的操作。
使用这种方式也可以完成对用户密码的修改
GRANT ALL ON *.* TO 'root'@'localhost' IDENTIFIED BY '123456';
以上语句可以修改root的密码
3. 表的基本操作
对于数据库而言,都是通过数据表进行数据的存储的
数据表如何和一个对象进行对应
每一张数据表多数情况都是一个类
类中的每一个属性就是数据表中每一个字段
对于数据表而言,都必须有一个不能重复的字段作为主键(建议将主键设置为一个没有任何意义的字段,通常会使用一个自动递增的id字段作为主键)
对象之间的关系也要进行存储
对象与对象之间的关系有:
1、1对1关系:外键可以存储在任意一个表中
2、1对多关系:在多的一端增加外键
3、多对多关系:需要增加中间表进行关联
3.1 创建表
1、常用数据类型
int表示整型
folat表示浮点类型
varchar表示字符串类型
text表示文本类型
BINARY表示二进制类型
DATE表示日期类型(仅仅只表示年月日)
TIME表示时间的时分秒
DATETIME表示存储的是日期和时间(和TIMESTAMP类似)
2、数据表的命名规则建议断字使用下划线,user_id,创建表的名称,普通表建议使用t_xx来命名,t_user,temp_user
3.2 删除表
drop table xxx
3.3 修改表结构
3.4 查询表
show tables查询数据库中的所有表
desc t_xx查询表结构
3.5 创建关联表
创建一个对象
public class Student {
int id;
String name;
String no;
Date born;
int claId;
}
public class Classroom{
int id;
String name;
int grade;
}
4. 数据表中的操作
4.1 插入数据
insert into t_user (username,password,nickname) value ('zhangsan','123','张三');
以下方式必须写出所有的字段
可以通过insert into xxx select xx插入已有表中的数据
4.2 简单查询
select * from 表名
查询条件
select * from t_user where 条件
4.3 更新
update 表名 set 字段名=新的值 where 条件
4.4 删除
delete from 表名 where 条件
使用truncate可以清空表中的全部信息,而且可以将自动递增的标识清空
4.5 常用查询
like表示模糊查询 like '张%'模糊查询张xx的数据
select * from t_stu where name like '李%';(查询姓名为李xx的学生)
in表示某个值在某个数组中
select * from t_stu where cla_id in(1,2);(查询在1和2班级中的学生)
between可以查询某个范围内的数据
select * from t_stu where born between '1989-11-01' and '1990-12-11';(查询出生日期在1989-11-01日至1990-12-11日的学生)
可以通过一些函数进行查询
查询姓李的学生的姓名和年龄,as表示可以为投影取一个别名
查询为空的值应该使用is null而不是用=null
max()表示获取最大值
min()表示获取最小值
count()表示统计数量
排序
select * from t_stu where cla_id=3 order by born desc
通过出生日期的降序排序
select * from t_stu where cla_id=3 order by born
默认情况是通过升序排序(order by born asc)
分组查询(分组查询主要用来统计相应的不同组别的信息)
select cla_id,count(id) from t_stu group by cla_id
以上可以分组获取每个班级中的学生总数
4.6 跨表查询(连接查询)
1、相对较早的方式
select * from t_cla t1,t_stu t2 where t1.id=t2.cla_id and t1.id in (1,2,3);
较早的方式是通过where来连接几个主键和外键的
2、目前常用的方式
常用的方式是使用join 和 on来连接的,join表示将表连接起来,on(连接的字段关系)
select t1.name,t2.name from t_cla t1 join t_stu t2 on(t1.id=t2.cla_id) where t2.id in (1,2,3);
1)内连接
直接使用
join
就是内连接
2)左连接
left join
左连接是将左边的这张表设置为主表来连接右边的表,如果左边表中的数据在右表中没有出现,会自动使用null来替代
以左边的表为主表,显示所有字段,右边没有相应字段就补0
3)右连接
right join
右连接是将右边的这张表设置为主表来连接左边的表,如果右边表中的数据在左表中没有出现,会自动使用null来替代
以右边的表为主表,显示所有,如果左边的表没有相应字段,补0或null