Phiên bản được hỗ trợ:hiện tại(17)16 / 15 / 14 / 13
Phiên bản phát triển:18 / Devel
Phiên bản không được hỗ trợ:12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0 / 7.4 / 7.3 / 7.2 / 7.1
Tài liệu này dành cho phiên bản không được hỗ trợ của kèo bóng đá hom nay.
Bạn có thể muốn xem cùng một trang chohiện tạiPhiên bản hoặc một trong các phiên bản được hỗ trợ khác được liệt kê ở trên thay thế.

kèo bóng đá hom nay2.3.

Thegiai đoạn phân tích cú kèo bóng đá hom naybao gồm hai

  • Thephân tích cú kèo bóng đá hom nayđược xác định tronggram.yScan.lđược xây dựng bằng công cụ UNIXyaccLex.

  • TheQuy trình chuyển đổikhông

2.3.1.

Trình phân tích cú kèo bóng đá hom nay phải kiểm tra chuỗi truy vấn (đếnparse câyđược xây dựng và trao lạiLexyaccđược sử dụng.

TheLexerđược xác định trong tệpScan.lvà chịu trách nhiệm choĐịnh danh, TheTừ khóa SQLvv. Cho mọi từ khóa hoặcmã thông báoIS

Trình phân tích cú kèo bóng đá hom nay được xác định trong tệpgram.yvà bao gồm một tập hợpQuy tắc ngữ kèo bóng đá hom nayActionđược thực thi bất cứ khi nào một quy tắc

TệpScan.Lđược chuyển đổi thànhScan.cSử dụngLexgram.yđược chuyển đổi thànhgram.cSử dụngyacc. Sau khi những biến đổi này cóLexhoặcyaccđược gọi.

Lưu ý:Các biến đổi được đề cập vàMakefilesĐược vận chuyển vớikèo bóng đá hom nayNguồn

Một mô tả chi tiết vềYACChoặc các quy tắc ngữ kèo bóng đá hom nay được đưa ra tronggram.ysẽ vượt quá phạm vi củaLexyacc. Bạn nên quen thuộc vớiyaccTrước khi bạn bắt đầu học tậpgram.yNếu không

Để hiểu rõ hơn về các cấu trúc dữ liệu được sử dụng trongkèo bóng đá hom nayĐể xử lýTheđã được xác định.

Ví dụ 2-1. Một lựa chọn đơn giản

Chọn S.Sname, se.pno

Hình \ Ref Parsetree hiển thịParseĐược xây dựng bởi các quy tắc và hành động ngữ kèo bóng đá hom nay được đưa ra tronggram.yĐối với truy vấn được đưa ra trongVí dụ 2-1(không cóCây vận hànhchoĐiều khoản ở đâuđược hiển thị trong hình

nút trên cùng của cây làselectStmtNode. Cho mọi mục xuất hiện trongtừ mệnh đềcủa truy vấn SQL ARangevarnút được tạobí danhvà một con trỏ tới Arelexprnút giữ tên củaMối quan hệ. Tất cảRangevarCác nút được thu thập trong danh sách làFromClausecủaselectStmtNode.

Đối với mỗi mục xuất hiện trongChọncủa truy vấn SQL ArestargetNode được tạo giữ một con trỏ đến mộtattrnút. TheattrNode giữTên quan hệcủagiá trịnútthuộc tính. Tất cảrestargetcác nút được thu thập thành aTargetListcủaselectStmtNode.

Hình \ ref where_clause hiển thị cây toán tử được xây dựng choVí dụ 2-1đó làQualcủaselectStmtNode. Nút trên cùng củaA_EXPRNodeHoạt động. Cái nàyLEXPRRexprchỉ vào haiSubtrees. Subtree được gắn vàoLEXPRđại diện cho trình độ chuyên môns.sno 2và cái được gắn vàoREXPRđại diệns.sno =. Cho mọi thuộc tính mộtattrNode được tạo giữ tên củagiá trịnútconstnút là

2.3.2.

TheQuy trình chuyển đổimấtselectStmtNode được tìm thấy, nó được chuyển đổi thành mộtTruy vấnnút sẽ là người hàng đầuĐIỀU KHOẢNđược đưa ra trong hình

Bây giờ kiểm tra được thực hiện, nếuMối quan hệTrongTừ mệnh đềđược biết đếnDanh mục hệ thốngARTENode được tạo có chứa mối quan hệtên bí danhID quan hệ. Từ bây giờ ID quan hệ làQuan hệChoRTECác nút làmục nhập bảng phạm viđược kết nối với trườngrtablecủaTruy vấnNode. Nếu một tên của một mối quan hệ không được biết đến hệ thống

Tiếp theo nó được kiểm tra nếuThuộc tínhđược sử dụng được chứa trong các mối quan hệ được đưa ra trongtleNode được tạo ra giữ một con trỏ đến AResdomnút (giữ tên củavarNode. Có hai số quan trọng trongvarNode. TrườngVarnoĐưa ra vị trí của mối quan hệVarattnođưa ra vị trí của thuộc tính trong mối quan hệ. Nếu