sql腳本編碼
說明腳本的編碼格式和資料庫的編碼格式不一致,可以通過修改資料庫編碼格式的方式來實現:
;改完編碼後執行
sql>conn/assysdba;
sql>shutdownimmediate;
databaseclosed.
databasedismounted.
oracleinstanceshutdown.
sql>startupmount;
oracleinstancestarted.
fixedsize452044bytes
variablesize109051904bytes
databasebuffers25165824bytes
redobuffers667648bytes
databasemounted.
sql>;
systemaltered.
sql>altersystemsetjob_queue_processes=0;
systemaltered.
sql>altersystemsetaq_tm_processes=0;
systemaltered.
sql>alterdatabaseopen;
databasealtered.
sql>_useUTF-8;
sql>shutdownimmediate;
sql>startup;
查看資料庫編碼格式:select userenv('language') from al;
再就是如果資料庫格式不支持中文一般也會亂碼,也通過上面的方式解決,如果資料庫已經是支持中文的格式了,那麼就只能想辦法修改腳本格式了。
② mysql用sql語句創建表和資料庫怎麼設置字元編碼'
方法如下:
我們先建一個DEMO表,來做我們今天的實現,建表語句如下:
CREATE TABLE
DEMO
(
NAME VARCHAR(50) COMMENT '姓名',
SEX CHAR(1) COMMENT '性別',
PRIMARY KEY (NAME)
)
ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='例子表';
並且select查詢一下,如下圖

③ 什麼是SQL腳本
SQL腳本:生成資料庫項目時,預先部署腳本、資料庫對象定義和後期部署腳本合並為一個生成腳本。
只能指定一個預先部署腳本和一個後期部署腳本,但可在預先部署腳本和後期部署腳本中包含其他腳本。
用於創建資料庫對象的語句的集合。Transact-SQL腳本保存為文件,文件名通常以 .sql結尾。
具體使用環境包含:MY-SQL,SQLServer,oracle。
資料庫腳本包含:存儲過程[Procere],事務[transaction]等,索引[Index],觸發器[Trigger],函數[Function]等。
使用腳本的好處:可以提高數據訪問的效率,並進行相關的數據處理。

(3)sql腳本編碼擴展閱讀
SQL具有數據定義、數據操縱和數據控制。
1、SQL數據定義功能:能夠定義資料庫的三級模式結構,即外模式、全局模式和內模式結構。在SQL中,外模式有叫做視圖(View),全局模式簡稱模式( Schema),內模式由系統根據資料庫模式自動實現,一般無需用戶過問。
2、SQL數據操縱功能:包括對基本表和視圖的數據插入、刪除和修改,特別是具有很強的數據查詢功能。
3、SQL的數據控制功能:主要是對用戶的訪問許可權加以控制,以保證系統的安全性。
④ sql語句有中文,亂碼怎麼解決
方法一:
通過增加參數
–default-character-set
=
utf8
解決亂碼問題
mysql
-u
root
-p
password
<
path_to_import_file
–default-character-set
=
utf8
方法二:
在命令行導入亂碼解決
1.
use
database_name;
2.
set
names
utf8;
(或其他需要的編碼)
3.
source
example.sql
(sql文件存放路徑)
方法三:
直接粘貼sql文件里的代碼
1.
打開sqlyog客戶端軟體;
2.
定位到sql編輯器,然後用記事本打開剛剛導出的sql文件;
3.
復制文件中所有sql語句到sql編輯器當中,執行這些sql代碼;
方法四:
用記事本或其他文本工具改變sql文件的編碼格式(若方法三不行,那就嘗試方法四)
1.
用記事本(或ue)打開剛才的導出的sql文件;
2.
另存此文件——打開另存為對話框,選擇對話框中的編碼格式為unicode編碼;
3.
保存文件,然後ctrl+a,全選;
4.
復制裡面的sql語句到sqlyog中的「sql編碼器」當中,再執行一次sql語句;
5.
執行完成後切記刷新一次,查看中文的數據表,亂碼消除,大功告成;
⑤ 高分請教資料庫(SQL)文件編碼的問題!!!
很明顯的用觸發器寫,說實話真一點難度都沒,你理下思路就出來啦。
HY + year + month + day這個不說了,輕松取得。
關鍵是流水號,首先先檢索表裡是否有該天的 HY + year + month + day打頭的記錄(比如今天是20090422,今天的第一個編號就該是HY2009042201)如果有則倒序排序取得最大的一個編號值,然後再此基礎上加1,添加進表,如果沒有HY + year + month + day 打頭的記錄則生成流水號為01不就完了么?
一點都不難對嗎??
都說到這份上了,乾脆寫給你得了;;
create trigger trig_insert on table1 for insert
as
begin
declare @year char(4),@month char(2),@day char(2),@count,@id varchar(15),@temp varchar(5)
set @year=year(getdate())
set @month=month(getdate())
if @month<10
set @month='0'+@month
set @day=day(getdate())
if @day<10
set @day='0'+@day
set @count=(select count(*) from table1 where left(id,10)='HY'+@year+@month+@day)
if @count>=1
begin
set @temp=cast(cast(replace((select top 1 id from table1 where left(id,10)='HY'+@year+@month+@day order by id desc),'HY'+@year+@month+@day,'') as int)+1 as varchar(5))
if @temp<10
set @temp='0'+@temp
set @id='HY'+@year+@month+@day+@temp
end
else
set @id='HY'+@year+@month+@day+'01'
update table1 set id=@id where 其他列=(select 其他列名 from inserted) --這里的其他列可以是一列或者跟多列,你估計著根據你的實際情況改下。
end
⑥ java讀取執行SQL腳本文件出現部分中文亂碼
1、你的資料庫系統的編碼不是utf-8
2、你insert進的表的編碼不是utf-8
3、你的出現了亂碼的欄位的編碼不是utf-8
確保第3條是utf-8即可,也可以追溯第2條,甚至上溯到第1條,
⑦ mysql文件保存的sql腳本打開之後所有中文字元顯示亂碼怎麼解決
亂碼多半是一些 插入的數據信息。。這些亂碼可以直接使用。。或者改下資料庫的編碼格式,UTF-8 或GBK等等。只要編碼格式一致一般不會出現亂碼。
⑧ MYSQL命令行運行sql腳本問題,如圖我已經修改ini文件且確認sql腳本編碼是「UTF-8」字集為什麼還是亂碼
你的sql腳本語法不對,是不是用中文逗號了?
⑨ 怎麼判斷sql文件的編碼格式
文件的字元集在Windows下有兩種,一種是ANSI,一種Unicode。
對於Unicode,Windows支持了它的三種編碼方式,一種是小尾編碼(Unicode),一種是大尾編碼(BigEndianUnicode),一種是UTF-8編碼。
我們可以從文件的頭部來區分一個文件是屬於哪種編碼。當頭部開始的兩個位元組為 FF FE時,是Unicode的小尾編碼;當頭部的兩個位元組為FE FF時,是Unicode的大尾編碼;當頭部兩個位元組為EF BB時,是Unicode的UTF-8編碼;當它不為這些時,則是ANSI編碼。
按照如上所說,我們可以通過讀取文件頭的兩個位元組來判斷文件的編碼格式,代碼如下(C#代碼):
程序中System.Text.Encoding.Default是指操作系統的當前 ANSI 代碼頁的編碼。
public System.Text.Encoding GetFileEncodeType(string filename){ System.IO.FileStream fs = new System.IO.FileStream(filename, System.IO.FileMode.Open, System.IO.FileAccess.Read); System.IO.BinaryReader br = new System.IO.BinaryReader(fs); Byte[] buffer = br.ReadBytes(2); if(buffer[0]>=0xEF) { if(buffer[0]==0xEF && buffer[1]==0xBB) { return System.Text.Encoding.UTF8; } else if(buffer[0]==0xFE && buffer[1]==0xFF) { return System.Text.Encoding.BigEndianUnicode; } else if(buffer[0]==0xFF && buffer[1]==0xFE) { return System.Text.Encoding.Unicode; } else { return System.Text.Encoding.Default; } } else { return System.Text.Encoding.Default; }}
⑩ sql 創建資料庫 創建表 腳本代碼~只要代碼
創建資料庫的SQL語句:
create database stuDB
on primary -- 默認就屬於primary文件組,可省略
(
/*--數據文件的具體描述--*/
name='stuDB_data', -- 主數據文件的邏輯名稱
filename='D:\stuDB_data.mdf', -- 主數據文件的物理名稱
size=5mb, --主數據文件的初始大小
maxsize=100mb, -- 主數據文件增長的最大值
filegrowth=15%--主數據文件的增長率
)
log on
(
/*--日誌文件的具體描述,各參數含義同上--*/
name='stuDB_log',
filename='D:\stuDB_log.ldf',
size=2mb,
filegrowth=1mb
)
刪除這個資料庫,SQL Server將資料庫的清單存放在master系統資料庫的sysdatabases表中,只需要查看該表是否存在於該資料庫中就可以
了,語句如下:
use master -- 設置當前資料庫為master,以便訪問sysdatabases表
go
if exists(select * from sysdatabases where name='stuDB')
drop database stuDB
go
創建表和刪除表的SQL語句如下:
use StuDB
go
if exists(select * from sysobjects where name='stuMarks')
drop table stuMarks
create table stuMarks
(
ExamNo int identity(1,1) primary key,
stuNo char(6) not null,
writtenExam int not null,
LabExam int not null
)
go
-- 其中,列屬性"identity(起始值,遞增量)" 表示"ExamNo"列為自動編號, 也稱為標識列
alter table 表名
add constraint 約束名 約束類型 具體的約束說明
alter table 表名
drop constraint 約束名
alter table stuMarks
add constraint UQ_stuNo Unique(stuNo)
alter table stuMarks
drop constraint UQ_stuNo
/*--添加SQL登錄賬戶--*/
exec sp_addlogin 'xie', '123456' -- 賬戶名為xie,密碼為123456
--刪除xie賬戶名
exec sp_droplogin 'xie'
/*--在stuDB資料庫中添加兩個用戶(必須存在)--*/
use stuDB
go
exec sp_grantdbaccess 'xie','123456'
go
-- 提示:SQL Server 中的dbo用戶是具有在資料庫中執行所有活動許可權的用戶,表示資料庫的所有者(owner),一般來說,
-- 如果創建了某個資料庫,就是該資料庫的所有者,即dbo用戶,dbo用戶是一個比較特殊的資料庫用戶,無法刪除,且此用
-- 戶始終出現在每個資料庫中
/* --給資料庫用戶授權-- */
-- 授權的語法如下
-- grant 許可權 [on 表名] to 資料庫用戶
use stuDB
go
grant select,update,insert on stuMarks to xie
grant create table to xie
go
