Mysql

1、数据库概述

  1. 数据库的概念
    数据库,简而言之就是存储数据的仓库,可以按照一定的数据结构存储管理大量的数据及数据与数据之间的关系,它本质上是一种信息管理系统。数据库根据存储采用的数据结构的不同可以分为许多种,其中常见的有层次式数据库、网络式数据库、关系型数据库。其中关系型数据库占据着市场的主流。
  2. 关系型数据库
    关系型数据库是建立在关系模型基础上的数据库。这种定义听起来十分抽象,这里我们不深入讨论什么叫做“关系模型”–大学计算机专业专门有一门课叫“离散数学”专门讨论过关系模型,只是简单的表述为利用表来存储数据,用表和表之间的关系保存数据之间的关系的数据库称为关系型数据库,这个定义不太严谨,但是更好理解。
  3. 常见的关系型数据库
    商业数据库:

Oracle – 甲骨文公司开发,市场占有率第一

SQLServer – 微软公司开发,.Net技术中常用

DB2 – IBM公司开发

Sybase – Sybase公司开发

开源数据库:

MySql – 瑞典MySql AB研发,非常受欢迎,已经被Oracle收购

SQLite – 小型轻量级开源关系型数据库,常用作嵌入式设备数据库

2、Mysql常见概念

1、数据库服务器
指的就是一个数据库管理程序,这个程序可以管理多个数据库。

具体来看就是在系统中运行的mysql的服务。

该服务器根据配置监听当前机器的指定端口(默认3306)等待客户端的连接访问。

2、数据库客户端
用来连接数据库服务器进行数据库操作的程序称之为数据库客户端程序,简称数据库客户端。

mysql自带了客户端程序,即bin/mysql.exe,可以通过该程序连接数据库服务器。

3、数据库
所谓的数据库就是在数据库服务器中创建的以一系列的表的形式存储数据的仓库。

一个数据库服务器中可以创建多个数据库。

多个数据库之间是互相隔离的。

通常一个项目对应一个数据库。

每个项目各自创建和使用各自的数据库,从而可以实现多个项目在一个数据库服务器中互不干扰的工作。
4、表
数据库中以表来存储数据。

一个数据库中可以创建多个表。

通常一个javabean类对应一个表。
5、表记录
表中一条数据就是一个表记录。

一个表中可以存储多条表记录。

通常一个javabean对象对应一个表记录。

3、SQL语言

1、概念
SQL–Structured Query Language, 结构化查询语言,是关系型数据库通用的操作语言。

是一种非过程性语言。

由美国国家标准局(ANSI)与国际标准化组织(ISO)制定SQL标准。各大数据库厂商都对其做了实现。所以我们只要学会了SQL语言,就可以操作各大关系型数据库了。

*为加强SQL的语言能力,各厂商增强了过程性语言的特征,增加了一些非标准的SQL,这样的SQL称为该数据库的“方言”。

SQL是用来存取关系数据库的语言,具有查询、操纵、定义和控制关系型数据库的四方面功能

3.1、数据库的操作

创建一个名为mydb的数据库

CREATE DATABASE mydb;

展示数据库

SHOW CREATE DATABASE mydb;

删除数据库

DROP DATABASE mydb;

查询数据库表中所有数据库

SHOW DATABASES;

将数据库字符集改为gbk

ALTER DATABASE mydb CHARACTER SET gbk;

切换数据库

USE mydb;

查看当前使用的数据库

SELECT DATABASE();

3.2、数据库表的操作

创建表

CREATE TABLE student(
	id INT,
	NAME VARCHAR(20),
	gender VARCHAR(10),
	birthday DATE
	);

查看数据库中所有的表

SHOW TABLES;

查看表的基本信息

SHOW CREATE TABLE student;

查看表的字段信息

DESC student;

3.3、修改表数据

修改表名称

ALTER TABLE student RENAME TO stu;

修改字段名

ALTER TABLE stu CHANGE NAME sname VARCHAR(10);

修改字段类型

ALTER TABLE stu MODIFY sname INT;

添加字段

ALTER TABLE stu ADD address VARCHAR(50);

desc stu;
在这里插入图片描述
删除字段

ALTER TABLE stu DROP address;

删除表

DROP TABLE stu;

3.4、数据表的约束

主键约束

CREATE TABLE student(
	id INT PRIMARY KEY,
	NAME VARCHAR(20)
);

或者

create table student01(
id int
name varchar(20),
primary key(id)
);

非空约束

CREATE TABLE student02(
	id INT,
	NAME VARCHAR(20) NOT NULL
);

默认值约束

CREATE TABLE student03(
	id INT,
	NAME VARCHAR(20),
	gender VARCHAR(10) DEFAULT 'male'
);

唯一性约束

CREATE TABLE student04(
	id INT,
	NAME VARCHAR(20) UNIQUE
);

外键约束

CREATE TABLE student05(
	id INT PRIMARY KEY,
	NAME VARCHAR(20)
);
CREATE TABLE class(
	classid INT PRIMARY KEY,
	studentid INT
);
ALTER TABLE class ADD CONSTRAINT waijian FOREIGN KEY(studentid) REFERENCES student05(id);

删除外键

ALTER TABLE class DROP FOREIGN KEY waijian;

3.5、数据表插入

创建表

CREATE TABLE student(
	id INT,
	NAME VARCHAR(30),
	age INT,
	gender VARCHAR(30)
);
INSERT INTO student (id,NAME,age,gender) VALUES(1,'aaa',16,'male');

在这里插入图片描述

3.6、更新表

UPDATE student SET age = 20,gender = 'female' WHERE NAME='aaa';

更i新表中全部数据

UPDATE student SET age=18;

3.7、删除表

DELETE FROM student WHERE id=2;

3.8、查询

CREATE TABLE student(
	sid CHAR(6),
	sname VARCHAR(50),
	age INT,
	gender VARCHAR(50) DEFAULT 'male'
);
INSERT INTO student (sid,sname,age,gender) VALUES ('S_1001', 'lili', 14, 'male');
INSERT INTO student (sid,sname,age,gender) VALUES ('S_1002', 'wang', 15, 'female');
INSERT INTO student (sid,sname,age,gender) VALUES ('S_1003', 'tywd', 16, 'male');
INSERT INTO student (sid,sname,age,gender) VALUES ('S_1004', 'hfgs', 17, 'female');
INSERT INTO student (sid,sname,age,gender) VALUES ('S_1005', 'qwer', 18, 'male');
INSERT INTO student (sid,sname,age,gender) VALUES ('S_1006', 'zxsd', 19, 'female');
INSERT INTO student (sid,sname,age,gender) VALUES ('S_1007', 'hjop', 16, 'male');
INSERT INTO student (sid,sname,age,gender) VALUES ('S_1008', 'tyop', 15, 'female');
INSERT INTO student (sid,sname,age,gender) VALUES ('S_1009', 'nhmk', 13, 'male');
INSERT INTO student (sid,sname,age,gender) VALUES ('S_1010', 'xdfv', 17, 'female');

在这里插入图片描述

查询所有字段

SELECT * FROM student;

查询指定字段

SELECT sid,sname FROM student;

常数的查询

select sid,sname,'2021-03-02' from student;

查询中过滤重复数据

select distinct gender from student;

算数符

 select sname,age+10 from student;

4、函数

4.1、聚合函数

select count(*) from student;
select max(age) from student;
select sname,min(age) from student;
select sum(age) from student;
select avg(age) from student;

4.2、条件查询

select * from student where age>=17;
select * from student where sid in ('S_1002','S_1003');
select * from student where age between 15 and 18;
select * from student where sname is not null;
select * from student where age>15 and gender='male';
select * from student where age>15 or gender='male';

使用like

select * from student where sname like 'wang';

%用于匹配任意长度的字符串。例如,字符串“a%”匹配以字符a开始任意长度的字符串

select * from student where sname like 'li%';

下划线通配符只匹配单个字符,如果要匹配多个字符,需要连续使用多个下划线通配符。例如,字符串“ab_”匹配以字符串“ab”开始长度为3的字符串,如abc、abp等等;字符串“a__d”匹配在字符“a”和“d”之间包含两个字符的字符串,如"abcd"、"atud"等等。

select * from student where sname like 'zx__';

当执行查询数据时可能会返回很多条记录,而用户需要的数据可能只是其中的一条或者几条

select * from student order by age asc limit 3;

4.3、分组查询

-- 创建员工表
CREATE TABLE employee (
    id int,
    name varchar(50),
    salary int,
    departmentnumber int
);

-- 向员工表中插入数据
INSERT INTO employee values(1,'tome',2000,1001); 
INSERT INTO employee values(2,'lucy',9000,1002); 
INSERT INTO employee values(3,'joke',5000,1003); 
INSERT INTO employee values(4,'wang',3000,1004); 
INSERT INTO employee values(5,'chen',3000,1001); 
INSERT INTO employee values(6,'yukt',7000,1002); 
INSERT INTO employee values(7,'rett',6000,1003); 
INSERT INTO employee values(8,'mujk',4000,1004); 
INSERT INTO employee values(9,'poik',3000,1001);

在这里插入图片描述

select count(*), departmentnumber from employee group by departmentnumber;

配合having使用

select sum(salary),departmentnumber from employee group by departmentnumber having sum(salary)>8000;

4.4、order by排序

在该语法中:字段名1、字段名2是查询结果排序的依据;参数 ASC表示按照升序排序,DESC表示按照降序排序;默认情况下,按照ASC方式排序。通常情况下,ORDER BY子句位于整个SELECT语句的末尾。

select * from student order by age asc;

4.5、别名设置

select * from student as stu;
Tomcat是一个开源的Web服务器/Servlet容器,用于运行Java代码,是Apache软件基金会的Jakarta项目的一部分。它广泛用于部署Java Servlet和JavaServer Pages (JSP)。下面是Tomcat 8的下载、安装和配置的基本步骤: 1. 下载Tomcat 8: 访问Apache Tomcat的官方网站,找到Tomcat 8的下载链接。可以选择对应的版本下载,例如Windows平台的`.zip`文件或者Linux平台的`.tar.gz`文件。 2. 安装Tomcat 8: - Windows平台: - 解压下载的`.zip`文件到一个目录,例如`C:\Tomcat8`。 - 可以将Tomcat的`bin`目录添加到系统的环境变量`Path`中,以便在任何目录下都能执行Tomcat命令。 - Linux平台: - 使用命令行解压`.tar.gz`文件,例如使用`tar -zxvf apache-tomcat-8.*.tar.gz`命令。 - 可以选择移动或链接Tomcat目录到合适的系统目录,如`/usr/local/`或`/opt/`下。 3. 配置Tomcat 8: - 环境变量:在`conf`目录下的`server.xml`文件中,可以配置端口号、部署项目的位置等。 - JVM参数:可以通过`setenv.sh`(Linux)或`setenv.bat`(Windows)来设置JVM参数,如内存设置等。 - 用户配置:如果需要配置Tomcat的用户访问权限,可以在`conf/tomcat-users.xml`文件中添加用户和角色。 4. 启动和测试: - 在Tomcat的`bin`目录下运行`startup.sh`(Linux)或`startup.bat`(Windows)启动Tomcat服务器。 - 打开浏览器,输入`http://localhost:8080`或你设置的端口号,如果看到Tomcat的欢迎页面,说明安装配置成功。 5. 部署Web应用: - 将编译好的Web应用(WAR文件)放入Tomcat的`webapps`目录下,Tomcat会自动部署应用。 - 如果是目录形式的Web应用,直接将应用目录放入`webapps`即可。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值