初识MySQL(1)

8 篇文章 0 订阅

MySQL Day01

1. MySQL介绍
非常好用的数据库!!!
性能,速度,效率都是非常OK的
并且允许第三方插件使用!!!

重点:
	Free
2. 什么是数据库
数据库软件
	MySQL, Oracle, SQLServer, sqlite
	
数据库服务器
	对外提供数据库服务的一台计数机
	
数据库
	对应当前项目存储数据的一个数据库 Database,通常一个项目对应一个数据库。
	
数据表
	excel表格
	数据库database中是存储多种数据库table,用于对应不同的数据情况
	用户表,员工表,工资表,商品表,订单表
	
字段
	姓名 性别 年龄 
	Field 描述当前存储的数据对应的是什么信息,当然包含数据类型
	
数据行
	一条完整的数据
3. MySQL基本操作
cmd > mysql -hlocalhost -uroot -p123456
# mysql 告知命令行,当前连接的是哪一个程序!!!
# -h host 主机名,域名,ip地址,对应当前MySQL数据库所在的服务器地址,
# localhost表示本机,当前可以使用 127.0.0.1 本机环回IP地址
# -u user 这里是连接数据库需要使用的用户名
# root 最高权限用户! 默认用户 DBA
# -p password 密码 对应当前用户名的密码
# 123456 明文密码,这种方式不推荐!!!不安全 insecure

# 推荐方式,连接本地数据库!!!
cmd > mysql -uroot -p
Enter password:******
# 显示当前数据库服务器中所有的数据库
mysql > show databases;

# 创建数据库
mysql > create database javaee1911;

# 删除数据库 [删库到跑路]
mysql > drop database javaee1911;

# 选择使用数据库, 之后所有对于数据表的操作都是基于当前javaee1911数据库
mysql > use javaee1911;

# 创建数据表
mysql > create table person(
    # 字段名 数据类型 id属性 Field
    id int,
    # 字段名 name 数据类型 varchar(30) 可变长字符串
    name varchar(30),
   	# 字段名 gender 数据类型 tinyint ==> Java byte
    gender tinyint,
    # 字段名 info 数据类型 text 文本数据类型
    info text
);

# 当前数据库下有多少张数据表
mysql > show tables;

# 删除数据表
mysql > drop table person;

# 查看数据表详情结构
mysql > desc person;
+--------+-------------+------+-----+---------+-------+
| Field  | Type        | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| id     | int(11)     | YES  |     | NULL    |       |
| name   | varchar(30) | YES  |     | NULL    |       |
| gender | tinyint(4)  | YES  |     | NULL    |       |
| info   | text        | YES  |     | NULL    |       |
+--------+-------------+------+-----+---------+-------+

# 查看创建数据库的过程
mysql > show create database javaee1911;
------------+
| Database   | Create Database                                         
------------+
| javaee1911 | CREATE DATABASE `javaee1911` /*!40100 DEFAULT CHARACTER SET utf8 */ |

# 查看创建数据表的过程
mysql > show create table person;

 CREATE TABLE `person` (
  `id` int(11) DEFAULT NULL,
  `name` varchar(30) DEFAULT NULL,
  `gender` tinyint(4) DEFAULT NULL,
  `info` text
) ENGINE=InnoDB DEFAULT CHARSET=utf8 

# 退出MySQL 【禁止使用X号】
mysql > exit; 
mysql > quit;
4. 修改表结构 alter
+--------+-------------+------+-----+---------+-------+
| Field  | Type        | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| id     | int(11)     | YES  |     | NULL    |       |
| name   | varchar(30) | YES  |     | NULL    |       |
| gender | tinyint(4)  | YES  |     | NULL    |       |
| info   | text        | YES  |     | NULL    |       |
+--------+-------------+------+-----+---------+-------+

# 数据表字段末尾添加一个新的字段
mysql > alter table person add salary float(8, 2);

# 数据库指定字段之后,添加一个新字段
mysql > alter table person add deptName varchar(30) after info;

# 修改数据库指定字段对应的数据类型
mysql > alter table person modify deptName text;

# 修改数据库指定字段名字和对应都是数据类型
mysql > alter table person change info description varchar(255);

# 删除数据库指定字段
mysql > alter table person drop description;
5. 插入数据
-- 删除person数据表
mysql > drop table person;

-- 新建person数据表
mysql > create table person(
    id int,
    name varchar(20),
    sex tinyint,
    age int,
    salary float(8, 2),
    info text
);

# 规规矩矩插入数据
mysql > insert into 
person(id, name, sex, age, salary, info)
value(1, '杰克', 0, 8, 999, '海盗船长');

#要求数据缺一不可!!!必须和数据库字段数据和数据类型完全一致!!!
mysql > insert into
person 
value(2, '杰瑞', 0, 5, 888, '无敌耗子!!!');

# 两者之间 比较常用!!!
mysql > insert into 
person(id, name, sex, age)
value(3, '汤姆', 0, 7);

insert into person(id, name, sex, age, salary, info) values(4, "孙红雷", 0, 40, 100, "颜王"); 
insert into person(id, name, sex, age, salary, info) values(5, "吴京", 0, 45, 1000, "硬汉"); 
insert into person(id, name, sex, age, salary, info) values(6, "黄渤", 0, 50, 210, "影帝"); 
insert into person(id, name, sex, age, salary, info) values(7, "徐峥", 0, 55, 110, "实力派"); 
insert into person(id, name, sex, age, salary, info) values(8, "王宝强", 0, 42, 310, "辛巴"); 
insert into person(id, name, sex, age, salary, info) values(9, "成龙", 0, 68, 199999, "大哥"); 
insert into person(id, name, sex, age, salary, info) values(10, "姚明", 0, 35, 20000, "巨人"); 
insert into person(id, name, sex, age, salary, info) values(11, "彭于晏", 0, 16, 9, "型男"); 
insert into person(id, name, sex, age, salary, info) values(12, "胡歌", 0, 18, 15, "帅就完了"); 
insert into person(id, name, sex, age, salary, info) values(13, "吴彦祖", 0, 16, 7, "真帅"); 
insert into person(id, name, sex, age, salary, info) values(14, "靳东", 0, 25, 11, "男神"); 
insert into person(id, name, sex, age, salary, info) values(15, "王凯", 0, 30, 1000, "男神他弟"); 
insert into person(id, name, sex, age, salary, info) values(16, "刘德华", 0, 62, 20000, "天王"); 
insert into person(id, name, sex, age, salary, info) values(17, "郭德纲", 0, 52, 1, "流氓头子"); 
insert into person(id, name, sex, age, salary, info) values(18, "迪丽热巴", 1, 27, 10, "女神!!!"); 
insert into person(id, name, sex, age, salary, info) values(19, "王鸥", 1, 30, 20, "霸道总裁"); 
insert into person(id, name, sex, age, salary, info) values(20, "杨紫", 1, 26, 1, "小雪"); 
6. 修改数据 update
-- 慎用
-- 没有任何条件约束的修改,会导致整个数据表数据全部错误!!! 
mysql > update person set name = '杰克';

-- 这里需要条件约束才可以完成修改数据操作
mysql > update person set salary = 10 where id = 3;
mysql > update person set info = '身高178的SingleDog' where id = 3;
mysql > update person set salary = 12, info = '狂霸酷帅叼' where id = 2;
7. 删除数据 delete
-- 慎用
-- 没有任何条件约束,删除数据,会导致对应数据表中的所有内容,全部清空
mysql > delete from person;

-- 删除操作需要带有对应的条件
mysql > delete from person where id = 20;
mysql > delete from person where id > 5;
8. 事务处理【思想重点】
-- 保证对于数据的修改操作可以存着回滚机制
-- 关闭数据自动提交
mysql > set autocommit = 0;

-- 回滚至关闭自动提交之前
mysql > rollback;

-- 操作无误 确认提交
mysql > commit; 
9. 查询数据
-- 一个不让用的语句
-- 浪费太多的效率和资源,导致开发出现问题
mysql > select * from person;

-- 需要使用条件约束对应的数据,可以限制查询范围,查询资源和查询要求

-- 限制字段
-- 查询所有的name字段数据
mysql > select name from person;
-- 查询所有的info字段数据
mysql > select info from person;
-- 同时查询name和info字段数据
mysql > select name, info from person;
-- 对于指定字段起别名查询
mysql > select name as '姓名', age as '年龄', info as '简介' from person;

-- 限制条件
-- 查询id为1的数据行数据!!!
mysql > select * from person where id = 1;
-- 获取id为5以上的数据!!!
mysql > select * from person where id > 5;
-- 获取id为5以下的数据!!!
mysql > select * from person where id < 5;
-- 获取工资大于等于20
mysql > select * from person where salary >= 20;
-- 获取工资小于等于20
mysql > select * from person where salary <= 20;
-- 获取年龄不等于20岁
mysql > select * from person where age != 16;
mysql > select * from person where age <> 16;

-- and 和 or
-- 找出年龄小于20岁,并且工资大于10的数据
mysql > select * from person where age < 20 and salary > 10;
-- 找出年龄大于40岁,或者工资大于100的数据
mysql > select * from person where age > 40 or salary > 100;

-- limit
mysql > select * from person limit 5;
mysql > select * from person limit 0, 5;
mysql > select * from person limit 5, 5;
mysql > select * from person limit 10, 5;
-- limit 分页查询,limit offset, count
-- offset表示当前数据的偏移量,从哪里开始
-- count 表示当前查询的数据个数
-- 每一页10个数据
-- 第一页 limit 0, 10
-- 第二页 limit 10, 10
-- 第三页 limit 20, 10
-- limit(pageCount - 1) * 10, 10;

-- 模糊查询
-- like
-- % _
-- % 匹配任意个数字符,可以有可以没有,而且允许多个
mysql > select * from person where name like '%男%';
mysql > select * from person where name like '%男';
mysql > select * from person where name like '男%';

-- _ 匹配一个字符
mysql > select * from person where name like '_男_';
mysql > select * from person where name like '_男';
mysql > select * from person where name like '男_';

-- 内置函数
-- max min sum avg count
mysql > select max(age) from person; 
mysql > select min(age) from person; 
mysql > select avg(age) from person; 
mysql > select sum(age) from person; 
-- 一共有多少个数据
mysql > select count(*) from person; 
mysql > select count(1) from person; 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值