小言_互联网的博客

JavaEE(一) MySQL数据库

648人阅读  评论(0)

目录

1.MySQL介绍

2.MySQL的安装与配置

3.MySQL语法

3.1 创建数据库

3.2 创建表

3.3 表的修改删除等操作

3.4 查询语句

3.5 多表查询

3.6 MySQL函数


 


1.MySQL介绍

MySQL是一个关系型数据库管理系统目前属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

这里有两个关键词,数据库系统DBS和数据库管理系统DBMS,至于这两个关键字是什么,我这里就不多讲了,用的多了就清除了。
关系型数据库的特点:
    1.数据集中控制,在文件管理方法中,文件是分散的,这些文件之间一般是没有联系的,因此不能按照统一的方法来控制、维护和管理。而数据库则可以集中控制、维护和管理有关数据。
    2.数据独立,数据库中的数据独立于应用程序,包括数据的物理独立性和逻辑独立性,给数据库的使用、调整、优化和进一步扩充提供了方便。
    3.数据共享,数据库中的数据可以供多个用户使用,每个用户只与库中的一部分数据发生联系;用户数据可以重叠,用户可以同时存取数据而互不影响。
    4.减少数据冗余,数据库中的数据不是面向应用,而是面向系统。数据统一定义、组织和存储,集中管理,避免了不必要的数据冗余。
    5.数据结构化,整个数据库按一定的结构形式构成,数据在记录内部和记录类型之间相互关联,用户可通过不同的路径存取数据。
    6.统一的数据保护功能,在多用户共享数据资源的情况下,对用户使用数据有严格的检查,对数据库规定密码或存取权限,以确保数据的安全性、并发控制。
     
数据库的默认端口:
    mysql的默认端口是3306,可以编辑用户目录下的 .my.cnf 文件进行修改。
    sqlserver默认端口号为:1433
    oracle 默认端口号为:1521
    DB2 默认端口号为:5000
    PostgreSQL默认端口号为:5432

2.MySQL的安装与配置

对于数据库的安装,我个人比较喜欢手动配置,步骤如下

mysql下载地址:https://dev.mysql.com/downloads/mysql/

配置环境变量,在path中添加MySQL安装路径\bin

解压后直接在MySQL的bin目录下打开cmd,执行mysqld --initialize --console

将生成的这个记下来。这是登入数据库的初始密码

继续执行mysqld --install

显示  Service successfully installed. 则说明安装成功

执行  net start mysql 启动mysql服务

然后登陆mysql:输入mysql -u root -p

密码就是刚刚生成的那一串东西

登陆进来过后,要修改自己数据库的密码,命令如下

alter user 'root'@'localhost' identified by 'youpassword';  

查看一下数据库,若出现mysql这个库,则说明数据库root密码修改成功,并且以root用户登录。

软件安装就已经全部完成了。

旧版本安装

进入改文件夹,新建一个my.ini

 

[mysql]

; 设置mysql客户端默认字符集

default-character-set=utf8

[mysqld]

;设置3306端口

port = 3306

; 设置mysql的安装目录

basedir=C:\mysql-5.6.17-winx64

; 设置mysql数据库的数据的存放目录

datadir=C:\mysql-5.6.17-winx64\data

; 允许最大连接数

max_connections=200

; 服务端使用的字符集默认为8比特编码的latin1字符集

character-set-server=utf8

; 创建新表时将使用的默认存储引擎

default-storage-engine=INNODB

添加环境变量

 

用管理员打开cmd

安装好过后默认没有密码的。按照以下命令修改密码

退出以后就可以用新密码登录了。

3.MySQL语法

在MySql数据库中,SQL语句主要可以划分为以下几类:

DDL(Data Definition Language):数据定义语言,定义对数据库对象(库、表、列、索引、约束)的操作。

CREATE、DROP、ALTER、RENAME、 TRUNCATE等

DML(Data Manipulation Language): 数据操作语言,定义对数据库记录的操作。

INSERT、DELETE、UPDATE、SELECT等 

DCL(Data Control Language): 数据控制语言,定义对数据库、表、字段、用户的访问权限和安全级别。

3.1 创建数据库

#create database 数据库名字;.

#一个例子
create database javaee_db01;

#选则创建的数据库
use javaee_db01;

#显示所有数据库
show databases;

3.2 创建表

CREATE table countries(
	id int(2) not null PRIMARY KEY auto_increment,
	country VARCHAR(15) not null
);

#查看表结构
desc countries;

#PRIMARY KEY主键
#auto_increment自动递增
#int数据类型,varchar、char......

3.3 表的修改删除等操作

MySQL更改数据:
	新增字段-->alter table table_name add column col_name 类型;
	修改字段-->alter table table_name change oldc_name newc_name 类型;
	修改类型-->alter table table_name modify col_name 类型;
	修改表名-->alter table oldt_name rename to newt_name;
	更新数据-->update table_name set col_name = colnew_value where col_name = colold_value ;
	
MySQL删除数据:
	删除数据表-->drop table if exists table_name;
	记录删除-->delete from table_name where 条件;

3.4 查询语句

MySQL查询语句:
	查询所有-->select * from table_name;
	指定查询-->select col_name1,col_name2…… from table_name;
	条件查询-->select * from table_name where 限定条件;
	(where语句中的关键字:and  or  like betwing  in 排序)
	like模糊查询-->select * from table_name col_name like '-%';#_表示匹配任意一个字符  %表示通配符,匹配0个到多个字符。
	排序查询-->select * from table_name order by col_name desc; #desc表示升序,asc表示降序,如果需要多个字段排序,直接在后面加

3.5 多表查询

    1. 交叉连接:不带WHERE 子句它返回被连接的两个表所有数据行,使用cross join关键字进行交叉连接
	 -->select 字段1,字段2,…… from 表一 cross join 表二;

	2. 内连接:指定了关键字为INNER的连接为内连接,内连接分三种:等值连接、自然连接、不等连接;
	-->SELECT * FROM table_name INNER JOIN table2_name on 连接条件;

	3. 外连接:指定了关键字为OUTER的连接为外连接,外连接分为两种,左外连接和右外连接
	左外连接-->会显示所有左表数据,右表只显示匹配到的数据,无匹配,以null填充
		SELECT * FROM table_name LEFT OUTER JOIN table2_name ON 连接条件;
	右外连接-->会显示所有右表数据,左表只显示匹配到的数据,无匹配,以null填充
		SELECT * FROM table_name RIGHT OUTER JOIN table2_name ON 连接条件;

	4. 全连接,左表和右表的数据将会全部显示,中间用UNION连接
	SELECT * FROM table_name LEFT OUTER JOIN table2_name ON 连接条件 
	UNION
	SELECT * FROM table_name RIGHT OUTER JOIN table2_name ON 连接条件;

	5.子查询:一个查询语句嵌到另一个查询语句的子句
	-->select * from table1_name where 字段1 =(
		SELECT 字段 from table2_name where 条件
	);
	查询table1_name表中的字段,查询条件是字段1等于后面这个查询语句的结果

3.6 MySQL函数

    1. 聚合函数:
	-->AVG() 返回某列的平均值;
	-->COUNT() 返回某列的行数
	-->MAX() 返回某列的最大值
	-->MIN() 返回某列的最小值
	-->SUM() 返回某个列之和

	2. 分组查询 group by
	-->Select 分组字段或聚合函数 from 表  where 条件 group by 分组字段 having 条件 order by 字段

	3. 数学函数
	-->ABS(x)  返回x的绝对值
	-->RAND()  0-1的随机数
	-->ROUND(x,y)  返回参数x的四舍五入的有y位小数的值
	-->MOD(x,y)   返回x/y的模(余数)
	-->PI()  返回pi的值(圆周率)
	-->SQRT(x)   返回一个数的平方根
	-->GREATEST(x1,x2,...,xn)   返回集合中最大的值
	-->LEAST(x1,x2,...,xn)  返回集合中最小的值

	4. 字符串函数
	-->ASCII(str)   返回字符串的ASCII码
	-->CONCAT(str1,str2,...)  将给定字符串拼接
	-->LENGTH(str)  返回给定字符串长度
	-->LEFT(str,len)  返回给定字符串最左len个字符
	-->RIGHT(str,len)  返回给定字符串最右len个字符
	-->SUBSTRING(str,pos)  字符串str的起始位置pos返回一个子串
	-->REVERSE(str)  将str顺序反转
	-->LOWER(str)  Str转为小写
	-->UPPER(str)  Str转为大写

	5. 时间函数
	-->CURTIME()  HH:MM:SS或HHMMSS返回当前时间值
	-->NOW()  YYYY-MM-DD HH:MM:SS’或YYYYMMDDHHMMSS
	-->CURDATE()  YYYY-MM-DD’或YYYYMMDD
	-->WEEKDAY(date)  返回日期的星期索引(0开始)
	-->DAYOFYEAR(date)  返回给定日期的天数


本人联系方式2329095893,欢迎各位进行学习讨论


转载:https://blog.csdn.net/chen_hao_181/article/details/101308505
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场