sql中字
1. 如何處理sql中的關鍵字(例如',%)
delete
from
表名
where
欄位名
in
(select
欄位名
from
表名
group
by
欄位名
having
count(*)>1)
不過關鍵字不應該有重復的,你要刪除的是欄位重復數據吧
2. sql有哪些保留字
sql中的保留字
action add aggregate all
alter after and as
asc avg avg_row_length auto_increment
between bigint bit binary
blob bool both by
cascade case char character
change check checksum column
columns comment constraint create
cross current_date current_time current_timestamp
data database databases date
datetime day day_hour day_minute
day_second dayofmonth dayofweek dayofyear
dec decimal default delayed
delay_key_write delete desc describe
distinct distinctrow double drop
end else escape escaped
enclosed enum explain exists
fields file first float
float4 float8 flush foreign
from for full function
global grant grants group
having heap high_priority hour
hour_minute hour_second hosts identified
ignore in index infile
inner insert insert_id int
integer interval int1 int2
int3 int4 int8 into
if is isam join
key keys kill last_insert_id
leading left length like
lines limit load local
lock logs long longblob
longtext low_priority max max_rows
match mediumblob mediumtext mediumint
middleint min_rows minute minute_second
modify month monthname myisam
natural numeric no not
null on optimize option
optionally or order outer
outfile pack_keys partial password
precision primary procere process
processlist privileges read real
references reload regexp rename
replace restrict returns revoke
rlike row rows second
select set show shutdown
smallint soname sql_big_tables sql_big_selects
sql_low_priority_updates sql_log_off sql_log_update sql_select_limit
sql_small_result sql_big_result sql_warnings straight_join
starting status string table
tables temporary terminated text
then time timestamp tinyblob
tinytext tinyint trailing to
type use using unique
unlock unsigned update usage
values varchar variables varying
varbinary with write when
where year year_month zerofill
3. 如何解決SQL語句中含有中文字元無法查詢
package oop.hu.ytu.;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import oop.hg.ytu.beans.LoginBean;
import oop.hg.ytu.utils.JdbcUtils;
/**
* 處理用戶登錄請求
* @author Administrator
*
*/
public class LoginDomain {
public LoginBean select(String tableName,String username){
Connection con = null;
PreparedStatement pt = null;
ResultSet rs = null;
LoginBean bean = new LoginBean();
try {
username = "\""+username+"\"";
con = JdbcUtils.getConnection();
String sql = "select name,password from "+tableName+" where name="+username+"";
pt = con.prepareStatement(sql);
// pt.setString(1, tableName);
// pt.setString(2, u);
rs = pt.executeQuery();
while(rs.next()){
bean.setUsername(rs.getString("name"));
bean.setPassword(rs.getString("password"));
}
} catch (Exception e) {
throw new RuntimeException(e);
}finally{
JdbcUtils.free(rs, pt, con);
}
return bean;
}
}
username = "\""+username+"\"";這句話是進行字元串處理,加上雙引號。
<pre name="code" class="java" style="background-color: rgb(255, 255, 255); ">String sql = "select name,password from "+tableName+" where name="+username+"";
這句話是重點,一定不能使用PreparedStatement提供的字元串處理方法,一定要直接自己拼接出字元串來運行,這樣對於中文的處
4. SQL中關於字串替換問題.
如果記錄中全部以'AA'開頭可以用
UPDATE 表名 SET 列名=REPLACE(列名,'AA','HH') WHERE 列名 like 'AA'
如果記錄中除了在'AA'開頭,還有'AA'在記錄中如 'AA0AA1'就用
UPDATE 表名 SET 列名='HH'+RIGHT(列名,LEN(列名)-LEN('AA')) WHERE 列名 like 'AA'
5. sql中如何統計一欄位中字元串的個數
declare @s varchar(100)
set @s='156434A27kAsdABCiosd-01&**('
--找出現的次數
select len(@s)-len(replace(@s,'A',''))
SQL中字元串截取函數(SUBSTRING)
1、left(name,4)截取左邊的4個字元
列:
SELECT LEFT(201809,4) 年
結果:2018
2、right(name,2)截取右邊的2個字元
SELECT RIGHT(201809,2) 月份
結果:09
(5)sql中字擴展閱讀
sql中group by用法:
GROUP BY可以先從字面上來理解,GROUP表示分組,BY後面寫欄位名,就表示根據哪個欄位進行分組,如果有用Excel比較多的話,GROUP BY比較類似Excel裡面的透視表。
GROUP BY必須得配合聚合函數來用,分組之後可以計數(COUNT),求和(SUM),求平均數(AVG)等。
常用聚合函數:count()計數、sum()求和、avg()平均數、max()最大值、min()最小值。
SELECT 語句指定了兩列(Customer 和 SUM(OrderPrice))。"SUM(OrderPrice)" 返回一個單獨的值("OrderPrice" 列的總計),而 "Customer" 返回 6 個值(每個值對應 "Orders" 表中的每一行)。因此,我們得不到正確的結果。不過,您已經看到了,GROUP BY 語句解決了這個問題。
6. sql中求字串問題
先加一列 b
alter table 表名 add b 類型
update 表名 set b =
case
when substring(a,1,3)='000' then 1
when substring(a,1,3)='002' then 2
when substring(a,1,3)='125' then 3
end
7. pl/sql中中文是幾個字元
在計算機中一個字的佔位是按位元組計算的,一個位元組佔8位二進制。
通常分為單位元組字,和雙位元組字。數字、字母、常用符號都屬於單位元組字,
漢子都屬於雙位元組字。通常可以說一個漢子占兩個字元位。
例如:在SQL函數SUBSTR中,按字計算,數字、字母、漢字都看做一個字,
但在SUNSTRB中,按位元組計算,數字、字母是一個位元組,漢字算2個位元組。
8. SQL中字元串的連接
在MYSQL中字元串連接使用的是concat內置函數。可以寫為:select
*
from
myDB
where
name
=concat('a','bc')
在SQL
Server中字元串連接用+號。可以寫為:select
*
from
myDB
where
name
='a'+'bc'
在Oracle中字元串連接用的是||號。
9. SQL中字元串的操作
你的chinese_name沒有在引號裡面,所以報錯了
update medicine set chinese_name='農'+『chinese_name』 where medicine_id='00014';
10. 如何處理sql中的關鍵字(例如',%)
使用 ESCAPE 關鍵字定義轉義符。在模式中,當轉義符置於通配符之前時,該通配符就解釋為普通字元。
給你舉個例子好了
select name from a WHERE name LIKE '%/%ab' ESCAPE '/'
結果為:
name
----------
11%ab
12%ab