命名sql查询
㈠ 什么是命名sql
可以在映射文档中定义查询的名字,然后就可以象调用一个命名的HQL查询一样直接调用命名SQL查询.在这种情况下,我们不 需要调用addEntity()方法.
<sql-query name="persons">
<return alias="person" class="eg.Person"/>
SELECT person.NAME AS {person.name},
person.AGE AS {person.age},
person.SEX AS {person.sex}
FROM PERSON person
WHERE person.NAME LIKE :namePattern
</sql-query>
List people = sess.getNamedQuery("persons")
.setString("namePattern", namePattern)
.setMaxResults(50)
.list();
<return-join>和 <load-collection> 元素是用来连接关联以及将查询定义为预先初始化各个集合的。
<sql-query name="personsWith">
<return alias="person" class="eg.Person"/>
<return-join alias="address" property="person.mailingAddress"/>
SELECT person.NAME AS {person.name},
person.AGE AS {person.age},
person.SEX AS {person.sex},
adddress.STREET AS {address.street},
adddress.CITY AS {address.city},
adddress.STATE AS {address.state},
adddress.ZIP AS {address.zip}
FROM PERSON person
JOIN ADDRESS adddress
ON person.ID = address.PERSON_ID AND address.TYPE='MAILING'
WHERE person.NAME LIKE :namePattern
</sql-query>
一个命名查询可能会返回一个标量值.你必须使用<return-scalar>元素来指定字段的别名和 Hibernate类型
<sql-query name="mySqlQuery">
<return-scalar column="name" type="string"/>
<return-scalar column="age" type="long"/>
SELECT p.NAME AS name,
p.AGE AS age,
FROM PERSON p WHERE p.NAME LIKE 'Hiber%'
</sql-query>
你可以把结果集映射的信息放在外部的<resultset>元素中,这样就可以在多个命名查询间,或者通过setResultSetMapping()API来访问。(此处原文即存疑。原文为:You can externalize the resultset mapping informations in a <resultset> element to either reuse them accross several named queries or through the setResultSetMapping() API.)
<resultset name="personAddress">
<return alias="person" class="eg.Person"/>
<return-join alias="address" property="person.mailingAddress"/>
</resultset>
<sql-query name="personsWith" resultset-ref="personAddress">
SELECT person.NAME AS {person.name},
person.AGE AS {person.age},
person.SEX AS {person.sex},
adddress.STREET AS {address.street},
adddress.CITY AS {address.city},
adddress.STATE AS {address.state},
adddress.ZIP AS {address.zip}
FROM PERSON person
JOIN ADDRESS adddress
ON person.ID = address.PERSON_ID AND address.TYPE='MAILING'
WHERE person.NAME LIKE :namePattern
</sql-query>
另外,你可以在java代码中直接使用hbm文件中的结果集定义信息。
List cats = sess.createSQLQuery(
"select {cat.*}, {kitten.*} from cats cat, cats kitten where kitten.mother = cat.id"
)
.setResultSetMapping("catAndKitten")
.list();
㈡ 请问SQL中如何才能给列as重命名一个查绚结果
SQL 查询中重命名使用as来处理,语法:select 字段名 as 重命名
1、as可理解为:用作、当成,作为;一般式重命名列名或者表名。
2、例如:
有表table, 列 column_1,column_2
可以写成 select column_1 as 列1,column_2 as 列2 from table as 表
上面的语句就可以解释为,选择 column_1 作为 列1,column_2 作为 列2 从 table 当表
㈢ SQL Server怎样为在数据库查询返回的表命名
SQL Server查询表名的方法如下:
1.获取所有数据库名:
SELECT Name FROM Master.SysDatabases ORDER BY Name
2.获取所有表名:
SELECT Name FROM DatabaseName.SysObjects Where XType='U' ORDER BY Name
XType='U':表示所有用户表;
XType='S':表示所有系统表;
3.获取所有字段名:
SELECT Name FROM SysColumns WHERE id=Object_Id('TableName')
㈣ SQL中在做查询时怎样给某一个字段重命名
SQL中在做查询时怎样给某一个字段重命名
MySQL中,如何使用SQL语句来对表中某一个雀局字段进行重命名呢?我们将使用alter table 这一SQL语句。
重命名字段的语法为:alter table <表名> change <字段名> <字段新名称> <字段的类型>。
现在我们来尝试把test表中的.t_name字段重命名为t_name_new字段。
1、首先查看一下当前test表的结构
mysql> describe test;
+------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------+-------------+------+-----+---------+-------+
| t_id | int(11) | YES | | NULL | |
| t_name | var20) | YES | | NULL | |
| t_password | 32) | YES | | NULL | |
| t_birth | date | YES | | NULL | |
+------------+-------------+------+-----+---------+-------+
4 rows in set (0.00 sec)
2、使用alter table语句颤斗来修改字段名称
mysql> alter table test change t_name t_name_new var20);
Query OK, 0 rows affected (0.11 sec)
Records: 0 Duplicates: 0 Warnings: 0
3、查看修改过后的结果
mysql> describe test;
顷洞让+------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------+-------------+------+-----+---------+-------+
| t_id | int(11) | YES | | NULL | |
| t_name_new | var20) | YES | | NULL | |
| t_password | 32) | YES | | NULL | |
| t_birth | date | YES | | NULL | |
+------------+-------------+------+-----+---------+-------+
4 rows in set (0.00 sec)
至此,我们可以顺利的修改表中字段名称了。
关于MySQL中使用SQL语句对字段进行重命名,本文就介绍这么多,希望对大家有所帮助,谢谢! ;
㈤ SQL中在做查询时怎样给某一个字段重命名
sql 重命名专业术语是 别名,用 AS 语句实现。
例:给sc_table表中的age字段重命名为st_age,则:
selectageasst_age
fromsc_table
类似的还可以给表起别名
例如:查询sc_student表所有行并重命名为student,则:
select*
fromsc_studentasstudent
㈥ 如何用一条SQL语句查询某人所在名次,注意,是名次。 mysql
1、首先新建一个test数据库,在数据库里创建一张data数据表,在表内插入5条测试数据。