命名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條測試數據。