一、MySQL

1MySQL发展史

……目前更新到了8.0.18版本,现在直流还是使用5.7版本

2.什么是数据库

数据库的软件:

  1. 需要安装软件,才能写SQL语句 存储数据
  2. 关系型数据库:
  3. MySQL Oracle SQLServer DB2 SQLite
  4. 非关系型数据库:
  5. redis mongodb memorycache
  6. 两者的区别:
  7. 关系型数据库存储的数据是**表结构**,比如Excele
  8. 非关系型数据库存储的数据是**键值对**形式的数据 比如map集合

3.数据库的概念

数据库服务器:

  1. 安装好MySQL以后,这个就是数据库服务器

数据库:

  1. 一个项目对应一个数据库

数据表:

  1. 一个库下面可以有多张表

数据和字段:

  1. 一张表由数据和字段组成,一个字段可以有多个数据
  2. 字段:id name age info

数据1:1 朱志伟 24 zzw

数据2:1 朱志伟 24 zzw

数据3:1 朱志伟 24 zzw

总结:数据库服务器下面可以有很多数据可,数据库中可以有很多数据表,数据表中有哦很多字段和数据。

4.通过命令操作数据库【重点】

前提是安装好数据库服务器,并且配置好全局的环境变量,才可以使用以下命令

  1. #1.将命令提示符打开
  2. window + r :输入cmd
  3. #2.如果mysql数据库没有开机自己启动,以下命令是手动启动mysql
  4. net start mysql
  5. #3.连接数据库方式1 不安全 一般用方式2
  6. mysql -hlocalhost -uroot -p123456
  7. #4.连接数据库:方式2 安全
  8. C:\Users\ZHU>mysql -uroot -p
  9. Enter password: ******
  10. #5.展示所有得数据库,一定要以分号结束
  11. show databases;
  12. #有四个是数据库自带的,数据库服务器 也得保存数据,这四个不要动
  13. #6.创建数据库,不能创建同名得数据库,一定要以分号结束
  14. create database 数据库名字;
  15. Query OK, 1 row affected (0.10 sec) #创建成功
  16. #7.删除数据库,得有这个数据库才可以删,一定要以分号结束
  17. drop database 数据库名字;
  18. Query OK, 0 rows affected (0.07 sec) #删除成功
  19. #8.选中某一个库之后
  20. use 数据库名字;
  21. Database changed #进入成功
  22. #9.查看数据库下面得表
  23. show tables;
  24. #9.选中某一个库之后,才可以创建数据表
  25. create table 表的名字 (字段1 类型,id int,name varchar(32),info text);
  26. #例子:create table person (id int,name varchar(32),age int,info text);
  27. #10.查看创建好的表的结构 desc描述
  28. desc person(表的名字);
  29. mysql> create table person1(
  30. -> id int, #int 字段默认11位
  31. -> name varchar(32), #varchar(32) 可变长字符串 最大32位
  32. -> age tinyint, #tinyint 占4位
  33. -> info text #text 文本类型 不限制长度
  34. -> );
  35. Query OK, 0 rows affected (0.33 sec)
  36. #11.删除表
  37. drop table person1;
  38. #12.显示创建数据库和数据表的过程 (了解)
  39. show create database java2204
  40. show create table person;

简洁版

  1. 进入数据库:mysql -uroot -p
  2. 密码:123456
  3. 展示数据库:show databases;
  4. 创建数据库:create database java2204
  5. 删除数据库:drop database java2204;
  6. 进入某个库:use java2204;
  7. 查看库下的表:show tables;
  8. 创建表:create table person (字段1 类型,字段2 类型);
  9. 查看表结构:desc person
  10. 删除表:drop table person

5.修改表【alter 改变】

修改一个表中的字段

  1. #删除表中的字段
  2. # alter table 表明 drop 字段;
  3. alter table person drop info;
  4. #添加字段
  5. #alter table 表明 add 字段 类型;
  6. alter table person add info text;
  7. #在固定的某一个字段后面添加字段 (想在name后面添加一个sex字段)
  8. #alter table 表明 add 字段 类型 after 某字段;
  9. alter table person add sex boolean after name;
  10. #修改某个字段的数据类型 (name varchar-->char)
  11. #区别:varchar(25) 可变长的字符串 会根据存入的数据 进行变化
  12. #区别:char(25) 定长的字符串 就是写3个字符在系统中也是占用25位
  13. #alter table 表明 modify 旧字段 信类型;
  14. alter table person modify name char(25);
  15. #修改指定的字段和类型 (sex变成gender 数据类型变成int)
  16. #alter table 表明 change 旧字段 新字段 新字段类型;
  17. alter table person change sex grnder int;

简洁版

  1. 删除表中字段
  2. alter table person dorp name
  3. 添加字段
  4. alter table person add name varchar(32);
  5. 在某字段后面添加字段 添加字段在什么之后
  6. alter table person add sex boolean after name;
  7. 修改某个字段的数据类型 修改name的类型
  8. alter table person modify name char(25);
  9. 修改指定字段的名字和类型 修改sex
  10. alter table person change sex xingbie int

5.1一些常用的数据类型

float(size,d)size大小 d小数点后位数。

double(size,d)size大小 d小数点后位数。

decimal(size,d) size大小 d小数点后位数。 更精确

size 最大长度为8,小数点占2位 888888.99

6.添加数据到表中【增】

insert into

语法格式

案例

  1. #查询表中的所有数据
  2. #select *(*代表所有的字段) from person;
  3. select * from person;
  4. #添加数据 这种方式必须按照表中字段的顺序添加,不可乱不可缺。
  5. #insert into 表名 values(值1,值2);
  6. insert into person values(1,"朱志伟",1,24,"abcdefg",4999.99);
  7. #指定字段添加数据
  8. #insert into 表名(字段1,字段2) values(值1,值2);
  9. insert into person(id,name,info) values(3,"朱航","吉林沈阳");
  10. #一次添加多条数据
  11. #insert into person(字段1,字段2) values(值1,值2),(值1,值2);
  12. insert into person(id,name,info) values(4,"路飞","海贼王"),(5,"索隆","世界第一剑豪^S");

7.删除表中的数据【慎用】

delete 在做删除操作时一定要添加条件,如果不加条件,后果自负

where 后面的是条件;

  1. delete from 表名 where 列名 = 值;

案例

  1. #delete from 表名 where 列明 = 值;
  2. #删除 id为4的这一行
  3. delete from person where id = 4;
  4. #删除 name为“博儿”的这一行
  5. delete from person where name = "博儿";
  6. #一次删除多行
  7. #delete from 表名 where 列明 in(值1,值2);
  8. delete from person where id in(1,3,5);

8.修改数据【慎用】

update 在做修改时,和删除一样,一定要加条件

set 后面的是条件

  1. update 表名 set 字段1 = 2,字段2 = 2 where = 值;

案例

  1. #修改数据
  2. #update 表明 set 字段=值1,字段=值2 where 列 = 值;
  3. update person set info="世界第一大剑豪",age=18,grnder=1 where id = 3;

9.事务

为了保障数据库安全的

总结三个命令:

1.set autocommit = 0; 关闭自动提交

2.增删改sql 不会自动提交

3.两种状态:

  1. 要么回滚(rollback;) 不执行sql语句
  2. 要么手动提交(commit;)执行sql语句
  1. #比如路飞给索隆转账
  2. #牵涉到两个sql语句 一个减 一个加 修改sql语句 要么同时成功 要么同时失败
  3. #想要在sql中使用事务,一定要先开启,系统默认时关闭的
  4. #开启事务 自动提交 设置为0
  5. set autocommit = 0;
  6. #两个事务 这时候还没有修改
  7. update person set salary=salary-100 where id = 2; #路飞-100
  8. update person set salary=salary+100 where id = 3; #索隆+100
  9. #以上两个sql语句没有真正的执行。
  10. #要么回滚,都回到原来的状态
  11. rollback;
  12. #要么执行,两个sql语句都执行 commit(因为第一步将自动提交关闭了,现在需要手动提交)
  13. commit;