Oracle

来源:http://www.cnblogs.com/liqun-12345/archive/2016/03/17/5287428.html
-Advertisement-
Play Games

Oracle的基本信息詳情見 http://baike.sogou.com/v449760.htm?fromTitle=Oracle資料庫 Oracle Database[1],又名Oracle RDBMS,或簡稱Oracle。是甲骨文公司的一款關係資料庫管理系統。到目前仍在資料庫市場上占有主要份額


Oracle

Oracle的基本信息詳情見

http://baike.sogou.com/v449760.htm?fromTitle=Oracle資料庫

       Oracle簡介

                   Oracle Database[1],又名Oracle RDBMS,或簡稱Oracle。是甲骨文公司的一款關係資料庫管理系統。到目前仍在資料庫市場上占有主要份額。勞倫斯·埃里森和他的朋友,之前的同事Bob Miner和Ed Oates在1977年建立了軟體開發實驗室咨詢公司(SDL,Software Development Laboratories)。作為一個通用的資料庫系統,它具有完整的數據管理功能;作為一個關係資料庫,它是一個完備關係的產品;作為分散式資料庫它實現了分散式處理功能。但它的所有知識,只要在一種機型上學習了ORACLE知識,便能在各種類型的機器上使用它。

       伺服器

Oracle Server是一個對象一關係資料庫管理系統。它提供開放的、全面的、和集成的信息管理方法。每個Server由一個 Oracle DB和一個 Oracle Server實例組成。它具有場地自治性(Site Autonomy)和提供數據存儲透明機制,以此可實現數據存儲透明性。每個 Oracle資料庫對應唯一的一個實例名SID,Oracle資料庫伺服器啟動後,一般至少有以下幾個用戶:Internal,它不是一個真實的用戶名,而是具有SYSDBA優先順序的Sys用戶的別名,它由DBA用戶使用來完成資料庫的管理任務,包括啟動和關閉資料庫;Sys,它是一個 DBA用戶名,具有最大的資料庫操作許可權;System,它也是一個 DBA用戶名,許可權僅次於 Sys用戶。

      客戶端

為資料庫用戶操作端,由應用、工具、SQL* NET組成,用戶操作數據庫時,必須連接到一伺服器,該資料庫稱為本地資料庫(Local DB)。在網路環境下其它伺服器上的 DB稱為遠程資料庫(Remote DB)。用戶要存取遠程 DB上的數據時,必須建立資料庫鏈

Oracle資料庫的體繫結構包括物理存儲結構和邏輯存儲結構。由於它們是相分離的,所以在管理數據的物理存儲結構時並不會影響對邏輯存儲結構的存取。

       主要特點

完整的數據管理功能:

1)數據的大量性

2)數據的保存的持久性

3)數據的共用性

4)數據的可靠性

2、完備關係的產品:

1)信息準則---關係型DBMS的所有信息都應在邏輯上用一種方法,即表中的值顯式地表示;

2)保證訪問的準則

3)視圖更新準則---只要形成視圖的表中的數據變化了,相應的視圖中的數據同時變化

4)數據物理性和邏輯性獨立準則

3、分散式處理功能:

ORACLE資料庫自第5版起就提供了分散式處理能力,到第7版就有比較完善的分散式資料庫功能了,一個ORACLE分散式資料庫由oraclerdbms、sql*Net、SQL*CONNECT和其他非ORACLE的關係型產品構成。

4、用ORACLE能輕鬆的實現數據倉庫的操作。

這是一個技術發展的趨勢,不在這裡討論。

優點

可用性強

可擴展性

數據安全性強

穩定性強

 

Oracle的基本操作

       表空間

                創建表空間: create tablespace 表空間名

datafile  ‘表空間的地址.DBF’ size ?M

autoextend on(是否自動擴展(OFF不));

刪除表空間: drop tablespace 表空間名;

查看表空間:   select * from dba_data_files where tablespace_name=’?’

       創建用戶並授權

                   創建新用戶步驟

                           a) .創建表的臨時表空間 

b).創建數據的表空間 

c).創建用戶 

d).分配許可權  

                 a). 創建表的臨時表空間 

--刪除表空間

drop tablespace user_temp;

--創建表空間

create temporary tablespace user_temp

tempfile 'F:\Oracle\temp\user_temp.dbf'

size 10M maxsize 50M

autoextend on

next 10M maxsize 50M

extend management local;

b). 創建資料庫表空間  **/

                           --刪除表空間

drop tablespace user_data;

--創建表空間  

create tablespace user_data

logging

datafile 'F:\Oracle\log_user_data.dbf'

size 10M

autoextend on

next 10M maxsize 50M

extend management local;

c). 創建用戶

--刪除用戶

drop users martin casade;

--創建用戶

create user users

identified user

default tablespace user_data

temporary tablespace user_temp;

--修改密碼

alter users martin identity by abc123;

 

                   d). 分配許可權 

grant connect,resource,bda users; 

                   --移除處許可權

revoke connect from users

       序列

                   創建序列

create sequence seq_id

start with 1

increment by 1--增長間隔

maxvalue 100

cycle --達到最大值從頭生成

cache 30;--緩存

訪問:

nextval下一個

currval 當前值

刪除

drop sequence seq_id;

生成32位編碼

select sys_guid() from dual;

 

PL/SQL

                   declare

                      聲明變數(變數名 類型 [:=初始值])

begin

                                 sql語句

                 exception

                                異常處理

end;

       游標

                   2種方法:LOOP和for

①       LOOP

declare

                                   --定義變數存放內容

                                            names students.sname%type;

                                            gnames grade.gname%type;

                                   --定義游標

                                            Cursor cur_stu IS 

                                          select s.sname,g.gname from students s inner

join grade g on s.gid=g.gid;

                                             Begin

                                         Open cur_stu;  --打開游標

                                         Loop   --迴圈

                                       fetch cur_stu into names,gnames;

                               exit

                                       when cur_stu%Notfound;

                                              Dbms_Output.put_line ('第'||cur_stu%Rowcount||'個學員的名字為:'||names||',所在的班級為:'||gnames);

                                   end Loop;

                           end;

 

 

②       For方法 

                                    declare

                                            --定義變數存放內容

                                             names students.sname%type;

                                             gnames grade.gname%type;

                                            --定義游標

                                            Cursor cur_stu IS 

                                  select s.sname,g.gname from students s inner join grade g on s.gid=g.gid;

 Begin

                                              For cur_record in cur_stu

                                  Loop

                            Dbms_Output.put_line('第'||cur_stu%Rowcount||'個學員的名字為:'||names||',所在的班級為:'||gnames);

                         end Loop;

 end;

 

帶參顯示游標

                   DECLARE

                           CURSOR emp_cursor(no NUMBER) IS

                        SELECT ename,sal  FROM employee WHERE deptno=no;

                                  emp_record emp_cursor%ROWTYPE;

                           v_sal employee.sal %TYPE;   (游標變數)

BEGIN

                  IF NOT emp_cursor%ISOPEN THEN

                      OPEN emp_cursor(10);

                END IF;

                LOOP

                 FETCH emp_cursor INTO emp_record;

                        EXIT WHEN emp_cursor%NOTFOUND;

                      dbms_output.put_line(emp_record.ename||':'||emp_record.sal);

               END LOOP;

                         CLOSE emp_cursor;

END;

       隱式游標

                   --%NOTFOUND屬性舉例

                  DECLARE

                          v_name employee.ename%TYPE;

                  BEGIN

                          SELECT ename INTO v_name FROM employee

                       WHERE empno=45;

                 IF SQL%NOTFOUND THEN

                     dbms_output.put_line('NOTFOUND-不存在該員工');

                   ELSE

                       dbms_output.put_line('存在該員工');

                 END IF;

                           EXCEPTION

                        WHEN no_data_found THEN

                     dbms_output.put_line('no_data_found-不存在該員工');

                 WHEN OTHERS THEN        

                     dbms_output.put_line('其他錯誤');

 END;

 

       存儲過程

                            Oracle存儲過程

1.單獨賦予許可權:

                                     grant execute on 存儲名稱 to 用戶名

2.調用存儲名稱

                                       execute 存儲名稱(參數)

3.存儲過程(Procedure)和函數(function)的區別

                        不同點:

①       function 有返回值,可以在Query中引用function

或使用function返回值

②       最根本: 存儲過程是命令,而函數是表達式的一部分

   相同點:

①       都是PL/SQL程式

Oracle存儲過程的基本語法

                                     1.基本結構

                                              Create Or replace procedure 存儲名稱

                                               (

                                                        參數1 in number,

                                                        參數2 in number

                                               )As

                                                        變數名1 integer :=0;

                                                        變數2 Date;

                                               Begin

                                               End 存儲過程名稱

 

       存儲過程調用

                   1.  Pl/Sql中執行存儲過程在sql*plus中:

                                     declare

                                               --必要的變數聲明,視你的過程而定begin

                                               execute yourprocudure(parameter1,parameter2,...);

                                     end

        2. .Oracle調用Oracle存儲過程

                           execute 存儲名稱(參數)

 

           3. Hibernate調用Oracle存儲過程

                   this.pnumberManager.getHibernateTemplate().execute(

                              newHibernateCallback()...{

                                       public Object doInHibernate(Sessionsession)

                                                throws HibernateException,SQLException...{

                                               CallableStatement cs=session.connection()

                                               .prepareCall("{call modifyapppnumber_remain(?)}");

                                                cs.setString(1,foundationid);

                                                cs.execute();returnnull;

                                                }

                                      }

                             )

 

關於Oracle存儲過程的若幹問題備忘

 

1. 在Oracle中,數據表的別名不能加as

         分析: select a.appname from appinfo a;--正確

                     select a.appname from appinfo as a;--錯誤

             也許,是怕和Oracle中的存儲過程中的關鍵字as衝突的問題吧

                  

2. 在存儲過程中,select某一欄位時,後面必須緊跟into,

         如果select整個記錄,利用游標的話就另當別論了。

            分析: select af.keynode into kn from APPFOUNDATION af

                              where af.appid=aid and af.foundationid=fid;--有into,正確編譯

                            ----------------------------------------------------------------

                             select af.keynode from APPFOUNDATION af

                              where af.appid=aid and af.foundationid=fid;--沒有into, 編譯報錯,

                              提示:Compilation Error:PLS-00428:an INTO clause is expected in this SELECT statemen

                             

3.在利用select...into...語法時,必須先確保資料庫中有該條記錄,否則會報出"nodatafound"異常。

                   可以在該語法之前,先利用selectcount(*)from查看資料庫中是否存在該記錄,

                   如果存在,再利用select...into.                

 

4.在存儲過程中,別名不能和欄位名稱相同,否則雖然編譯可以通過,但在運行階段會報錯

                   分析: select keynode into kn from APPFOUNDATION

                                     where appid=aid and foundationid=fid;--正確運行

                              ---------------------------------------------------

                              select af.keynode into kn from APPFOUNDATION af

                              where af.appid=appid and af.foundationid=foundationid; --運行階段報錯,

                              提示:ORA-01422:exact fetch returns more than requested number of rows

 

5. 在存儲過程中,關於出現null的問題

         假設有一個表A,定義如下:

                   create  table A

                   (

                     id varchar2(50) primary key not null,

                     vcount number(8) not null,

                     bidvar char2(50) not null--外鍵

                   );

          如果在存儲過程中,使用如下語句:

                   select sum(vcount) into fcount from A where bid='xxxxxx';

                   如果A表中不存在bid="xxxxxx"的記錄,則fcount=null

                   (即使fcount定義時設置了預設值,如:fcountnumber(8):=0依然無效,fcount還是會變成null),

                   這樣以後使用fcount時就可能有問題,所以在這裡最好先判斷一下:

                   if

                            fcount is null

                   then

                            fcount:=0;

                   end if;

                   這樣就一切ok了。

        

 

         用Java調用Oracle存儲過程總結

一.無返回值的存儲過程

         測試表:

                   --Create table

                            create table TESTTB

                            (

                                     ID VARCHAR2(30),

                                     NAME VARCHAR2(30)

                            )

                   tablespace BOM

                            pctfree 10

                            initrans 1

                            maxtrans 255

                            storage

                            (

                                     initial 64K

                                     minextents 1

                                     maxextents unlimited

                            );

 

 

分頁sql語句

select * from (

select A.* , RN from C

select * from student ) A where RN bettwen (頁數-1)*記錄數/頁 and  (頁數*記錄數/頁)

 

刪除重覆記錄(僅保留一頁)

SQL語句:delete from stuINfo where rowId not in(

                   Select Max(RowId) from stuInfo

group by stuname,stuAge

having (count(stuAge||stuAge)>1)

union

select Max(rowId) from stuInfo

Group by stuName,stuAge

Having (count(stuAge||stuName)==1)

)

                   

                           

                   

Oracle操作的實用語句

-- 查看ORACLE 資料庫中本用戶下的所有表
SELECT table_name FROM user_tables;

-- 查看ORACLE 資料庫中所有用戶下的所有表
select user,table_name from all_tables;

-- 查看ORACLE 資料庫中本用戶下的所有列
select table_name,column_name from user_tab_columns;

-- 查看ORACLE 資料庫中本用戶下的所有列
select user,table_name,column_name from all_tab_columns;

-- 查看ORACLE 資料庫中的序列號
select * from user_sequences;

-- 上面的所有對象,都可以通過下麵的SQL語句查詢得到
-- 查詢所有的用戶生成的ORACLE對象 
  SELECT * FROM user_objects;

-- 查看ORACLE 資料庫中所有表的註釋
select table_name,comments from user_tab_comments;

-- 查看ORACLE 資料庫中所有列的註釋
select table_name,column_name,comments from user_col_comments;

-- 給表加ORACLE的註釋
COMMENT ON TABLE aa10 IS '系統參數表';

-- 給列加ORACLE的註釋
COMMENT ON COLUMN aa10.aaa100 IS '參數類別';

-- 通過約束查看表名
select TABLE_NAME from all_constraints where CONSTRAINT_NAME='約束名';

select constraint_name,constraint_type,table_name from all_constraints where CONSTRAINT_NAME='約束名';

註意:

1.表應為:all_constraints

2.主鍵約束“PK_ID”必須大寫

 

-- 通過表名去查列名的長度

select * from user_tables where table_name = upper('表名')—

--查詢出用戶所有表的索引

select   *   from   user_indexes

--查詢用戶表的索引(非聚集索引): 

select   *   from   user_indexes where   uniqueness='NONUNIQUE'

--查詢用戶表的主鍵(聚集索引): 

select   *   from   user_indexes where   uniqueness='UNIQUE' 

--查詢表的索引

select t.*,i.index_type from user_ind_columns t,user_indexes i where t.index_name = i.index_name and t.table_name='NODE'

 

--查詢表的主鍵

select cu.* from user_cons_columns cu, user_constraints au where cu.constraint_name = au.constraint_name and au.constraint_type = 'P' AND cu.table_name = 'NODE'

 

--查找表的唯一性約束(包括名稱,構成列): 

select column_name from user_cons_columns cu, user_constraints au where cu.constraint_name=au.constraint_name and cu.table_name='NODE'

 

--查找表的外鍵

select * from user_constraints c where c.constraint_type = 'R' and c.table_name='STAFFPOSITION'

 

--查詢外鍵約束的列名: 

select * from user_cons_columns cl where cl.constraint_name = 外鍵名稱
 

--查詢引用表的鍵的列名:

select * from user_cons_columns cl where cl.constraint_name = 外鍵引用表的鍵名

 

--查看當前線程數

select count(*) from v$session;

 

--查看最大的線程數

     select value from v$parameter where name = 'sessions'

 

--修改最大線程數(重啟Oracle伺服器才會生效)

   Alter system set session=300 scope = spfile

 

--查看最大進程數

select value from v$parameter where name = 'processes'

 

--修改最大線程數(重啟Oracle伺服器才會生效)

 alter system set sessions=335 scope=spfile;

 

-- 通過系統表,查看表中列的屬性,包括 數據類型,是否非空等 
SELECT table_name,COLUMN_ID,column_name,data_type,data_length,DATA_PRECISION,NULLABLE
FROM user_tab_columns 
ORDER BY table_name,COLUMN_ID;

--查看所有表空間 

selecttablespace_name,sum(bytes)/1024/1024 from dba_data_files  group by tablespace_name

--查看未使用表空間大小

selecttablespace_name,sum(bytes)/1024/1024 from dba_free_space group bytablespace_name;


-- 查看資料庫中表、索引占用的資料庫空間大小 
   SELECT * FROM user_segments;

-- 查看所有表的記錄數
CREATE TABLE table_count(table_name VARCHAR2(50),columns NUMBER(20)); 

-- 通過PB運行下麵的語句,得到結果集,將結果集在PB下執行,最後提交
select 'insert into table_count values('''||table_name||''', (select count(1)from '||table_name||'));//'||comments from user_tab_comments;


-- 所有表的記錄都在table_count了 
SELECT * FROM table_count;

// 將ORACLE資料庫的註釋同步到PB中 代碼開始
DELETE FROM PBCATCOL WHERE PBC_TNAM LIKE '%'; 
DELETE FROM PBCATTBL WHERE PBT_TNAM LIKE '%';


INSERT INTO PBCATTBL 
( PBT_TNAM, 
PBT_OWNR , 
PBT_CMNT) 
SELECT ALL_TAB_COMMENTS.TABLE_NAME, 
ALL_TAB_COMMENTS.OWNER, 
ALL_TAB_COMMENTS.COMMENTS 
FROM ALL_TAB_COMMENTS 
WHERE ALL_TAB_COMMENTS.OWNER = 'LH' 
AND TABLE_NAME LIKE '%';


// 同步欄位名

INSERT INTO PBCATCOL 
( PBC_TNAM, 
PBC_OWNR, 
PBC_CNAM, 
PBC_LABL, 
PBC_CMNT, 
PBC_HDR) 
SELECT ALL_COL_COMMENTS.TABLE_NAME, 
ALL_COL_COMMENTS.OWNER, 
ALL_COL_COMMENTS.COLUMN_NAME, 
ALL_COL_COMMENTS.COMMENTS , 
ALL_COL_COMMENTS.COMMENTS , 
ALL_COL_COMMENTS.COMMENTS 
FROM ALL_COL_COMMENTS 
WHERE ALL_COL_COMMENTS.OWNER = 'LH' 
AND TABLE_NAME LIKE '%';

COMMIT; 
-- 將ORACLE資料庫的註釋同步到PB中 代碼結束


--將PB註釋同步到ORACLE中
select 'comment on table '||pbt_tnam||' is '''||pbt_cmnt||''';' from pbcattblwhere pbt_tnam not like 'PB%'
UNION 
select 'comment on column '||pbc_tnam||'.'||pbc_cnam||' is '''||pbc_cmnt||''';'from pbcatcol where pbC_tnam not like 'PB%';


--查進程 
select object_id,session_id,locked_mode from v$locked_object;

selectt2.username,t2.sid,t2.serial#,t2.logon_time
from v$locked_object t1,v$session t2 
where t1.session_id=t2.sid order by t2.logon_time;

--殺進程 
alter system kill session '3,6666';

 

oracle操作語句:

1.創建表

create table 表名( 

 列名1 類型,

 列名2 類型

); 

2.修改類屬性

alter table 表名 modify(列名 類型); 

3.添加列

alter table 表名 add(列名 類型); 

4.添加主鍵約束和非空約束

alter table 表名 add constraint pk_表名 primary key(列名); 

alter table 表名 modify(列名 not null); 

5.刪除主鍵約束

alter table 表名 drop primary key; 

alter table 表名 drop constraint pk_表名; 

6.失效約束

alter table 表名 disable primary key; 

alter table 表名 disable constraint pk_表名; 

7.有效約束

alter table 表名 enable primary key; 

alter table 表名 enable constraint pk_表名; 

8.刪除列

alter table 表名 drop column 列名; 

9.設置某列不可用,然後刪除

alter table 表名 set unused(列名); 

alter table 表名 drop unused columns; 

10.修改表名

rename 表名1 to 表名2 

alter 表名1 rename to 表名2; 

11.截斷表

truncate table 表名; 

12.截斷表保留行空間

truncate table 表名 resue storage; 

13.查看表結構

desc table 表名; 

14.刪除表

drop table 表名; 

15.插入記錄

例:insert into 表名 values(內容1,內容2,內容3,內容4); 

16.帶參數對話方式插入行

例:insert into 表名 values(&列名1,&列名2); 

 insert into 表名 values(內容1,內容2); 

17.插入某幾列記錄

insert into 表名(列名1,列名2) values(內容1,內容2); 

18.為列插入空值(其列不能為not null)

insert into 表名 values(內容1,null,null); 

19.創建表(包括主鍵及外鍵設置)方法一

create table 表名( 

 列名1 類型

 constraint pk_表名 primary key, 

 列名2 類型 not null, 

 列名3 類型 

 constraint fk_表名 reference 表名(列名), 

 列名3 類型

 constraint ck_表名 check(列名3 in(''內容1'',''內容2'',''內容3'')) 

); 

20.查詢所有行

select * from 表名; 

21.查詢某幾列

select 列名1,列名2 from 表名; 

 

22.重覆行消除

select distict 列名 from 表名; 

23.where語句查詢

select * from 表名 where 條件 order by 列名; 

(註:如number類型查出自動按升序排列,如要按降序排列,則select * from 表名 where 條件 order by 列名desc;) 

24.創建表,方法二

create table 表名( 

 列名1 類型 primary key, 

 列名2 類型 not null, 

 列名3 類型check(列名3 in('''','''','''')), 

 列名4 類型 refernce 表名(列名) 

); 

 

25.修改 列=‘?’的數據

update 表名 set (列=?) where 列=‘?’; 

 

26.刪除行

delete from 表名 where 條件; 

 

27.事務處理

--事務處理

update 表名

set 列名(日期) = ''30-5月-98'' 

where 條件; 

savepoint mark1; 

delete from 表名 where 條件; 

savepoint mark2; 

rollback to savepoint mark1; 

rollback; 

28.建立用戶user1,密碼為password 

授予用戶connect,resource的許可權

connect角色用於登錄

resource角色用於建表等. 

connect system/manager 

create user user1 identified bypassword; 

grant connect,resource to password; 

29.數據控制語言

connect scott/tiger 

30.把對錶1查詢和修改的許可權授予user1 

grant select,update on 表1 to user1; 

31.把對錶表1中列1和列2修改的許可權授予user1 

grant update(列1,列2) on 表1 to user1; 

32.把對錶表1查詢的許可權授予用戶user1 

並且user1用戶還可以把這個許可權授予別的用戶(with grant option) 

grant select on 表1 to user1 with grant option; 

33.從用戶user1撤銷對錶1查詢和修改的許可權

revoke select,update on 表1 from user1;

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 創建賬號或修改賬號密碼時有可能會遇到ORA-00988: missing or invalid password(s),那麼什麼情況下會遇到這種錯誤呢? 一般是因為密碼的設置不符合命名規範: 1:密碼是關鍵字,但是沒有用雙引號包裹起來。 2:密碼以數字開頭,但是沒有用雙引號包裹起來 3:密碼包含特殊...
  • 0、很大一部分業務模型數據屬於結構化數據 1、結構化數據可以通過一定的手段將其轉化到非結構化存儲引擎中 2、倘若採用了非結構化的存儲方式,用什麼樣的方式實現傳統的複雜的查詢、聚合、關聯的方式? 學習中。。。。
  • 微軟最新版本的資料庫SQL Server 2016在2016年3月9日推出了RC0版本。已經提供了包括簡體中文等多種語言版本,不過聯機叢書還是英文版的。對OS的要求是WIN8,WIN10, WIN2012,只有64位版本。讓我們下載最新的版本安裝測試下。 Figure-1: SQL Server 2
  • 在SQL優化過程,有時候需要查看哪些SQL具有多個執行計劃(Multiple Executions Plans for the same SQL statement),因為同一個SQL有多個執行計劃一般意味著代碼有問題或某些其它原因,例如,SQL語句使用綁定變數,但是綁定變數的類型或長度可能不一致會...
  • 1.problem describe: when you dependency jar about oracle use code like this: <!-- oracle-connector --> <dependency> <groupId>com.oracle</groupId> <art
  • CREATE {TABLE | CLASS} <new_table_name> LIKE <old_table_name> 如下 CREATE TABLE a_tbl( id INT NOT NULL DEFAULT 0 PRIMARY KEY, phone VARCHAR(10)); INSERT
  • ① 企業版: 全面 ② 標準版: 適合中小企業的需求 ③ 工作組版: 理想的數據管理解決方案,大小和用戶數量沒有限制的小型企業 ④ 開發版: 覆蓋企業版的所有功能,但是只允許開發和測試使用,不允許做為生產系統 ⑤ 免費版: a) 檢查是否開啟服務: 方法一: Microsoft…à配置工具àsqls
  • 安裝上mysql後,報 Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock',試了網上的方法都沒有用,於是打開/etc/my.cnf查看。 看到這麼一段: # The MySQL server
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...