永和建设集团有限公司网站,太原网站排名公司哪家好,导购 网站模板,wordpress 论坛模版1. 数据库概述 1.1 数据库(DatBase) 数据库#xff0c;就是遵循一定数据格式的数据集合#xff0c;可以认为他是对文件系统的改进。它解决了不同操作系统之间#xff0c;数据格式的兼容性问题。也就是说#xff0c;只要是同一个数据库的数据文件#xff0c;即使从windows迁…1. 数据库概述 1.1 数据库(DatBase) 数据库就是遵循一定数据格式的数据集合可以认为他是对文件系统的改进。它解决了不同操作系统之间数据格式的兼容性问题。也就是说只要是同一个数据库的数据文件即使从windows迁移到了Linux上也可以正常运行的。 1.2 关系型和非关系型的区别 关系型数据库 关系型数据库是一种采用关系模型或称为表格模型来组织和存储数据的数据库管理系统DBMS。在关系型数据库中数据以行和列的形式存储在表格中并通过表格之间的关系进行组织和管理。关系型数据库通常使用结构化查询语言SQL作为数据操作语言。
对于Java而言一个类就可以对应一个表一个类对象就可以对应表中的一条数据一个成员变量可以对应表中的一个列能够做到一 一映射数据库中是以表作为基本单位的。 非关系型数据库非关系型数据库NoSQLNot Only SQL是一种不使用传统的关系型表格模型来组织和存储数据的数据库系统。与关系型数据库相比非关系型数据库通常具有更灵活的数据模型和更高的可伸缩性适用于不同类型的数据处理需求。非关系型数据库是存储键值对的如RedismongoDB等。 1.3 MySQL介绍 MySQL是一个关系型数据库管理系统由瑞典MySQL AB 公司开发目前属于 Oracle旗下产品。MySQL 是最流行的关系型数据库关系系统之一在 WEB 应用方面MySQL是最好的 RDBMS(Relational Database Management System关系数据库管理系统) 应用软件之一。 MySQL是一种关系数据库管理系统关系数据库将数据保存在不同的表中而不是将所有数据放在一个大仓库内这样就增加了速度并提高了灵活性。 MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策分为社区版和商业版由于其体积小、速度快、总体拥有成本低尤其是开放源码这一特点一般中小型网站的开发都选择 MySQL 作为网站数据库。 1.4 数据库对象 表就是存储数据的表格里面有一条条记录记录有字段组成每个字段都有自己的字段名字段值字符段类型。字段是存储数据的基本单元。类似java中的对象由于存储数据。 视图: 可以理解为一张虚表(它在物理磁盘上并不真实存在)。视图是基于select语句查询生成的结果集。当一条select语句比较复杂且调用频率较高时我们不想再写一遍语句这时候可以把这条select语句创建为一个视图。每次使用视图的时候就可以把它当成一张表来用。 函数常是一个功能的实现我们大部分使用的是系统函数MYSQL提供的我们也可以自定义函数。它的调用套路通过使用select 函数名(参数1,参数2..);来调用。它只有一个返回值。 存储过程也是一个功能的实现。我们所说的数据库编程SQL语句编程就主要是指自定义一个存储过程。调用存储过程是使用exec 存储过程名 参数1等来调用。它是可以返回多个值也可以没有返回值。 索引就像书的目录一样为了加快我们的查询速度而建立的。
2 MySQl基本使用 2.1 用户创建和授权 1. 创建用户需要切换到mysql数据库下操作user表 username: 用户名 host 指定在哪个主机上可以登录本机可用localhost%通配所有远程主机 password用户登录密码
-- 创建用户 CREATE USER 用户名HOST IDENTIFIED BY 密码
CREATE USER nonolocalhost IDENTIFIED BY 123123; 2. 为用户授权 后面是访问MySQL的客户端IP地址或是 主机名 % 代表任意的客户端如果填写 localhost 为本地访问那此用户就不能远程访问该mysql数据库了。
-- 赋予用户权限 grant ... ON 数据库名.表名 TO 用户名HOST
-- 权限 添加数据 INSERT 删除数据 DELETE 修改数据 UPDATE 查询数据 SELECT 删除库表 DROP 全部权限 ALL 或 ALL PRIVILEGES
GRANT All PRIVILEGES ON *.* TO nonolocalhost;
-- 刷新权限
FLUSH PRIVILEGES; 3. 撤销用户权限 revoke 和 grant 的语法差不多值需要将to换成from即可。
-- 撤销用户权限 REVOKE ... ON 数据库名.表名 FROM 用户名HOST
REVOKE ALL PRIVILEGES ON *.* FROM nonolocalhost;
FLUSH PRIVILEGES; 4. 删除用户
-- 删除用户
DROP USER nonolocalhost; 2.2 数据库的创建和删除 CREATE DATABASE 数据库名 DROP DATABASE 数据库名
-- 创建数据库
CREATE DATABASE _29_02;-- 删除数据库
DROP DATABASE _29_02; 命令行基本使用
-- 单行注释/*多行注释
*/-- 输出指定内容字符串需要用单引号括起来不区分字符和字符串一律使用单引号
SELECT XXXXX;-- 设置字段名AS可以省略
SELECT XXXXX AS 字段名-- 查看版本
SELECT VERSION();-- 查看当前链接下所有的数据库
SHOW DATABASES;-- 查看当前数据库下所有的表
SHOW TABLES;-- 切换数据库
USE 数据库名; 2.3 表创建和删除 存储引擎InnoDB 默认编码方式utf8mb4 排序规则utf8mb4_0900_ai_ci
-- 在数据库 _29_02下创建表
USE _29_02;
-- 创建表
/*
CREATE TABLE 表名(列名 类型列名 类型...
)
*/
-- 写的建表语句
CREATE TABLE student_info(id INT,name VARCHAR(20),score DECIMAL(5,2)
);-- 查看建表语句
SHOW CREATE TABLE student_info;
-- 实际建表语句
CREATE TABLE student_info (id int DEFAULT NULL,name varchar(20) DEFAULT NULL,score decimal(5,2) DEFAULT NULL
) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COLLATEutf8mb4_0900_ai_ci-- 删除表
DROP TABLE student_info;
3. 数据类型 数值型 时间类型 字符串型 掌握常用的几个数据类型即可比如整型int浮点型decimal字符型就是字符串类型varchar日期时间型datetime。 补充char与varchar的区别 char(100) 类型的字段一旦定义不管里面是否有值他就会固定占用100个字符对应的存储空间这种类型对空间的利用率并不高。varchar(100) 类型的字段定义后它所占用的空间就是里面存储内容占用的空间但是最大不会超过100个字符这种类型对空间的利用率是很高的。 如手机号码是定长的11位可以使用char存储。姓名或者家庭住址由于长度不确定就适合用变长的varchar存储了。当然还需要视具体需求而定。
4. DML操作 DML: Data Manipulate Language(数据操作语言) ,主要用于向数据库插入,修改,删除数据使用。涉及的关键字有insert,update,delete 4.1 INSERT(用于向表中添加数据)
-- 创建表
CREATE TABLE users(id INT PRIMARY KEY,name VARCHAR(20),age INT,sex CHAR(2)
);-- 格式INSERT INTO 表名(列名1,列名2...) VALUES (值1,值2...)
-- 示例
-- 添加单条数据
INSERT INTO users(id,name,age,sex)
VALUES(1,张三,18,男);-- 一次性添加多条数据
INSERT INTO users(id,name,age,sex)
VALUES(2,李二,18,男),(3,赵四,19,男),(4,苏七,17,女);-- 向指定列添加数据
INSERT INTO INSERT INTO users(name,age)
VALUES(依依,13); 4.2 DELESTE (用于删除表中的数据)
-- 格式DELETE FROM 表名 WHERE 列名值
-- 示例删除users表中姓名位张三的数据。WHERE 后为删除的条件如果不加会删除全表的数据
DELETE FROM users
WHERE name 张三; 4.3 UPDATE(用于更新表中数据)
-- 格式:UPDATE 表名 SET 列名值列名值 WHERE 列名值
-- 示例将users表中姓名为李二的年龄改为20,会修改所有满足WHERE条件的值
UPDATE users SET age20 WHERE name李二; 4.4 SELECT(用于查询表中的数据属于DQL)
-- 格式SELECT 列限定 FROM 表限定 WHERE 行限定
-- 示例
-- 查询表中所有数据
SELECT * FROM users;
-- 查询表中指定条件的数据例如查询users表中id为3的name值
SELECT name FROM users WHERE id3;
5 .练习
-- 使用root用户,创建一个test_01数据库,并创建test01用户,赋予test01用户对test_01数据库拥有所有权
CREATE DATABASE test_01;
USE test_01;CREATE USER test_01localhost IDENTIFIED BY 1234;GRANT ALL PRIVILEGES ON test_01.* TO test_01localhost;FLUSH PRIVILEGES;--
-- 登录test01用户,在test_01数据库下创建t_student表,表中有 id,name,sex,course,score
-- 其中 id是 int
-- name 是 varchar
-- sex 是 char
-- course 是 varchar
-- score 是 decimal
-- 向t_student表中插入3条数据
-- 1 张三 男 javaSE 99
-- 2 李四 女 javaWEB 98
-- 3 王五 男 javEE 99.5CREATE TABLE t_student(id int,name varchar(20),sex char(2),course varchar(20),score decimal(5,2)
);INSERT INTO t_student(id,name,sex,course,score)
VALUES(1,张三,男,javaSE,99),(2,李四,女,javaWEB,98),(3,王五,男,javEE,99.5);-- 把 course为javaEE的分数 更改为100
-- 把 张三的性别更改为 女
-- 把 王五删除UPDATE t_student SET score 100
WHERE course javaSE;UPDATE t_student SET sex 女
WHERE name 张三;DELETE FROM t_student
WHERE name 王五;-- 把t_student表删除
-- 把test_01数据库删除
-- 把 test01用户删除(登录root用户)DROP TABLE t_student;
DROP DATABASE test_01;
DROP USER test_01localhost;