My Sql
目录
初始MySql
初始MySql
市面上的数据库
MySql服务器的开关
服务器的启动与关闭
用命令关闭
小结
扩展:log4j的使用
日志等级
文件配置
运行效果
演示代码
import org.apache.log4j.Logger;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
System.out.println("程序启动");
//获取日志对象
Logger logger = Logger.getLogger(Test.class);
// 存放数据
int a = 10;
logger.debug("当前a的值是" + a);
a++;
logger.debug("a自增后的值是" + a);
System.out.println("输入小明同学的年龄:");
Scanner scanner = new Scanner(System.in);
int age = scanner.nextInt();
// 假设非法的年龄输入会对我的程序造成非法打的影像
if (age > 200){
logger.error("非法年龄,外形人?");
}else if (age > 130){
logger.error("非法的年龄");
}
System.out.println("程序结束");
}
}
存放不是很严重的错误
存放严重错误的
logger 配置
文件名:log4j.properties
### 设置###
log4j.rootLogger = debug,stdout,D,E
### 输出信息到控制抬 ###
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target = System.out
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n
### 输出DEBUG 级别以上的日志到=E://logs/error.log ###
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = log.log
log4j.appender.D.Append = true
log4j.appender.D.Threshold = DEBUG
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
### 输出ERROR 级别以上的日志到=E://logs/error.log ###
log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
log4j.appender.E.File =error.log
log4j.appender.E.Append = true
log4j.appender.E.Threshold = ERROR
log4j.appender.E.layout = org.apache.log4j.PatternLayout
log4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
打开MySql黑窗
-u 是用户名
-p 是密码
登入
名文登入
密文登入
连接ip
要确保是否开启远程连接
双杠赋值
安装目录
默认路径
C:\Program Files (x86)\MySQL\MySQL Server 5.0
数据目录
MySql通用语法
什么是sql
语法特点与分类
DDL库操作
相关名词
显示所有的数据库
show databases;
默认数据库描述
创建数据库
这样就新建好了
显示建表语言
show create database db1;
先判断在创建
创库设置字符集编码
create database if not exists db2 character set gbk;
修改数据库的字符集
alter database db2 character set utf8;
删除数据库
drop database bd1;
先判断在删除
查询选中的数据库
小结
使用数据库
use 库名称;
select database();
DDL 表创作
查询选中的所有表
查询选中的表结构
常用数据类型
创建表
小结
拷贝表结构
注意只会拷贝表结构,不会拷贝表数据
查看数据表的结构
删除表
修改表名
修改表的字符集
往表中添加新的列
修改列名称
删除列名
SQLyog
基础操作
DML
插入数据
添加多个数据
删除数据
修改数据
查询时去重
约束
不可以为空
唯一约束
主键
主键约束自增长
外键关联
案例
# 新建数据库
CREATE DATABASE hpSchool CHARACTER SET utf8;
# 使用数据库
USE hpSchool;
# 创建老师表
CREATE TABLE teacher(
id INT PRIMARY KEY AUTO_INCREMENT,
tname VARCHAR(5) NOT NULL,
skill VARCHAR(20),
joinDate DATETIME
);
# 查看老师表的表结构
DESC teacher;
# 添加几个老师的信息
INSERT INTO teacher VALUES(NULL,"卡卡西","雷切","2020-1-2");
# 查看老师表的数据
SELECT * FROM teacher;
# 查看所有的数据表
SHOW TABLES;
# 创建学生表
CREATE TABLE student(
id INT PRIMARY KEY AUTO_INCREMENT,
sname VARCHAR(5) NOT NULL,
place VARCHAR(10) NOT NULL,
gender INT DEFAULT 1,
score INT,
birthday DATETIME,
# TIMESTAMP 时间错 是一个数据类型
registTime TIMESTAMP,
tid INT,
CONSTRAINT sb1234 FOREIGN KEY (tid) REFERENCES teacher(id)
);
# 查看一下学生表的表结构
DESC student;
# 往学生表中添加数据
INSERT INTO student(sname,place,tid) VALUES("小强","武汉",1);
# 查询学生数据
SELECT * FROM student;
外键级联
级联更新
功能
主表发生改变
从表的数据一起改变
用法
级联删除
功能
主表数据删除
从表与之相关联的数据一起删除
用法
小结
起别名
关键词 as
DQL
条件查询
格式
运算符
实例
逻辑运算符
范围查找
成员查找
空查找
模糊查询
利用 like 和 % 关键词
_ 下划线符号
排序查询
语法
实例
升序 asc 默认
降序 desc
多种条件降序
排序方式
聚合函数
分组查询
格式
实例
分组前后过滤
比较having 与 where 的过滤用途
分页查询
语法
实例
数据库设计
ER关系图
关于
实例
关系
ER图转数据表
范式
第一范式
第二范式
第三范式
多表查询
内连接查询
隐式内连接
# 隐式内连接 不使用inner join关键词
SELECT * FROM student,teacher WHERE student.tid=teacher.id;
显示内连接
外连接查询
左右查询
子查询
单行单列
普通连表查询
子查询
# 查询所有卡卡西的徒弟
SELECT * FROM student WHERE tid = (SELECT id FROM teacher WHERE `name` = '卡卡西')
多行单列
# 查询有老师的信息
SELECT * FROM stduent WHERE tid IN (SELECT id FROM teacher)
多行多列
这面两种写法都可以
SELECT * FROM student INNER JOIN (SELECT id,`name` FROM teacher) AS t WHERE student.tid = t.id
SELECT * FROM student INNER JOIN (SELECT id,`name` FROM teacher) AS t on student.tid = t.id
查询演练
查询数据的档位
超过二张表的连表查询
连表查询与分组查询
事务
基本介绍
基本用于转账操作
张三给李四转账
操作
注意开启事务后一定要提交不然不会更新
实例
修改默认提交
备份与还原
语法
cmd 备份
实例
mysql 还原
实例
sqlyog 备份
sqlyog 还原
DCL 数据库控制语言
管理用户
用户库
查看所有用户
添加
删除
修改 root 的密码
授权
查看权限
授予权限
查询权限
给用户添加指定权限