8、数据库

本文深入探讨了数据库操作,包括数据表操作、数据查询,特别是多表查询中的连接查询(JOIN)、子查询(IN、ANY、ALL、EXISTS)和合并查询(UNION ALL)。此外,还讨论了索引的重要性和JDBC在Java中的应用。
摘要由CSDN通过智能技术生成

数据库

1、数据库操作

1.查看当前系统中存在的数据库:SHOW DATABASES;
2.创建数据库:CREATE DATABASE 数据库名称;
3.选择数据库:USE 数据库名称;
4.删除数据库:DROP DATABASE 数据库名称;

2、数据表操作

1.创建表
	CREATE TABLE table_name(
	col_name date_type [Constraints],
	...
	col_namen date_type [Constraints]
	);
2.设置主键约束
	(1)col_name data_type PROMARY KEY
	(2)PRIMARY KEY (col_name)
3.设置自增约束
	col_name data_type AUTO_INCREMENT
4.设置非空约束
	col_name data_type NOT NULL
5.设置唯一性约束
	(1)col_name date_type UNIQUE
	(2)UNIQUE KEY(col_name)
6.设置无符号约束
	col_name data_type UNSIGNED;
7.设置默认约束
	col_name data_type DEFAULT value
8.设置外键约束
	CONSTRAINT 外键名 FOREIGN KEY(从表外键约束的字段名) 
	REFERENCES 主表名(主表名主键的字段名)
9.查看表基本结构
	DESCRIBE table_name;
10.查看建表语句
	SHOW CREATE TABLE table_name \G
11.修改表名
	ALTER TABLE old_table_name RENAME new_table_name;
12.修改字段数据类型
	ALTER TABLE table_name MODIFY col_name new_data_type;
13.修改字段名
	ALTER TABLE table_name CHANGE old_col_name new_col_name data_type;
14.添加字段(在表的最后一列添加字段)
	ALTER TABLE table_name ADD col_name data_type;
15.添加字段(在表的第一列添加字段)
	ALTER TABLE table_name ADD col_name data_type FIRST;
16.添加字段(在表的指定列之后添加字段)
	ALTER TABLE table_name ADD col_name1 data_type AFTER col_name2;
17.删除字段
	ALTER TABLE table_name DROP col_name;
18.修改字段顺序
	ALTER TABLE table_name MODIFY col_name data_type FIRST | AFTER col_name2;
19.修改存储引擎
	ALTER TABLE table_name ENGINE=e_name;
20.设置存储引擎
    CREATE TABLE category (
    id INT(11) PRIMARY KEY,
    name VARCHAR(30),
    p_id INT(11)
    ) ENGINE=MyISAM;
21.查看存储引擎
	SHOW CREATE TABLE table_name \G
22.删除没有被关联的表
	DROP TABLE [IF EXISTS] table_name1,table_name2,……,table_namen;
23.删除被其他表关联的主表
	(1)删除外键
		ALTER TABLE table_name DROP FOREIGN KEY key_name;
	(2)再删除主表

3、数据操作

1.插入:
	(1)向表中所有字段插入数据:
		1)指定字段及其值:
			INSERT INTO table_name(col_name1,col_name2...)VALUES(value1,value2...);
		2)不指定字段只列出字段值:
			INSERT INTO table_name VALUES(value1,value2...);
	(2)向表中指定字段插入数据:
		INSERT INTO table_name(col_name1,col_name2...)VALUES(value1,value2...);
	(3)同时插入多条数据:
		INSERT INTO table_name(col_name1,col_name2...)VALUES(value1,value2...),
		(value1,value2...),(value1,value2...);
	(4)将其他表中的数据插入列表中:
		INSERT INTO table_name1(col_name1,col_name2...)SELECT col_name1,col_name2... 
		FROM table_name2;
2.修改:
	(1)修改所有数据:
		UPDATE table_name SET col_name1=value1,col_name2=value2...col_namen=valuen;
	(2)修改指定数据:
		UPDATE table_name SET  col_name1=value1,col_name2=value2... WHERE condition;
3.删除:
	(1)删除所有数据:
		DELETE FROM table_name;
	(2)删除指定数据:
		DELETE FROM table_name WHERE condition;

4、单表数据查询

1.查询所有字段数据:
	SELECT {*|col_list} FROM table_name;
2.查询指定字段的数据:
	SELECT col_name1,col_name2... FROM table_name;
3.查询数据库中符合一定条件的数据:
	SELECTE {*|col_list} FROM table_name WHERE condition;
4.符号:“=” “>=” “<>”(不等于)
5.关键字: AND OR
6.使用IN关键字可以查询字段值等于指定集合中任意一个值的记录:
	SELECT {*|col_list} FROM table_name WHERE col_name IN (value1,vallue2,...valuen);
7.IS NULL关键字用于查询字段值为NULL的记录:
	SELECT {*|col_list} FROM table_name WHERE col_name IS NULL;
8.和NOT关键字配合使用,用于查询字段值不为NULL的记录
	SELECT {*|col_list} FROM table_name WHERE col_name IS NOT NULL;
9.BETWEEN AND关键字,用于查询字段值在某个范围内的记录:
	SELECT {*|col_list} FROM table_name WHERE col_name (NOT)BETWEEN value1 AND value2;
10.查询goods表中字段type不重复的值:
	SELECT DISTINCT type FROM goods;
11.使用LIKE关键字的查询又称为模糊查询:
	SELECT {*|col_list} FROM table_name WHERE col_name LIKE value;
12.通配符“%”:通配符“%”可以匹配任意长度的字符,可以是0个,也可以是1个或多个。
13.通配符“_”:使用方法与通配符“%”类似,都可以出现在匹配字符的任意位置,但通配符“_”只能匹配一个字符。
14.查询结果按照指定的顺序排列,使用ORDER BY关键字:
	SELECT {*|col_list} FROM table_name ORDER BY col_name [ASC|DESC];
15.多字段排序
	SELECT * FROM table_name ORDER BY col_name1 ASC,col_name2 ASC;
16.降序排序关键字DESC:
	SELECT * FROM table_name ORDER BY col_name DESC;
17.使用LIMIT关键字来限制查询结果的数量:
	SELECT {*|col_list} FROM table_name LIMIT [offset_start,]row_count;
18.聚合函数查询的基本语法:
	SELECT function(*|col_name)FROM table_name WHERE condition;
	COUNT()函数:计算表中记录的条数。
    SUM()函数:计算字段值的总和。
    AVG()函数:计算字段值的平均值。
    MAX()函数:查询表中字段值的最大值。
    MIN()函数:查询表中字段值的最小值。
19.COUNT(*):计算表中总的记录数,不管表字段中是否包含NULL值。
	COUNT(col_name):计算表中指定字段的记录数,在具体统计时将忽略NULL值。
20.简单分组查询:
	将GROUP BY 关键字与聚合函数COUNT()一起使用,可以查询每组的数量:
		SELECT type,count(*) FROM goods GROUP BY type;
21.将每种类型中包含的商品名称显示出来,可以使用group_concat()函数:
		SELECT type,group_concat(name) FROM goods GROUP BY type;
22.GROUP BY 和HAVING一起使用,可以指定显示记录所需满足的条件:
	SELECT type,count(*) FROM goods GROUP BY type HAVING COUNT(*)>1;
23.WHERE子句和HAVING子句都具有按照条件筛选数据的功能,两者的区别主要有以下几点:
    (1)WHERE子句在进行分组操作之前用来选择记录,而HAVING子句在进行分组操作之后通过过滤来选择分组。
    (2)HAVING子句中的每个字段必须被包含在SELECT关键字后的字段列表中。
    (3)HAVING子句可以包含聚合函数,但WHERE子句不能。
24.使用多个字段进行分组:
	SELECT type,num,group_concat(name),count(name) FROM goods GROUP BY type,num;

5、多表数据查询

(1)连接查询(JOIN)

1.使用关键字JOIN对表执行连接查询操作。
2.前提条件:这些表中必须存在具有相同意义的字段。
3.连接查询主要包括内连接查询和外连接查询。
4.复合条件连接查询:在连接查询中添加过滤条件,筛选符合条件的数据。
    (1)内连接查询(INNER JOIN):使用比较运算符对多个表间的某些列数据进行比较,并列出这些表中与连接条件相匹配的数据行,组合成新的记录。
    普通内连接查询:SELECT col_list FROM table_name1 INNER JOIN table_name2 ON condition;
    (2)外连接查询(OUTER JOIN):是以一张表为基表,根据连接条件,与另外一张表的每一行进行匹配,如果没有匹配上,则在相关联的结果行中,另一张表的所有选择列均返回空值。
    (3)外连接查询通常分为两种:左连接查询(LEFT JOIN)和右连接查询(RIGHT JOIN)。其基本语法形式如
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
mysql8安装包以及安装说明,在centeros7下的安装.解压缩后会有两个文件:mysql-8.0.18-1.el7.x86_64.rpm-bundle.tar和mysql8安装说明.txt 1、安装 rpm -i 需要安装的包文件名 举例如下: rpm -i example.rpm 安装 example.rpm 包; rpm -iv example.rpm 安装 example.rpm 包并在安装过程中显示正在安装的文件信息; rpm -ivh example.rpm 安装 example.rpm 包并在安装过程中显示正在安装的文件信息及安装进度; 2、查看安装完成的软件 rpm -qa | grep mysql mysql-community-libs-5.7.24-1.el7.x86_64 mysql-community-common-5.7.24-1.el7.x86_64 mysql-community-client-5.7.24-1.el7.x86_64 mysql-community-server-5.7.24-1.el7.x86_64 3、卸载软件 rpm -e --nodeps 要卸载的软件包 rpm -e --nodeps mysql-community-libs-5.7.24-1.el7.x86_64 rpm -e --nodeps mysql-community-common-5.7.24-1.el7.x86_64 rpm -e --nodeps mysql-community-client-5.7.24-1.el7.x86_64 rpm -e --nodeps mysql-community-server-5.7.24-1.el7.x86_64 看看系统中有没有自带有mysql的东西,有就先删除掉。 查看: find / -name mysql 删除: rm -rf 上边查找到的路径,多个路径用空格隔开 #或者下边一条命令即可 find / -name mysql|xargs rm -rf; mkdir -p /usr/local/mysql8 cd /usr/local/mysql8 ll 将下载的资源包(mysql-8.0.18-1.el7.x86_64.rpm-bundle.tar)上传到 usr/local/mysql8 目录下,并解压 tar -xvf mysql-8.0.18-1.el7.x86_64.rpm-bundle.tar 依次安装 rpm -ivh mysql-community-common-8.0.15-1.el7.x86_64.rpm rpm -ivh mysql-community-libs-8.0.18-1.el7.x86_64.rpm rpm -ivh mysql-community-client-8.0.18-1.el7.x86_64.rpm rpm -ivh mysql-community-server-8.0.18-1.el7.x86_64.rpm 查看已安装资源 rpm -qa | grep mysql groupadd mysql useradd -g mysql mysql mysqld --initialize 初始化 chown mysql:mysql /var/lib/mysql -R 授权 systemctl start mysqld 开启mysql服务 systemctl status mysqld 查看mysql 状态 cat /var/log/mysqld.log | grep password 查看root初始密码 使用root用户登录mysql ,并修改root用户密码 mysql -u root -p #回车之后输入前面的初始密码也就是 XXXXXX(填自己的密码) ALTER USER "root"@"localhost" IDENTIFIED BY "自己的密码"; FLUSH PRIVILEGES; #立即生效 再次用户root 用户登录 输入自己刚刚修改的密码就可以了 远程连接 use mysql; update user set host = '%' where user ='root'; ALTER USER 'root'@'%' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER; #更改加密方式 ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '自己的密码'; #更新用户密码 (我这里为root )
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值