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;