MySQL
MySQL的安装和使用
1、解压
2、把包放到自己的环境目录下
3、添加环境变量 将MySQL的的
4、新建配置文件
//my.ini文件
[mysqld]
basedir=D:\Environment\mysql-5.7.33\ -----mysql的安装目录
datadir=D:\Environment\mysql-5.7.33\data\ ----解压之后的文件夹里一开始没有也不要自己新建,后面会自动生成
port=3306
skip-grant-tables -----首次登陆未设置密码,可按回车跳过密码
5、管理员模式启动CMD,并将路径切换到MySQL的bin目录下```
cd /d D:\Environment\mysql-5.7.33\bin
```然后输入mysqld -install(安装MySQL)
6、再输入```mysqld --initialize-insecure --user=mysql
```sh初始化数据文件
7、启动服务 ```net start mysql```
8、连接数据库 ```mysql -u root -p```
9、连成功后更改密码```
update mysql.user set authentication_string=password('123456') where user='root' and Host = 'localhost';
10、刷新权限
flush privileges;
11、删除
my.ini文件后的最后一句 skip-grant-tables
12、重启MySQL即可正常使用
exit //推出mysql
net stop mysql //停止服务
net start mysql //启动服务
创建第一个数据库
*[每一个SQLyog操作都对应一个SQL操作,在历史记录里可以看到]:
新建表
查看表 右键 打开表 添加数据
1.7 命令行连接数据库
mysql -u root -p123456 --连接数据库
update mysql.user set authentication_string=password('123456') where user='root' and Host = 'localhost'; --修改用户密码
flush privileges; -- 刷新权限
-------------------------------------
--所有的语句都用;结尾
show databases; -- 查看所有的数据库
use school --奇幻数据库 use 数据库名
show tables; -- 查看数据库中所有的表
describe tables; -- 显示表中信息
create database westos; --创建一个数据库
exit; -- 退出连接
-- 单行注释(SQL的本来注释)
/* (SQL的多行注释)
hello
数据库
jhgbjb
*/
数据库的xxx语言
CV程序员 API程序员 CRUD程序员(业务程序员)
DDL 定义
DML 操作
DQL 查询
DCL 控制
2、操作数据库
2.1 增删查改
1、创建数据库
--创建数据库
CREATE DATABASE IF NOT EXISTS westos;
2、删除数据库
DROP DATABASE IF EXISTS westos
3、使用数据库
--tab键上面 如果你的表名或者字段名是一个特殊字符,就要带 `` ,比如`user`
use `school`
4、查看数据库
SHOW DATABASES
2.2 数据库的列类型
2.3 数据库的字段属性(重点)
#拓展#
2.4 创建数据库表
-- 目标 :创建一个school数据库
-- 创建学生表(列,字段) 使用SQL创建
-- 学号int 登陆密码varchar(20) 姓名,性别varchar(2),出生日期(datatime),家庭住址,Email
-- 注意点,使用英文的(), 表的名称 和 字段 尽量用 `` 括起来(tab键上面) 注意不是''
-- AUTO_INCREMENT 自增
-- 字符串使用 单引号括起来
-- 所有的语句后面加,(英文的,)最后一个不用加
-- PRIMARY KEY 主键, 一般一个表只有一个唯一的主键
create table if not exists `student` (
`id` int(4) not null auto_increment comment '学号',
`name` varchar(30) not null default '匿名' comment '姓名',
`pwd` varchar(20) not null default '123456' comment '密码',
`sex` varchar(2) not null default '女' comment '性别',
`birthday` datetime default null comment '出生日期',
`address` varchar(100) default null comment '家庭住址',
`email` varchar(50) default null comment '邮箱',
primary key(`id`)
)engine=innodb default charset=utf8
/*
格式 [] 表示可选 非必要
create table [if not exists] `表名`(
`字段名` 列类型 [属性][索引][注释],
`字段名` 列类型 [属性][索引][注释],
......
`字段名` 列类型 [属性][索引][注释],
`字段名` 列类型 [属性][索引][注释]
)[表类型][字符集设置][注释]
#常用命令#
SHOW CREATE DATABASE school -- 查看创建数据库的语句
SHOW CREATE TABLE student -- 查看表的定义语句
DESC student -- 显示表的结构
*/
2.5 、数据表的类型
-- 关于数据库引擎
/*
INNODB 默认使用~
MYISAM 早些年使用
*/
2.6 、修改删除表
#修改表#
-- 修改表名 alter table 旧表名 rename as 新表名
ALTER TABLE student RENAME AS student1
-- 添加字段 alter table 表名 add 字段名 列属性
ALTER TABLE student1 ADD age INT(11)
-- 修改表的字段 (重命名,修改约束!) alter table 表名 modify 字段名 列属性
ALTER TABLE student1 MODIFY age VARCHAR(11) -- 修改约束
-- ALTER TABLE 表名 CHANGE 旧字段名 新字段名 列属性
ALTER TABLE student1 CHANGE age age1 INT(1) -- 字段重命名
-- 删除表的字段 ALTER TABLE 表名 DROP 字段名
ALTER TABLE student1 DROP age1
#删除表#
DROP TABLE IF EXISTS student1
3、MySQL数据管理
3.1 外键(了解即可)
#方式二#
3.2 DML语言(全部记住)
3.3 添加
#insert#
3.4 修改
#update#
3.5 删除
CREATE TABLE `category`(
`categoryid` INT(10) unsigned NOT NULL auto_increment COMMENT 'id',
`pid` INT(10) NOT NULL COMMENT '父id',
`categoryname` VARCHAR(50) NOT NULL COMMENT '种类名字',
PRIMARY KEY (`categoryid`)
) ENGINE=INNODB auto_increment=9 default charset=utf8
INSERT INTO `category` (`categoryid`, `pid`, `categoryname`)
VALUES ('2', '1', '信息技术'),
('3', '1', '软件开发'),
('5', '1', '美术设计'),
('4', '3', '数据库'),
('8', '2', '办公信息'),
('6', '3', 'web开发'),
('7', '5', 'ps技术');
*[子类中的美术设计是ps技术]:
https://dev.mysql.com/doc/refman/8.0/en/sql-function-reference.html
5.1 常用函数
5.2 聚合函数(常用)
事务的执行过程
模拟转账事务
mysql-connector-java-5.1.47
导入jdbc库
package com.kuang.lesson01;
import java.sql.*;
import static java.sql.DriverManager.getConnection;
// 我的第一个jdbc程序
public class JdbcFirstDemo {
public static void main(String[] args) throws ClassNotFoundException, SQLException {
//1.加载驱动
Class.forName("com.mysql.jdbc.Driver");//固定写法 加载驱动
// 2、用户信息和url
String url = "jdbc:mysql://localhost:3306/jdbcStudy?useUnicode=true&characterEncoding=utf8&useSSL=false";
String username = "root";
String password = "123456";
//3、链接成功 返回数据库对象
Connection connection = DriverManager.getConnection(url,username,password);
//4、返回执行SQL的对象 Statement 执行sql的对象
Statement statement = connection.createStatement();
//5、用执行SQL的对象去执行SQL 可能存在结果 查看返回结果
String sql = "SELECT * FROM users";
ResultSet resultSet = statement.executeQuery(sql);//返回的结果集 结果集中封装了全部我们查询出来的结果
while(resultSet.next()){
System.out.println("id=" + resultSet.getObject("id"));
System.out.println("name=" + resultSet.getObject("NAME"));
System.out.println("pwd=" + resultSet.getObject("PASSWORD"));
System.out.println("email=" + resultSet.getObject("email"));
System.out.println("birth=" + resultSet.getObject("birthday"));
}
//6、释放连接
resultSet.close();
statement.close();
connection.close();
}
}