Code前端首页关于Code前端联系我们

Java中的mysql语句不一样,mysql条件也不一样

terry 2年前 (2023-09-30) 阅读数 46 #Mysql
文章标签 Mysql

本文内容:

  • 1. Java中的MySQL查询表达式
  • 2.Java的mysql命令不支持sum?
  • 3、JAVA向MySQL添加命令报错

java中的MySQL查询语句

1:使用SHOW语句找出服务器上当前有哪个数据库:

mysql SHOW DATABASES;

2:2。创建数据库 MYSQLDATA

mysql CREATE DATABASE MYSQLDATA;

3:选择您创建的数据库

mysql USE MYSQLDATA; (当回车后显示Databasechanged,则操作成功!)

4:查看当前数据库中有哪些表

mysql SHOW TABLES;

5:创建数据库表

mysql CREATE TABLE MYTABLE (name VARCHAR(20),gender CHAR(1));

6:显示表结构:

mysql DESCRIBE MYTABLE;

7:转到表添加记录到

mysql add to MYTABLE values("hyq","M");

8:以文本方式将数据加载到数据库表中(例如D:/mysql.txt)

mysql LOAD DATA LOCAL INFILE “D:/ mysql.txt" TABLE MYTABLE;

9:导入.sql文件命令(例如D:/mysql.sql)

mysqluse数据库;

mysqlsource d:/mysql.

10:删除表

mysqldrop TABLE MYTABLE;

11:从 MYTABLE 中删除空表

mysql;

12:更新表

sex”中的数据,其中 MYTABLEp”='hyq';

以下是我在网上无意中看到的使用MySql的管理经验,

在Windows中,MySql是一个服务。使用前请确保该服务已启动。如果没有启动,可以使用net start mysql启动。在Linux上启动时,可以使用命令“/etc/rc.d/init.d/mysqld start”。请注意,启动者必须具有管理员权限。

新安装的MySql包含一个空密码的root帐户和一个匿名帐户。这是一个巨大的安全风险。应尽可能提高一些重要应用的安全性。此处应删除匿名帐户。 ,要设置root用户帐户密码,可以使用以下命令:

use mysql;

从 User=”” 的用户中删除;

更新用户设置密码=PASSWORD('newpassword') where User='root';

如果您想限制某个用户使用的登录终端,可以更新User表中对应用户的Host字段。进行上述更改后,您应该重新启动数据库服务。目前登录时可以使用以下等效命令:

mysql -uroot -p;

mysql -uroot -pnewpassword;

mysql mydb -uroot -p;

mysql mydb -pnewpassword;

以上现有命令参数为部分常用参数。详细信息请参阅文档。这里的mydb是你正在登录的数据库的名称。

在开发和实际应用中,用户在连接数据库时不应该只使用root。使用root用户进行测试虽然方便,但给系统带来了较大的安全隐患,无助于管理技术的提高。我们为应用程序中使用的用户提供最合适的数据库权限。例如,不应授予仅添加数据的用户删除数据的权限。 MySql用户的管理是通过User表实现的。添加新用户的一般方法有两种。一是在User表中添加相应的数据行并设置相应的权限;另一种是使用GRANT命令创建具有一定权限的用户。用户。 GRANT 的一般用法如下:

将所有权限授予 mydb.* NewUserName@HostNameidentified by "password" ;

授予对 *.*NewUserName@HostNameidentified by "password" 的访问权限;将 mydb.* 上的选择、插入、更新授予由“密码”标识的 NewUserName@HostName;

对由“密码”标识的 mydb.TestTable NewUserName@HostName 出售更新、删除;

赋予此用户以下能力:控制相应对象的访问权限,可以在GRANT后添加WITH GRANT OPTION选项。添加到用户表中的用户的Password字段应该更新并使用PASSWORD函数进行加密,这样不法分子就无法偷看密码。不再使用的用户应被删除,访问权限超出限制的用户应立即恢复。可以通过更新User表中的相应字段或使用REVOKE函数来回收权限。

以下是我从其他资料得到的一般权限的说明():

一般管理权限:

FILE:读写MySQL服务器上的文件。

PROCESS:显示或终止属于其他用户的服务线程。

RELOAD:重新加载访问列表、更新日志等。

SHUTDOWN:关闭MySQL服务。

数据库/数据表/数据列权限:

ALTER:修改现有数据表(如添加/删除列)和索引。

CREATE:创建新的数据库或数据表。

DELETE:从表中删除记录。

DROP:删除数据表或数据库。

INDEX:创建或删除索引。

INSERT:向表中添加记录。

CHOOSE:显示/检索表记录。

更新:编辑表中的现有记录。

特殊权限:

ALL:可以执行任何操作(与 root 相同)。

使用:仅允许登录 - 不允许其他任何操作。

1。简单查询

简单的 Transact-SQL 查询仅包含一个选择列表、一个 FROM 子句和一个 WHERE 子句。它们分别描述了请求的列、查询中的

表或视图以及搜索条件。

例如以下命令查询名为“张三”的测试表表的昵称和电子邮件字段。

复制内容到剪贴板

代码:SELECT `nickname`,`email`FROM `testtable`WHERE `name`='张三'

(1)选择列表

选择列表(select_list)表示查询列,可以是一组列名列表、星号、表达式、变量(包括局部变量和全局变量)等。

1。选择所有列

例如以下语句显示测试表表所有列的数据:

将内容复制到剪贴板

代码:SELECT * FROM 测试表

2。选择一些列并定义其显示顺序

查询结果集中数据的顺序与选择列表中指定的列名的顺序相同。 ?定义格式为:

列标题 = 列名

列名 列标题

如果定义的列标题不是标准标识格式,则应使用引号分隔符。例如,以下表达式使用汉字显示列

标题:

将内容复制到剪贴板

代码:SELECT昵称=昵称,电子邮件=电子邮件FROM testtable

4。删除重复行

使用 SELECT 语句中的 ALL 或 DISTINCT 选项显示所有匹配的表行或删除重复行。

的默认值为全部。使用 DISTINCT 选项时,对于所有重复数据行,SELECT 返回的结果集中仅保留一行。 ?指定返回的行数占总行数的百分比。

示例:

将内容复制到剪贴板

代码:SELECT TOP 2 * FROM `testtable`

将内容复制到剪贴板

代码:SELECT TOP 20 PERCENT * `testtable (2) FROM 子句

FROM 定义 SELECT 语句查询以及与查询相关的表或视图。 FROM 子句中最多可以指定 256 个表或视图,以逗号分隔。

当FROM子句同时定义多个表或视图时,如果选择列表中包含同名的列,则应使用对象名称来指定这些列

所属的表或视图。 。例如,如果usertable和citytable表中都存在cityid列,则在这两个表中查询cityid时应输入

。使用以下语句格式接受:

将内容复制到剪贴板

代码:SELECT `username`,citytable.cityid

FROM `usertable`,`citytable`

WHERE usertable.cityid=citytable。 FROM 子句中可以使用以下两种格式为表或视图指定别名:

将内容复制到剪贴板

代码:表名作为别名

表名别名 例如,可以表示上面的表达式表别名形式如下:

将内容复制到剪贴板

代码: SELECT `username`,b.cityid

FROM usertable a,citytable b

WHERE a.cityid=b.cityidSELECT 不仅可以从表或视图中检索数据,它还可以从其他查询返回的结果集中查询数据。

示例:

将内容复制到剪贴板

代码:SELECT a.au_fname+a.au_lname

FROM 作者 a,titleauthor ta

(SELECT `title_le`,`title_id` FROM `titles`

WHERE ` ytd_sales`10000

) AS t

WHERE a.au_id=ta.au_id

AND ta.title_id=t.title_id 在此示例中返回。输入别名 t,然后检索有关它的信息。

(3)使用WHERE子句设置查询条件。

WHERE子句设置查询条件,过滤掉不需要的数据行。例如,以下语句检索年龄大于 20 岁的数据:

将内容复制到剪贴板

代码:SELECT * FROM usertable WHERE Age20 WHERE 子句可以包含不同的条件运算符:

比较运算符(大小比较) ) :, =,=,,!,!=10 AND age 将内容复制到剪贴板

代码: SELECT * FROM `available` ORDER BY `age` DESC, `username` ASC 也可以按表达式排序。

2。联合查询

UNION 运算符可以将两个或多个 SELECT 语句的查询结果集合并成一个结果集进行显示,即进行联合查询。

UNION 的语法形式为:

将内容复制到剪贴板

代码:select_statement

UNION [ALL] selectstatement

[UNION [ALL] selectstatement][…n] 其中selectstatement是要组合的SELECT查询语句。

ALL 选项表示将所有行合并到结果集中。如果不指定此项,则合并查询结果集中只保留一行重复行。

执行联合调查时,调查结果的列标题是第一个查询短语的列标题。因此,要指定列标题,必须在第一个查询语句中指定。对联合查询的结果进行排序时,还必须使用第一个查询短语的列名、列标题或列号。

使用UNION运算符时,必须保证每个union查询子句的选择列表具有相同的子句数量,并且每个查询子句必须具有相同的数据类型或可以自动转换为相同的数据类型。在数字类型

自动转换过程中,系统会将低精度数据类型转换为高精度数据类型。

在包含多个查询的UNION语句中,执行顺序是从左到右。使用括号来更改此执行顺序。例如:

查询1 UNION(查询2 UNION 查询3)

3. 连接查询

通过连接算子可以实现多表查询。连接是关系数据库模型的主要特征,也是其区别于其他数据库管理系统的标志。

在关系型数据库管理系统中,创建表时不需要定义每条数据之间的关系。实体的所有信息通常都存储

在一张表中。当从存储在多个表中的不同实体检索信息时,使用连接操作进行查询。 Join功能为用户带来了极大的灵活性,可以随时添加新的数据类型。为不同实体创建新表,然后使用联接运行

查询。

连接可以在 SELECT 语句的 FROM 或 WHERE 子句中形成。在 FROM 子句中合理地指示连接有助于

将连接操作与 WHERE 子句中的搜索条件区分开来。因此,在 Transact-SQL 中推荐使用此方法。

SQL-92 标准定义的 FROM 子句的连接语法形式为:

代码:FROM join table 连接类型 join table [ON(连接条件)],其中 join table 表示参与连接操作的表的名称。连接可以在同一个表或多个表中工作。同一个表的联接也称为自联接。

接头类型表示接头的类型,可分为内接头、外接头、十字接头三种。

INNER JOIN 使用比较运算符来比较表之间的特定数据列,并列出这些表中符合联接条件的数据行。根据比较方法的不同,内部接缝分为等接缝、自然接缝和不均匀接缝三种类型。

外连接分为三种类型:LEFT OUTER JOIN 或 LEFT JOIN、RIGHT OUTER JOIN 或 RIGHT JOIN

和 FULL OUTER JOIN 或 FULL JOIN。与内连接不同,外连接不仅列出符合连接条件的行,还列出左表(使用左外连接时)、右表(使用右外连接时)或两个表(使用右外连接时)。完全外连接)。 ),符合申请标准。

交叉连接(CROSS JOIN)不包含 WHERE 子句。它返回连接表中所有数据行的平方积。结果集中的数据行数等于第一个表中满足查询条件的数据行数乘以第二个表中满足查询条件的数据行数。

连接操作中的 ON (join_condition) 子句表示连接条件,由连接表的列、比较运算符、逻辑运算符等组成。

无论哪种连接,text、ntext 和 image数据类型列不能直接连接,但这三列可以间接连接。示例:

代码: SELECT p1.pub_id,p2.pub_id,p1.pr_info

FROM pub_info AS p1 INNER JOIN pub_info AS p2

ON DATALENGTH(p1.pr_info)=p2END.一)内连接

内连接的查询功能列出了连接条件对应的数据行。它使用比较运算符来比较连接列的列值。

内部接头分为三种类型:

1、对应联接:在联接条件中使用等号(=)运算符来比较联接列的列值。查询结果列出连接表中的所有列,包括重复列。

2。不等连接:在连接条件中使用除等于运算符之外的比较运算符来比较连接列的列值。这些运算符是 =,,!。

3。自然连接:在连接条件中使用等于(=)运算符来比较连接列的值,但它使用选择列表来指示查询结果集中包含的列,并从连接表中删除重复的列。 。

示例,以下使用等连接在作者和出版商表中列出同一城市的作者和出版商:

代码: SELECT *

FROM 作者 INSIDE JOIN 出版商 AS p ON a .city=p .city 另一个示例是使用自然联接从选择列表作者和出版商表中删除重复列(城市和州):

将内容复制到剪贴板

代码:SELECT a .*, p.pub_id,p.pub_name ,p.country

from 作者 AS INNER JOIN 出版商 AS p

ON a.city=p.city

(2) 外连接内连接时,返回查询结果集 仅符合查询条件的行 (WHERE搜索条件或 HAVING 条件)和连接条件

。使用外联接时,返回的查询结果集不仅包含满足联接条件的行,还包含左表(如果外联接在左侧)、右表(如果是右外联接)或两个边桌(已满)。外连接的所有数据行)。

如下所示,使用左外连接组合论坛内容和作者信息:

代码: SELECT a.*,b.* FROM `luntan` LEFT JOIN usertable as b

ON a.username = b. username下使用全外连接,将city表的所有作者和user表的所有作者及其所在城市连接起来:

代码:SELECT a.*,b.*

FROM city FULL OUTER JOIN user b

ON a. username=b.username

(3) 交叉连接

交叉连接没有 WHERE 子句,它返回两个连接表中所有数据行的笛卡尔积并返回结果设定编号

数据行数等于第一个表满足查询条件的数据行数乘以第二个表满足查询条件的数据行数。

例如name表中有6个类别的书籍,publisher表中有8个出版社,那么下面的交叉链接检索到的记录数为

6*8=48行。

代码: SELECT `type`, `pub_name`

FROM `titles` CROSS JOIN `publishers`

ORDER `type`

Java 不支持 mysql 命令吗?

支持,但当 sum(xx) 是别名时,它看起来是这种格式,sum(xx) as xx。这种形式中别名在前面,但是后面直接连接别名。不知道是不是这个问题

JAVA向MySQL添加语句时报错

先打印SQL,然后用MySQL客户端执行。这可能是一个错字。

其次,建议使用PreparedStatement通过设置参数的方式来执行SQL,而不是向SQL传递参数。在这种情况下,加法运算值(?,?,?,?)被替换。然后将参数设置为setString(1,username)方法。

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

热门