MySQL学习
DDL:操作数据库、表
(Data Definition Language)数据库定义语言,用于操作数据库和表。
1.操作数据库:CRUD
1 | create database 数据库名; |
2.查询数据库:R(Retrieve) 查询时用关键字show。
1 | show databases; -- 查询所有数据库的名称 |
3.修改数据库:U(Update) 修改时用关键字alter。
1 | alter database 数据库名称 character set 字符集合; #修改数据库的字符集 |
4.删除数据库:D(Delete)删除时用关键字drop。
1 | drop database 数据库名称; -- 删除数据库。 |
5.使用数据库
1 | select database(); --查询正在使用的数据库名称。 |
2.操作表:CRUD
1.创建表:C(Create)
1 | create table 表名( |
2.查询表:R(Retrieve) 查询时用关键字show。
1 | show tables; -- 查询某个数据库的所有表名称。 |
3.修改表:U(Update) 修改时用关键字alter。
1 | alter table 表名 rename to 新的表名; -- 修改表名。 |
4.删除表:D(Delete)删除时用关键字drop。
1 | drop table 表名; -- 删除表 |
DML:增删改表中的数据
1.添加数据
1 | insert into 表名(列名1,列名2,...列名n) values(值1,值2,...值n); |
列名和值要一一对应;如果表名之后不定义列名,则默认给所有列添加值。
2.删除数据
1 | delete from 表名 [where 条件] --不加条件,则删除表中所有数据。 |
3.修改数据
1 | update 表名 set 列名1=值1,列名2=值2,.... [where 条件]; --如果不加任何条件,则会修改全部记录 |
DQL:查询表中的记录
1 | select * from 表名; |
1 | --多个字段查询 |
1 | --条件查询 |
1 | -- 排序查询 |
1 | -- 聚合函数 |
1 | -- 分组查询 |
1 | -- 分页查询 |
约束
1 | 1.主键约束:primary key |
数据库的三大范式
1 | 第一范式(1NF):每一列都是不可分割的原子数据项 |
数据库的备份与还原
1 | 备份:mysqldump -u用户名 -p密码 数据库名称 > 保存的路径 |
多表查询
1 | 1.内连接查询 |
事务
1 | 概念:如果一个包含多个步骤的业务操作,被事务管理,那么这些操作要么同时成功,要么同时失败。 |
DCL:管理用户,授权
1 | 1.添加用户:create user '用户名'@'主机名' identified by '密码'; |
忘记root用户密码
1 | 1.cmd --> net stop mysql -- 停止mysql服务,需要管理员运行该cmd |
权限管理
1 | 1.查询权限 |
JDBC
1 | 概念:Java Database Connectivity Java数据库连接 |
抽取JDBC工具类:JDBCUtils
1 | public class JDBCUtils { |
数据库连接池
1 | 1.概念:系统初始化好以后,连接池被创建,申请一些连接对象,用户访问数据库时从连接池中获取连接对象,访问完之后,会将对象归还给连接池。 |
抽取JDBC工具类:JDBCUtils—-使用druid连接池
1 | //注释与上面抽取工具类的注释差不多,就不再一一注释 |
Spring JDBC
1 | Spring框架对JDBC的简单封装。提供了一个JDBCTemplate对象简化JDBC的开发 |